3.0k Aufrufe
in Windows 7 von ahorn38 Experte (3.3k 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
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
von ahorn38 Experte (3.3k 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
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
von m-o Profi (22.9k 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
von ahorn38 Experte (3.3k Punkte)
Hallo M.O., jetzt funktioniert das makro nachdem ich das "=" durch "like" ersetzt habe - wieder was gelernt! Vielen Dank an Euch!!!

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