Rivin poisto makrolla

juminki

Eli minulla on tilanne missä eri valintaruudut tulostaa soluihin C10-C20 joko TOSI tai EPÄTOSI. Nyt tartteisin makron mikä poistaisi rivit missä lukee EPÄTOSI kokonaan.

Tietty tätä ennen makro kopioi tiedot toiseen taulukkoon ettei mitään alkuperäistä menetetä, mutta tämän olen jo tehnyt. Nyt pitäisi saada vielä tuo lista siistittyä ylimääräisistä riveistä.

7

1161

    Vastaukset 7

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • juminki

      Sub CommandButton1_Click()
      Range("C1:C20000").Select
      For Each cell In Selection
      If cell.Value = "*EPÄTOSI*" Then
      cell.EntireRow.Delete
      End If
      Next cell
      Range("a1").Select
      End Sub

      mutta jostain syystä tuo ei toiminut, mikähän siinä meni väärin?

      • juhakorkeapudas

        Excel 2007:lla testattuna koodi toimii.
        Huomaa, että kirjainkokoa ei vertailla.

        haetko tekstiä EPÄTOSI vai *EPÄTOSI*?

        Tuliko virheilmoitusta?


      • ...

        Sub CommandButton1_Click()

        For i=20000 to 1 step -1
        if Cells(i,3) = "*EPÄTOSI*" Then Cells(i,3).Entirerow.Delete
        Next

        End Sub


      • juminki
        juhakorkeapudas kirjoitti:

        Excel 2007:lla testattuna koodi toimii.
        Huomaa, että kirjainkokoa ei vertailla.

        haetko tekstiä EPÄTOSI vai *EPÄTOSI*?

        Tuliko virheilmoitusta?

        Eli tarkoitus oli hakea tekstiä EPÄTOSI, mutta vaikka otinkin tähdet pois niin rivit ei silti poistuneet. Mitään virheilmoitusta ei tule.


      • ...
        juminki kirjoitti:

        Eli tarkoitus oli hakea tekstiä EPÄTOSI, mutta vaikka otinkin tähdet pois niin rivit ei silti poistuneet. Mitään virheilmoitusta ei tule.

        If cell.Value = false Then cell.EntireRow.Delete


      • vika on siinä kun rivejä poistetaan ne pitää poistaa alkaen lopustapäin.
        Olen aikaisemmin postannut FIND funktion joka palauttaa alueen ja on tässäkin tapauksessa parhain ja nopein vaihtoehto. Yleensä pitäisi pyrkiä käyttämään excelin omia funktioita. For next loopit ovat niitä "tehottomimpia", mutta toimivia kuitenkin. Kysyjän tapauksessa nopeus ei varmaankaan nöyttele suurtakaan osuutta. Tossa nyt kuitenkin FIND makro ja sillähän voit tehdä sen tallennuksenkin yhdellä koodirillä toiseen taulukkoon...

        Sub CommandButton1_Click()
        EtsiAlue("EPÄTOSI", Columns("C"), xlFormulas, xlWhole).EntireRow.Copy Range("Sheet2!C65536").End(xlUp).Offset(1, 0).EntireRow
        EtsiAlue("EPÄTOSI", Columns("C"), MatchCase:=True).EntireRow.Delete
        End Sub

        Function EtsiAlue(Haettava As Variant, _
        Hakualue As Range, _
        Optional LookIn As Variant, _
        Optional LookAt As Variant, _
        Optional MatchCase As Boolean) As Range


        Dim Alue As Range
        Dim Ekaosoite As String
        If IsMissing(LookIn) Then LookIn = xlValues
        If IsMissing(LookAt) Then LookAt = xlPart
        If IsMissing(MatchCase) Then MatchCase = False

        With Hakualue
        Set Alue = .Find( _
        What:=Haettava, _
        LookIn:=LookIn, _
        LookAt:=LookAt, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=MatchCase, _
        SearchFormat:=False)
        If Not Alue Is Nothing Then
        Set EtsiAlue = Alue
        Ekaosoite = Alue.Address
        Do
        Set EtsiAlue = Union(EtsiAlue, Alue)
        Set Alue = .FindNext(Alue)
        Loop While Not Alue Is Nothing And Alue.Address Ekaosoite
        End If
        End With
        End Function

        Keep Excelling @Kunde


      • yypp
        kunde kirjoitti:

        vika on siinä kun rivejä poistetaan ne pitää poistaa alkaen lopustapäin.
        Olen aikaisemmin postannut FIND funktion joka palauttaa alueen ja on tässäkin tapauksessa parhain ja nopein vaihtoehto. Yleensä pitäisi pyrkiä käyttämään excelin omia funktioita. For next loopit ovat niitä "tehottomimpia", mutta toimivia kuitenkin. Kysyjän tapauksessa nopeus ei varmaankaan nöyttele suurtakaan osuutta. Tossa nyt kuitenkin FIND makro ja sillähän voit tehdä sen tallennuksenkin yhdellä koodirillä toiseen taulukkoon...

        Sub CommandButton1_Click()
        EtsiAlue("EPÄTOSI", Columns("C"), xlFormulas, xlWhole).EntireRow.Copy Range("Sheet2!C65536").End(xlUp).Offset(1, 0).EntireRow
        EtsiAlue("EPÄTOSI", Columns("C"), MatchCase:=True).EntireRow.Delete
        End Sub

        Function EtsiAlue(Haettava As Variant, _
        Hakualue As Range, _
        Optional LookIn As Variant, _
        Optional LookAt As Variant, _
        Optional MatchCase As Boolean) As Range


        Dim Alue As Range
        Dim Ekaosoite As String
        If IsMissing(LookIn) Then LookIn = xlValues
        If IsMissing(LookAt) Then LookAt = xlPart
        If IsMissing(MatchCase) Then MatchCase = False

        With Hakualue
        Set Alue = .Find( _
        What:=Haettava, _
        LookIn:=LookIn, _
        LookAt:=LookAt, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=MatchCase, _
        SearchFormat:=False)
        If Not Alue Is Nothing Then
        Set EtsiAlue = Alue
        Ekaosoite = Alue.Address
        Do
        Set EtsiAlue = Union(EtsiAlue, Alue)
        Set Alue = .FindNext(Alue)
        Loop While Not Alue Is Nothing And Alue.Address Ekaosoite
        End If
        End With
        End Function

        Keep Excelling @Kunde

        Minulla on vastaavanlainen kysymys, mutta nyt olisi tarkoitus lisätä uusi rivi. Eli minulla on lista nimiä aakkosjärjestyksessä, ja kukin nimi voi olla allekkain monta kertaa. Haluaisin tyhjän rivin aina niille kohdille, joissa nimi vaihtuu. Tyyliin:

        Matti
        Matti
        Matti
        Pekka
        Pekka

        muuttuisi muotoon:
        Matti
        Matti
        Matti

        Pekka
        Pekka


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

    Luetuimmat keskustelut

    1. Mikä tekee kaivatustasi

      Haluttavan?
      Ikävä
      56
      1189
    2. Uskallanko laittaa sulle viestiä?

      Se viesti on tossa valmiina ja lähettämistä vaille valmis. Kun ei kauhee sti tunneta niin eipä sillä olisi niin väliä. S
      Ikävä
      68
      1169
    3. Onko nyt kaikki asiat käyty läpi?

      Mun mielestä on👍
      Ikävä
      109
      899
    4. Mies joka on oikeasti kiinnostunut

      Ja näkee sut pitkäaikaisena kumppanina, siirtää vaikka vuoria selvittääkseen asiat eikä ota pienintäkään riskiä menettää
      Ikävä
      125
      896
    5. Tässä ovat Elämäni biisi vieraat lauantai 19.9. - Yksi vieras on kohuttu TTK-juontajaehdokas

      Elämäni biisi vieraslista on harvinaisen mielenkiintoinen lauantaina. Mukana myös kohuttu TTK-juontajaehdokas, josta ei
      Tv-sarjat
      7
      891
    6. Vieläkin saat

      Sydämen tykyttämään. Vaikka emme näe
      Ikävä
      38
      773
    7. 48
      756
    8. Kunnanhallitus

      Miten käy täällä vuosia tuomioita jakaneelle valittajalle, hovioikeus hylännyt kaikki syytteet.
      Puolanka
      41
      717
    9. Rauha, sopiiko

      Ei häiritä enää toisiamme. Annetaan molemmille rauha unohtaa, pyydän tätä todella. Kiitos. Miehelle.
      Ikävä
      77
      702
    10. En tahallaan sua välttele...

      Olis niin kiva nähdä jossain muualla kuin kaupassa!
      Ikävä
      51
      676
    11. Ei siitä pääse yli, eikä ympäri!

      Pakko se on myöntää ja tunnustaa. Olisin halunnut p*nna sinua sydämeni kyllyydestä. Itseäni vanhemmalle naiselle
      Ikävä
      66
      661
    12. Miesten (epä)viehättävyydestä kysymys

      Mieltä askarruttava asia, liki dilemma. Palstallahan jotkut miesoletetut usein toteavat, että kaikki naiset tavoittelev
      Sinkut
      136
      624
    13. 60
      619
    14. Nyt kaatuu Kuisla

      Reima Kuisla hakee saneeraukseen – Joitakin velkoja on jo ulosotossa https://www.ilkkapohjalainen.fi/reima-kuisla-hakee
      Seinäjoki
      29
      614
    15. Minkä kappaleen

      haluaisit soivan, kun astellaan alttarille?
      Ikävä
      52
      571
    16. Pystyisitkö liikkumaan

      Tai tapailemaan kaivattuasi julkisesti?
      Ikävä
      58
      539
    17. Olit hyödytön.

      Mulle hyödytön..
      Ikävä
      95
      531
    18. Kumpi tästä nyt

      Teki niin vaikeaa?
      Ikävä
      60
      494
    19. Sastamalassa epäillään tappoa, kaksi otettu kiinni

      Kuulemma Aarnontiellä tapahtunut Tietääkö joku enemmän?
      Sastamala
      19
      482
    20. Vieläkö tykkäät

      Minusta niin paljon että olisit valmis?
      Ikävä
      35
      457
    Aihe