597 Aufrufe
in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

haben einen Code, der innerhalb einer Datenreihe bestimmte Zeilen löscht, wenn eine Bedingung "S" erfüllt ist:
j = 0
For i =1+ 1 To 50- j
If Cells(i, 2) <> "S" And i <= iRowEnde - j Then
Rows(i).Delete shift:=xlUp
j = j + 1
i = i - 1
End If

Next i


Der Code soll am Anfang die Zeilen 1-50 durchlaufen, da durch das Löschen sich die Zeilenzahl reduziert, muß sich auch die 50 entsprechend reduzieren s.code oben. Allerdings komme ich damit nicht mehr aus der Schleife raus....
Hat jemand einen Tipp?
Danke und Gruß A.

2 Antworten

0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Andreas,

fange beim Löschen von Zeilen immer von hinten an.

For i = 50 to 1 Step -1
If Cells(i, 2) <> "S" Then Rows(i).Delete shift:=xlUp
Next i


Gruß

M.O.
0 Punkte
von ahorn38 Experte (3.3k Punkte)
Hallo,

passt natürlich! Danke. Wenn ich dich und die anderen nicht hätte.....?
VG A.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...