• 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.

Excel macro verwijderen van rijen onder meerdere condities

Status
Niet open voor verdere reacties.

Welies

Gebruiker
Lid geworden
9 dec 2010
Berichten
128
Hallo,

Ik ben op zoek naar een macro welke rijen die aan een aantal criteria voldoen compleet verwijderd. Zie bijgevoegd bestand ter verduidelijking:
In tabblad "Uitgesloten" staan de waarden welke verwijderd dienen te worden in de rijen van tabblad "Data" als er een match is.

Alvast dank voor de reacties!

Vincent
 

Bijlagen

Probeer eens met deze macro:

Code:
Sub cobbe()
Application.ScreenUpdating = False
For cl = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
   With Sheets("uitgesloten")
       For Each it In .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)
         If Cells(cl, 2) = it Then Rows(cl).EntireRow.Delete
    Next
   End With
Next
Application.ScreenUpdating = True
End Sub
 
Hallo Cobbe,
Dank voor je reactie.
Bij regel " For Each it In .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)" krijg ik de mleding:

Fout 9 tijdens uitvoering
Het subscript valt buiten het bereik

Vincent
 
Heb je de naam van een blad gewijzigd?
Heb je een kolom ingevoegd?, Verwijderd?

Ik weet het zo niet, als ik de code in je bestand inpas werkt het als een t..t.:)

Wel is het zo dat de code zoals ze nu is niets doet omdat er geen waarden in 'Data' staan die ook in 'Uitgesloten staan.

Maar de code loopt gewoon zonder meldingen.
 

Bijlagen

Cobbe,

Had inderdaad een tabblad aangepast en niet in macro zelf. De macro loop nu zonder foutmelding door echter worden er geen regels verwijderd. Dit is de code die ik ervan gemaakt heb (enige verschil is dat de range is aangpast van A naar E en dat de meer en langere data in de sheet staat):

Sub landcodes_verwijderen()
Application.ScreenUpdating = False
For cl = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1
With Sheets("Uitgesloten")
For Each it In .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)
If Cells(cl, 2) = it Then Rows(cl).EntireRow.Delete
Next
End With
Next
Application.ScreenUpdating = True
End Sub
 
Opgelost! If Cells(cl, 2) moest If Cells(cl, 5) zijn.

Nogmaals dankt.
Vincent
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan