jo, das funktioniert. danke. Schon lustig, wenn 2 keine Ahnung von VB haben, es aber trotzdem hinkriegen ![]()
Ein Problem entsteht durch mein Makro dann aber noch:
Da die Zeile gelöscht wird, in der man sich gerade aufhält, rücken alle Werte eine Zeile nach oben. Man ist also noch in Zeile i, in ihr befinden sich durch das Löschen aber schon die Werte der vorherigen Zeile i+1. Geht man jetzt zur Laufvariable i+1, wird die nächste Zeile genommen. In ihr befinden sich aber aktuell schon die Werte der vorherigen Zeile i+2. Somit wird also immer eine Zeile übersprungen.
Das Problem habe ich gelöst, indem ich die Zeilen nicht mehr löschen lasse, sondern nur deren Inhalt (ClearContents). Es entstehen also leere Zeilen. Nach dem Durchlauf der Schleife lasse ich einfach alles aufsteigend nach Spalte A sortieren und alle leeren Zeilen sind weg.
Wens interessiert:
Sub löschen()
'
' löschen Makro
' Makro am 05.03.2008 von User aufgezeichnet
'
'
For i = 1 To 400
If Range("B" & i) = 0 Then
Rows(i).Select
Selection.ClearContents
End If
Next i
Columns("A:B").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
End Sub
Alles anzeigen