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

For each statement mag bij verwijderen rij niet naar next gaan

Status
Niet open voor verdere reacties.

gl3nn1987

Gebruiker
Lid geworden
24 sep 2010
Berichten
120
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim c As Range
For Each c In Sheets(1).Range("A1:A" & Sheets(1).Range("A65536").End(xlUp).Row)


If Not IsDate(c) Then
c.EntireRow.Delete
End If
Loop
Next c

End Sub

Het probleem is dat als hij de cel verwijderd heeft hij natuurlijk op deze manier verder gaat naar de volgende cel. Maaromdat hij er 1 verwijdert heeft schuif alles 1 naar boven en moet ik meerdere malen de macro uitvoeren om er zeker van te zijn dat alles gewist is. Hoe kan ik dit oplossen?
 
De normale gang van zaken is hier van onderaf aan gaan verwijderen. Je verwijdert dan immers een rij, je komt dan terecht op de rij die er onder stond, maar die had je al bekeken en dan ga je via de normale weg van next naar de rij er boven. Zo is er geen rij die de dans ontspringt.
 
een hele stomme vraag miss. Maar hoe stel ik dat in dat ie het andersom doet?
 
Even uit de losse pols (niet getest dus):
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim c As Range
For i = Sheets(1).Range("A1:A" & Sheets(1).Range("A65536").End(xlUp).Row) to 1 step -1
If Sheets(1).Range("A" & i).value  ="" Then
Sheets(1).Range("A" & i).EntireRow.Delete
End If
Next 

End Sub
 
Dit is iets sneller.
Als het ook om tekst gaat i.p.v. lege cellen, haal je de apostrof weg.
Code:
Sub hsv()
 With Columns(1)
  '.SpecialCells(2, 2).EntireRow.Delete
  .SpecialCells(4).EntireRow.Delete
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan