Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeilen löschen / VBA + Makro läuft nicht richtig





Frage

Hallo Community, das folgende Makro läuft aus einem mir unbekannten Grund nicht richtig: Sub Test() Dim n As Integer For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(n, 2).Value <> 7 _ Then Cells(n, 2).Select [b]* Alternativ auch mit "Rows(n).Select" versucht [/b] With Selection.EntireRow.Delete End With Next n End Sub Es soll in der Spalte "B" nach allen Werten gesucht werden, die nicht "7" entsprechen und dann die ganze Zeile gelöscht werden. Das Makro läuft durch, es werden auch Zeilen gelöscht, jedoch lässt sich dies für mich nicht nachvollziehen. z.B. folgender Versuch mit o.g. Makro A B Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 erhalte ich folgendes Ergebnis Test 2 Test 4 Test 7 Test 8 Schon seltsam, oder ?! Vielleicht kann mich mal wieder jemand unterstützen ?! Gruß martl

Antwort 1 von Guenter

Hallo,

die Schleife muss in der anderen Richtung laufen:


Option Explicit

Sub Test()
Dim n As Integer
For n = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(n, 2).Value <> 7 Then Cells(n, 2).Select
'* Alternativ auch mit "Rows(n).Select" versucht
With Selection.EntireRow.Delete
End With
Next n
End Sub



Gruß
Günter

Antwort 2 von nighty

hi martl

so auf anhieb konnt ich dieses entdecken was nicht reingehoert :)

ein unterstrich hinter THEN ,da ist der uebeltaeter _ :)

gruss nighty

Antwort 3 von nighty

hi alle

ops vor then :(

gruss nighty

Antwort 4 von martl

Hallo,

kleine Ursache, große Wirkung !

Darauf, dass die Schleife in die falsche Richtung suchen kann, bin ich nicht gekommen, ist aber, wenn ich mir das jetzt so anschaue, einleuchtend.

Möchte mich recht herzlich für die schnelle und "meinenervenschonende" Hilfe bedanken.

Viele Grüße
martl