Hallo, ich komme momentan gar nicht so recht weiter. Möchte in VBA wenn in einer Zeile kein Text mit Failed erscheint löschen. Hab aus dem internet was gefunden. For Zeile = 3 To 300 If Application.CountA(Sheets("Tabelle1").Cells(Zeile, 8).Rows(Zeile)) <> "Failed" Then Sheets("Tabelle").Rows(Zeile).EntireRow.Delete else End If Next Hier macht er auch wenn ich keinen Failed text habe, die Zeile löschen. Hoffe, dass mir jemand weiterhelfen kann. Gruß Max
Max schrieb: > Hier macht er auch wenn ich keinen Failed text habe, die Zeile löschen. Genauer: "Er" (wer eigentlich?) löscht die Zeilen nur dann, wenn da nicht Failed steht. Und so steht das ja auch da. Sieh Dir mal die Vergleichsperatoren in VB an, was mag wohl "<>" sein?
Hi Rufus, sorry! Ja ich meinte natürlich auch wenn ich in der IF-Anweisung einen "=" setze, löscht das Programm keine Zeilen. VBA findet in diesem Fall den Text nicht. Vielen Dank! Gruß Max
Nun, liefert denn Application.CountA() den Inhalt einer Zelle? Ich habe da so meine Zweifel.
O.g Code bringt bei mir Murks. Auch WorksheetFunction.CountA() ist nicht zweckmäßig. Und sollte das Suchwort, hier "Failed", in mehreren Zeilen direkt nacheinander vorkommen, dann wird die jeweils zweite Zeile nicht bearbeitet, da beim Löschen einer Zeile die nachfolgenden aufrücken und die aktuelle Zeilennummer schon abgearbeitet ist. Man muß also den Zähler zurücksetzen oder nach jedem Löschen die Schleife neu starten.
So sollte er Zeile löschen, wenn in Spalte 8 kein "Failed" steht, For Zeile = 3 To 300 If Sheets("Tabelle1").Cells(Zeile, 8).Value _ <> "Failed" Then Sheets("Tabelle").Rows(Zeile).EntireRow.Delete else End If Next So sollte er Zeile löschen, wenn in Spalten 1 bis 100 kein "Failed" steht, For i=1 to 100 For Zeile = 3 To 300 If Sheets("Tabelle1").Cells(Zeile, 8).Value _ <> "Failed" Then Sheets("Tabelle").Rows(Zeile).EntireRow.Delete else End If Next Next
paar Fehler bereinigt: So sollte er Zeile löschen, wenn in Spalte 8 kein "Failed" steht, For Zeile = 3 To 300 If Sheets("Tabelle1").Cells(Zeile, 8).Value _ <> "Failed" Then Sheets("Tabelle").Rows(Zeile).EntireRow.Delete Zeile=Zeile-1 else End If Next So sollte er Zeile löschen, wenn in Spalten 1 bis 100 kein "Failed" steht, For i=1 to 100 For Zeile = 3 To 300 If Sheets("Tabelle1").Cells(Zeile, i).Value _ <> "Failed" Then Sheets("Tabelle").Rows(Zeile).EntireRow.Delete Zeile=Zeile-1 else End If Next Next
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.