2.6k Aufrufe
Gefragt in Windows 7 von ahorn38 Experte (3.2k Punkte)
Hallo,

ich möchte bestimmte Zeilen löschen deren Inhalt in Spalte "2" entweder leer ist oder eine bestimmte Zeichenkombination enthält. Das Makro funktioniert einwandfrei, wenn ich nur die "Leer"-Bedingung angebe - nachdem ich mit der "OR"-Funktion weitere Bedingungen hinzugefügt habe, funktioniert das Makro nicht mahr. Es gibt keine Fehlermeldung aber auch kein richtiges Ergebnis. Habt ihr eine Ahnung was ich falsch mache? Danke!!
Sub Zeilen_loeschen()

' Löschen von Zeilen deren Spalte "2" leer ist oder einen bestimmten Eintrag hat

Sheets("Arbeitsblatt1").Select
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1

If Cells(loeschen, 2).Value = "" Or Value = "*Einstands*" Or Value = "*wert*" Or Value = 0 Then

Rows(loeschen).Delete
End If
Next loeschen

End Sub

5 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

zum einen fehlt zumindest eine Kopfzeile des Makros (gehe aber davon aus, das diese vorhanden ist), zum anderen , Kann aus meiner Sich die Zeile mit IF... so nicht funktionieren, da Angaben fehlen. Versuch es mal so:

[b]If Cells(loeschen, 2).Value = "" Or Cells(loeschen, 2).Value = "*Einstands*" Or Cells(loeschen, 2).Value = "*wert*" Or Value = 0 Then

Gruß

Helmut
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Danke Helmut für die schnelle Antwort aber das hat mein Problem leider noch nicht gelöst. Gelöscht werden nur die Zeilen, die in der betreffenden Spalte "Leer" sind, die anderen Bedingungen werden nicht berücksichtigt. Da scheint noch ein Fehler in der Formel zu sein...??
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

leider einen Fehler übersehen

If Cells(loeschen, 2).Value = "" Or Cells(loeschen, 2).Value = "*Einstands*" Or Cells(loeschen, 2).Value = "*wert*" Or Cells(loeschen, 2).Value = 0 Then

Gruß

Helmut
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

probier es mal so:

Sub Zeilen_loeschen()

' Löschen von Zeilen deren Spalte "2" leer ist oder einen bestimmten Eintrag hat
Dim loeschen As Long

Sheets("Arbeitsblatt1").Select

For loeschen = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1

If Cells(loeschen, 2).Value = "" Or Cells(loeschen, 2).Value Like "*Einstands*" Or Cells(loeschen, 2).Value Like "*wert*" Or Cells(loeschen, 2).Value = 0 Then

Rows(loeschen).Delete
End If
Next loeschen

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O., jetzt funktioniert das makro nachdem ich das "=" durch "like" ersetzt habe - wieder was gelernt! Vielen Dank an Euch!!!
...