Päällekkäisyyksien poisto

Exceltuska

Eli ongelma on että esim. sarakkeessa A on numerosarjoja joihin suoritetaaan päällekkäisyyksien poistoa. Se toimii oikein, mutta otsikko rivillä on filtterit ja jos valitsen sarakkeen B filtteristä näkyviin vain jonkin tietyn aiheen niin päällekkäisyyksien poisto ei enää tomikkaan kuten pitäisi. Tässäpä vähän esimerkkiä...

Sarake A Sarake B
1234 Joulukuu
1232 Tammikuu
1234 Tammikuu
1222 Helmikuu
1222 Helmikuu

Eli jos nyt sarakkeesta B valitsee näkyviin vain tammikuun ja suorittaa päällekkäisyyksien poiston sarakkeeseen A niin tämä viimeinen tammikuu ei tule näkyvvin, koska makro piilottaa sen rivin...mitenhän tälläisen voisi toteuttaa, että makro piilottaisi sellaiset rivit joilla sarakkeet A ja B tiedot esiintyvät useammin kuin kerran. Eli tässä tapauksessa piilottaisi toisen helmikuun rivin.

Ei vaadi varmaan kovin suurta muutosta makroon muttei enää taidot riitä....

25

1183

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • minkähänlainen se sun makros mahtaa olla, mitä pitäs muuttaa???
      tottahan voin tehdä omankin version, mutta mielenkiinnosta haluan nähdä sinunkin version....

      • Excelltuska

      • Exceltuska

        Laitan tähän nyt tätä pätkää mitä oon pyöritelly...en ole varma onko tämä ihan kaukaa haettua koska tämä vba ei kovinkaan hyvin ole tiedossa...

        Sub PiilotaTuplaRivit()
        Dim vika As Long
        Dim i As Long
        Dim Alue As Range
        Set Alue = Range("C65536;G65536")
        vika = Range("Alue").End(xlUp).Row
        For i = vika To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("C1:C" & i), Range("C" & i)) > 1 Then
        Range("C" & i).EntireRow.Hidden = True
        End If
        Next i

        Toi rivi missä olen yrittänyt asettaa aluetta, ei pelaa ja tuohon "if application" -riville en ole osannut muutoksia oikeen edes tehdä...Olen myös pyöritellyt offset käskyä mutten saa silläkään pelaan...

        Kiitos että jaksatte avittaa aloitteijaa! :)


      • Exceltuska kirjoitti:

        Laitan tähän nyt tätä pätkää mitä oon pyöritelly...en ole varma onko tämä ihan kaukaa haettua koska tämä vba ei kovinkaan hyvin ole tiedossa...

        Sub PiilotaTuplaRivit()
        Dim vika As Long
        Dim i As Long
        Dim Alue As Range
        Set Alue = Range("C65536;G65536")
        vika = Range("Alue").End(xlUp).Row
        For i = vika To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("C1:C" & i), Range("C" & i)) > 1 Then
        Range("C" & i).EntireRow.Hidden = True
        End If
        Next i

        Toi rivi missä olen yrittänyt asettaa aluetta, ei pelaa ja tuohon "if application" -riville en ole osannut muutoksia oikeen edes tehdä...Olen myös pyöritellyt offset käskyä mutten saa silläkään pelaan...

        Kiitos että jaksatte avittaa aloitteijaa! :)

        jos tota käytät, ei toimi, koska Alue määritelty väärin...
        mutta
        siis haluat, että B sarakkeessa tehdään haku kuukausilla(arvaus ;-)) ja näytetään uniikit?
        voiko tuloksen näyttää muualla kuin originaalipaikassa?
        käykö lomake?

        kerro lisää...

        Keep Excelling
        @Kunde


      • ET
        kunde kirjoitti:

        jos tota käytät, ei toimi, koska Alue määritelty väärin...
        mutta
        siis haluat, että B sarakkeessa tehdään haku kuukausilla(arvaus ;-)) ja näytetään uniikit?
        voiko tuloksen näyttää muualla kuin originaalipaikassa?
        käykö lomake?

        kerro lisää...

        Keep Excelling
        @Kunde

        Eli sarakkeessa C on lukuja ja sarakkeessa G on kuukaudet. Ja tarkoituksena olisi että makro lukisi näitä sarakkeita ja sitten kun löytyy kaksi tai useampia samanlaisia yhdistelmiä niin ylimääräiset rivit tulisi piilottaa...


      • ET kirjoitti:

        Eli sarakkeessa C on lukuja ja sarakkeessa G on kuukaudet. Ja tarkoituksena olisi että makro lukisi näitä sarakkeita ja sitten kun löytyy kaksi tai useampia samanlaisia yhdistelmiä niin ylimääräiset rivit tulisi piilottaa...

        moduuliin...

        Sub PiilotaTuplat()
        Dim vika As Integer
        vika = Range("C65336").End(xlUp).Row
        Range("C1:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        End Sub

        Sub NäytäKaikki()
        ActiveSheet.ShowAllData
        End Sub

        Keep Excelling
        @Kunde


      • ET
        kunde kirjoitti:

        moduuliin...

        Sub PiilotaTuplat()
        Dim vika As Integer
        vika = Range("C65336").End(xlUp).Row
        Range("C1:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        End Sub

        Sub NäytäKaikki()
        ActiveSheet.ShowAllData
        End Sub

        Keep Excelling
        @Kunde

        No muuten toimii mutta mun pohjatiedot oli vielä vähän vajaat...

        Eli listaus alkaa vasta riviltä 14 ja rivillä 13 on käytetty autofiltter systeemiä, jonka tulisi olla toiminnassa myös rivien piilotuksen jälkeen. Eli ilmeisesti tässä ei voi käyttää tuota suodatusta??


      • ET kirjoitti:

        No muuten toimii mutta mun pohjatiedot oli vielä vähän vajaat...

        Eli listaus alkaa vasta riviltä 14 ja rivillä 13 on käytetty autofiltter systeemiä, jonka tulisi olla toiminnassa myös rivien piilotuksen jälkeen. Eli ilmeisesti tässä ei voi käyttää tuota suodatusta??

        ei voi käyttää suodatusta.
        Mutta kikkaillahan aina voi...

        Keep Excelling
        @Kunde


      • ET
        kunde kirjoitti:

        ei voi käyttää suodatusta.
        Mutta kikkaillahan aina voi...

        Keep Excelling
        @Kunde

        No sen voin vielä kertoa ettei toi vba kikkailu oikein onnistu vaikka yrittää kirjan kanssa...
        Mut Makroa siihen että lukee sarakkeet C (luku)ja G (kuukausi) ja piilottaa tuplat....ja listaus alkaa riviltä 14 ja jatkuu taulukon loppuun....


      • ET kirjoitti:

        No sen voin vielä kertoa ettei toi vba kikkailu oikein onnistu vaikka yrittää kirjan kanssa...
        Mut Makroa siihen että lukee sarakkeet C (luku)ja G (kuukausi) ja piilottaa tuplat....ja listaus alkaa riviltä 14 ja jatkuu taulukon loppuun....

        Autofilter pois käytöstä...

        nyt kun solut C13 tai G13 muuttuu niin suodattaa uniikit solun mukaan. Jos solu tyhjä niin näyttää kaikki.
        Suodatussoluihinhan voisi tietenkin lisätä combon ja sen arvoiksi uniikit sarakkeesta ja näin ollen toimisi kuten suodatusnappikin...
        no siinä purtavaa sulle- varmasti palstalta löytyy mun koodinpätkä siihenkin, joten hakua peliin...
        G13 solussa voit käyttää vaikka KELPOISUUSEHTOA listan lähteeksi tammi;helmi;maalis jne.

        taulukon moduuliin...

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Application.EnableEvents = False

        If Not Intersect(Target, Range("C13")) Is Nothing Then
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub

        ' jos sattuu moka, niin toimintojen palautuskoodi alla

        Sub Resetoi()
        On Error Resume Next
        Application.EnableEvents = True
        ActiveSheet.ShowAllData
        End Sub


      • ET
        kunde kirjoitti:

        Autofilter pois käytöstä...

        nyt kun solut C13 tai G13 muuttuu niin suodattaa uniikit solun mukaan. Jos solu tyhjä niin näyttää kaikki.
        Suodatussoluihinhan voisi tietenkin lisätä combon ja sen arvoiksi uniikit sarakkeesta ja näin ollen toimisi kuten suodatusnappikin...
        no siinä purtavaa sulle- varmasti palstalta löytyy mun koodinpätkä siihenkin, joten hakua peliin...
        G13 solussa voit käyttää vaikka KELPOISUUSEHTOA listan lähteeksi tammi;helmi;maalis jne.

        taulukon moduuliin...

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Application.EnableEvents = False

        If Not Intersect(Target, Range("C13")) Is Nothing Then
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub

        ' jos sattuu moka, niin toimintojen palautuskoodi alla

        Sub Resetoi()
        On Error Resume Next
        Application.EnableEvents = True
        ActiveSheet.ShowAllData
        End Sub

        Eli nyt alkaa meneen jo korkealta yli :) tarttis sitä rautalankaa...En osaa liittää tuota private subia buttoniin ett voisi kokeilla. Vai lukeeko tuo pätkä solujen C13 ja G13 tietoja...
        Elikkä mitä monimutkasemmaksi tämä menee niin sitä enemmän tulee kysyttävää.

        Tällä hetkellä on käytössä makro joka piilottaa tuplat sarakkeesta C, se on tässä:

        Sub PiilotaTuplaRivit()
        Dim vika As Long
        Dim i As Long
        vika = Range("C65536").End(xlUp).Row
        For i = vika To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("C1:C" & i), Range("C" & i)) > 1 Then
        Range("C" & i).EntireRow.Hidden = True
        End If
        Next i

        End Sub

        nyt jos valitsen solun G13 filtteristä vaikka helmikuun ja ajan tämän makron niin en saa kaikkia lukuja (C sarake) näkyviin. Mutta tämänhän saisi pelamaan jos osaisi lisätä makroon että se lukee pelkästään rivit jotka ovat näkyvillä suodatuksen jälkeen...


      • ET kirjoitti:

        Eli nyt alkaa meneen jo korkealta yli :) tarttis sitä rautalankaa...En osaa liittää tuota private subia buttoniin ett voisi kokeilla. Vai lukeeko tuo pätkä solujen C13 ja G13 tietoja...
        Elikkä mitä monimutkasemmaksi tämä menee niin sitä enemmän tulee kysyttävää.

        Tällä hetkellä on käytössä makro joka piilottaa tuplat sarakkeesta C, se on tässä:

        Sub PiilotaTuplaRivit()
        Dim vika As Long
        Dim i As Long
        vika = Range("C65536").End(xlUp).Row
        For i = vika To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("C1:C" & i), Range("C" & i)) > 1 Then
        Range("C" & i).EntireRow.Hidden = True
        End If
        Next i

        End Sub

        nyt jos valitsen solun G13 filtteristä vaikka helmikuun ja ajan tämän makron niin en saa kaikkia lukuja (C sarake) näkyviin. Mutta tämänhän saisi pelamaan jos osaisi lisätä makroon että se lukee pelkästään rivit jotka ovat näkyvillä suodatuksen jälkeen...

        kuten kirjoitin
        1. Poista suodatus taulukosta
        2. Liitä koodi TAULUKON MODUULIIN
        3 .kirjoita soluihin C13 tai G13 hakuehtosi ja uniikit näkyy...
        kelpoisuusehto dsoluun G13 helpottaa kuukausien suodatusta... ja
        C13 sitten vaatii sen combon ja koodin..


      • ET
        kunde kirjoitti:

        kuten kirjoitin
        1. Poista suodatus taulukosta
        2. Liitä koodi TAULUKON MODUULIIN
        3 .kirjoita soluihin C13 tai G13 hakuehtosi ja uniikit näkyy...
        kelpoisuusehto dsoluun G13 helpottaa kuukausien suodatusta... ja
        C13 sitten vaatii sen combon ja koodin..

        Lähti pelaan...Tein ton kelpoisuusehdon ja siitä valitsemalla tulee näkyviin oikeat tiedot. En nyt vaan hoksaa tuon C13 tarkoitusta, mutta väliäkö tuolla. Toteutus oli vähän eri tyylinen mitä aattelin mutta lopputulos paljon parempi!

        SUURKiitos Kundelle avusta!!


      • ET kirjoitti:

        Lähti pelaan...Tein ton kelpoisuusehdon ja siitä valitsemalla tulee näkyviin oikeat tiedot. En nyt vaan hoksaa tuon C13 tarkoitusta, mutta väliäkö tuolla. Toteutus oli vähän eri tyylinen mitä aattelin mutta lopputulos paljon parempi!

        SUURKiitos Kundelle avusta!!

        sillä voit suodattaa niitä lukuja C sarakkeessa samanlailla kuin kuukausilla G sarakkeessa- et sitä sitten näköjään tarvinnut... ;-)

        kiitos palautteesta!

        Keep Excelling
        @Kunde


      • ET
        kunde kirjoitti:

        sillä voit suodattaa niitä lukuja C sarakkeessa samanlailla kuin kuukausilla G sarakkeessa- et sitä sitten näköjään tarvinnut... ;-)

        kiitos palautteesta!

        Keep Excelling
        @Kunde

        Kun siihen C13 syöttä numerokoodin (vaikka 7 numeroisen) niin se ei osaa poimia niitä...kun solun tyhjentää niin se näyttää kaikki. Osaatko kertoa miissä vika voisi olla. Oishan se ihan kiva toiminto jos sen saisi numeroillakin suodatettua.


      • ET kirjoitti:

        Kun siihen C13 syöttä numerokoodin (vaikka 7 numeroisen) niin se ei osaa poimia niitä...kun solun tyhjentää niin se näyttää kaikki. Osaatko kertoa miissä vika voisi olla. Oishan se ihan kiva toiminto jos sen saisi numeroillakin suodatettua.

        kokeiles koodissa seuraavaa
        klikkaa hiiren vaemmalla rivien välissä
        Private Sub Worksheet_Change(ByVal Target As Range)
        ...
        End Sub

        sitten klikkailet F8 ja tutkaile koodissa seuraavaa riviä. (Voi tän tehdä fiksumminkin , mutta hankala selittää...)
        Vie hiiri solu sanan päälle ja tsekkaa sen arvo samoin tee Range("C13") sanalle. Vertaile näytettyjä arvoja ja tutki mikä ero niillä on? Ettei vaan olisi ylimääräisiä merkkejä soluissa? Jos näin on niin sitten koodin trimmikomentoa tai pituuden tarkistusta yms...

        If Not solu = Range("C13") Then


      • ET
        kunde kirjoitti:

        kokeiles koodissa seuraavaa
        klikkaa hiiren vaemmalla rivien välissä
        Private Sub Worksheet_Change(ByVal Target As Range)
        ...
        End Sub

        sitten klikkailet F8 ja tutkaile koodissa seuraavaa riviä. (Voi tän tehdä fiksumminkin , mutta hankala selittää...)
        Vie hiiri solu sanan päälle ja tsekkaa sen arvo samoin tee Range("C13") sanalle. Vertaile näytettyjä arvoja ja tutki mikä ero niillä on? Ettei vaan olisi ylimääräisiä merkkejä soluissa? Jos näin on niin sitten koodin trimmikomentoa tai pituuden tarkistusta yms...

        If Not solu = Range("C13") Then

        Ilmenipä vielä tällänen ongelma tähän koodiin...

        Eli kun olen valinnnut kuukauden ja suodatus on tehty kaikki vielä on OK, mutta sitten kun kirjoitan johonkin soluun tietoa niin suodatus katoaa ja kaikki rivit tulevat näkyviin. Mitenhän tälläisen voisi välttää???


      • ET kirjoitti:

        Ilmenipä vielä tällänen ongelma tähän koodiin...

        Eli kun olen valinnnut kuukauden ja suodatus on tehty kaikki vielä on OK, mutta sitten kun kirjoitan johonkin soluun tietoa niin suodatus katoaa ja kaikki rivit tulevat näkyviin. Mitenhän tälläisen voisi välttää???

        mokahan siinä on...
        oli väärässä paikkaa toi "näytä kaikki" koodirivi

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next
        vika = Range("C65336").End(xlUp).Row
        Application.EnableEvents = False

        If Not Intersect(Target, Range("C13")) Is Nothing Then
        ActiveSheet.ShowAllData
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        ActiveSheet.ShowAllData
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub


      • ET
        kunde kirjoitti:

        mokahan siinä on...
        oli väärässä paikkaa toi "näytä kaikki" koodirivi

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next
        vika = Range("C65336").End(xlUp).Row
        Application.EnableEvents = False

        If Not Intersect(Target, Range("C13")) Is Nothing Then
        ActiveSheet.ShowAllData
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        ActiveSheet.ShowAllData
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub

        No nyt voi täytellä soluja mutta suodatus ei enää toimi oikein. Jos valitsen tammikuun niin se tapahtuu ja sen jälkeen jos valitsen helmikuun niin taulukko ei suodata oikein. Suodatus onnistuu vasta kun valitsen helmikuun uudelleen...ja jos valikkosolun tyhjentää niin se ei nyt näytä koko listaa niin kuin aikaisemmin?

        Periaattessahan toi toimis jos laittas erillisen näytä kaikki makron ja ajais sen ennen kk valintaa...mutta kätevä ois jos sais sen siihen valikkohässäkkään.

        Kiitti ku jaksat avittaa


      • ET kirjoitti:

        No nyt voi täytellä soluja mutta suodatus ei enää toimi oikein. Jos valitsen tammikuun niin se tapahtuu ja sen jälkeen jos valitsen helmikuun niin taulukko ei suodata oikein. Suodatus onnistuu vasta kun valitsen helmikuun uudelleen...ja jos valikkosolun tyhjentää niin se ei nyt näytä koko listaa niin kuin aikaisemmin?

        Periaattessahan toi toimis jos laittas erillisen näytä kaikki makron ja ajais sen ennen kk valintaa...mutta kätevä ois jos sais sen siihen valikkohässäkkään.

        Kiitti ku jaksat avittaa

        kun laiskottaa ja ei testaa.
        SORRY
        Oletin kyllä koodin toimivan ilman testausta..
        No ei enää sitten postauksia ilman testausta prkl

        tää nyt ainakin mulla toimii molemilla sarakesuodatuksilla

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next

        Application.EnableEvents = False
        If Not Intersect(Target, Range("C13")) Or Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        ActiveSheet.ShowAllData
        End If
        End If
        If Not Intersect(Target, Range("C13")) Is Nothing Then
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub

        Sub Resetoi()
        On Error Resume Next
        Application.EnableEvents = True
        ActiveSheet.ShowAllData
        End Sub

        Keep Excelling
        @Kunde


      • ET
        kunde kirjoitti:

        kun laiskottaa ja ei testaa.
        SORRY
        Oletin kyllä koodin toimivan ilman testausta..
        No ei enää sitten postauksia ilman testausta prkl

        tää nyt ainakin mulla toimii molemilla sarakesuodatuksilla

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim vika As Integer
        Dim solu As Range

        On Error Resume Next

        Application.EnableEvents = False
        If Not Intersect(Target, Range("C13")) Or Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        ActiveSheet.ShowAllData
        End If
        End If
        If Not Intersect(Target, Range("C13")) Is Nothing Then
        If Target = "" Then
        Range("G13") = ""
        GoTo poistu
        End If
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("C14:C" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("C13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("G13") = ""
        End If
        If Not Intersect(Target, Range("G13")) Is Nothing Then
        If Target = "" Then
        Range("C13") = ""
        GoTo poistu
        End If
        ActiveSheet.ShowAllData
        vika = Range("C65336").End(xlUp).Row
        Range("C13:G" & vika).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
        For Each solu In Range("G14:G" & vika).SpecialCells(xlCellTypeVisible)
        If Not solu = Range("G13") Then
        solu.EntireRow.Hidden = True
        End If
        Next solu
        Range("C13") = ""
        End If
        poistu:
        Application.EnableEvents = True
        End Sub

        Sub Resetoi()
        On Error Resume Next
        Application.EnableEvents = True
        ActiveSheet.ShowAllData
        End Sub

        Keep Excelling
        @Kunde

        No nyt voi täyttää soluihin tietoa mutta kun solun tyhjentää niin kaikki rivit tulevat taas näkyviin. Muuten kyllä pelaa...


      • ET kirjoitti:

        No nyt voi täyttää soluihin tietoa mutta kun solun tyhjentää niin kaikki rivit tulevat taas näkyviin. Muuten kyllä pelaa...

        jos hakuehto on tyhjä niin mitäs sitten pitäs näyttää???
        ei mulla oo kristallipalloa...

        Keep Excelling
        @ Kunde


      • ET
        kunde kirjoitti:

        jos hakuehto on tyhjä niin mitäs sitten pitäs näyttää???
        ei mulla oo kristallipalloa...

        Keep Excelling
        @ Kunde

        siis solu missä valitaan hakuehto toimii oikein. Eli kun se on tyhjä niin näyttää kaikki. Ongelma on siinä että kun olen hakenut esiin tietyt rivit ja poistan niiden rivien soluista tietoja niin työkirja tuo esiin kaikki rivit. Rivit tulevat esiin siinä vaiheessa kun solu on tyhjennetty ja aktivoin seuraavan solun.

        Voikohan tälle tehdä mitään vai pitääkö tämän kanssa vaan elää :) ...tässä ois nyt vähän tarkemmin


      • ET kirjoitti:

        siis solu missä valitaan hakuehto toimii oikein. Eli kun se on tyhjä niin näyttää kaikki. Ongelma on siinä että kun olen hakenut esiin tietyt rivit ja poistan niiden rivien soluista tietoja niin työkirja tuo esiin kaikki rivit. Rivit tulevat esiin siinä vaiheessa kun solu on tyhjennetty ja aktivoin seuraavan solun.

        Voikohan tälle tehdä mitään vai pitääkö tämän kanssa vaan elää :) ...tässä ois nyt vähän tarkemmin

        muuta koodirivi
        If Not Intersect(Target, Range("C13")) Or Not Intersect(Target, Range("G13")) Is Nothing Then

        seuraavaksi...
        If Not Intersect(Target, Range("C13")) Is Nothing Or Not Intersect(Target, Range("G13")) Is Nothing Then

        Keep Excelling
        @Kunde


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Anna minulle anteeksi

      Anna minulle anteeksi. Minä pyydän.
      Ikävä
      159
      2506
    2. Kun viimeksi kohtasitte/näitte

      Mitä olitte tekemässä? Millainen ympäristö oli? Löydetään toisemme...
      Ikävä
      136
      1925
    3. Olet kyllä vaarallisen himokas

      Luova, kaunis, määrätietoinen, pervo, mielenkiintoinen, kovanaama, naisellinen ja erikoinen.
      Ikävä
      106
      1775
    4. Mikä on hän on ammatiltaan?

      Vai tiedätkö mitä kaivattusi tekee työkseen?
      Ikävä
      78
      1455
    5. Mitä ajattelit silloin kun

      Löysit hänet?
      Ikävä
      76
      1388
    6. Anna vielä vähän vihreää valoa

      Teen sitten siirtoni, nainen. Tiedän, että olet jo varovaisesti yrittänyt lähestyä, mutta siitä on jo aikaa. Jos tunnet
      Ikävä
      21
      1357
    7. Syksyinen aamuketju suden

      Hyvää huomenta ja kaunista syyspäivää. 🌞🍁🍂☕
      Ikävä
      228
      1096
    8. Oletko tutustunut muihin

      Samalla tavalla kuin häneen?
      Ikävä
      71
      890
    9. Miksi homous puhuttaa konservatiiveja vuodesta toiseen?

      Kysymykseen on vastattukin Kansanlähetyksen osalta: "Miksi sukupuoleen ja seksuaalisuuteen liittyvät asiat ovat konserv
      Luterilaisuus
      220
      880
    10. Uskotko että kohdataan vielä?

      Kysymys otsikossa, aloitukseen ei muuta lisättävää.
      Ikävä
      49
      831
    Aihe