• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Rijen verwijderen op basis van een niet bestaande waarde TRAAAAAG

Status
Niet open voor verdere reacties.

snowseals

Gebruiker
Lid geworden
19 dec 2016
Berichten
77
Mijn vorige manier om rijen te verwijderen op basis van checkbox waarde voldoet helaas niet.

Ik concludeer, op basis van de gegevens die ik verwerk, dat wanneer een punt (.) aanwezig is, deze rij te behouden.
Ofwel, rij verwijderen wanneer . niet aanwezig is:

Code:
Sub DelRowsNotContainCertainText()
    Set myRange = Application.Selection
    Set myRange = Application.InputBox("Selecteer de Range", "DelRowsNotContainCertainText", myRange.Address, Type:=8)
Application.ScreenUpdating = False
    cText = Application.InputBox("Vul de waarde in", "DelRowsNotContainCertainText", "", Type:=2)
    For i = myRange.Rows.Count To 1 Step -1
        Set myRow = myRange.Rows(i)
        Set myCell = myRow.Find(cText, LookIn:=xlValues)
        If myCell Is Nothing Then
           myRow.Delete
        End If
    Next
Application.ScreenUpdating = True
End Sub

Dit lijkt te functioneren, maar op 500+ rijen, lijkt Excel hier dusdanig lang over te doen, dat ik Excel moet gaan forceren om af te sluiten.
Ik heb tevens de Application.ScreenUpdating = False/True meegenomen, om de zaak te bespoedigen, maar alsnog veels te traag.
Ik krijg het idee dat die . ook nog een andere functie heeft, net als een * ook als wildcard fungeert.

Kan dit niet sneller?
Of, wellicht simpeler?
 

Bijlagen

Dit zal een stuk sneller gaan:
Code:
Sub DelRowsNotContainCertainText()
    Application.ScreenUpdating = False
    For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
        If InStr(1, Cells(i, 1), ".") = 0 Then Rows(i).Delete
    Next
    Application.ScreenUpdating = True
End Sub
Maar er is maar 1 regel waar geen . in zit ;)
 
Het je wel eens gegevens in Excel gesorteerd en gekeken naar het resultaat ?
 
@edmoor
@snb

Inmiddels opgelost, waneer ik de range specifiek bepaal, dan gaat het wel als een speer.
Ik vermoed dat ie blijft loopen tot in de eeuwigheid, als ik domweg de gehele eerste rij/kolom pak :D

Kortom, probleem opgelost!

En beide dank voor het meedenken.
 
Specifieke range is niet direct nodig zoals je in #2 kan zien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan