Ich habe eine Liste, bei welcher nach Ergebnis (="e") mit SVERWEIS oder INDEX/VERGLEICH Zeilen gelöscht werden müssen:
WENN SVERWEIS(VERKETTEN(LINKS(A22;6);"00");$A$4:$J$1000;10;0) = e dann Zeile löschen
oder besser
WENN INDEX(J:J;VERGLEICH(VERKETTEN(LINKS(A22;6);"00");A:A;0)) = e dann Zeile löschen
Mit dem bestehenden Makro werden alle Zeilen mit einem "e" in Spalte J gelöscht:
Sub Erledigte_Projekte_löschen()
Dim Frage As Double
Dim WshShell
Dim i As Long
Frage = MsgBox("Sollen die erledigten Projekte mit (e) wirklich gelöscht werden?" & Chr(13) & _
"Der Vorgang kann nicht mehr rückgängig gemacht werden!", 33, "Frage")
If Frage = vbCancel Then
Exit Sub
Else
Application.ScreenUpdating = False
Set WshShell = CreateObject("WScript.Shell")
WshShell.popup "Die erledigten Projekte werden gelöscht...", 2, "Erledigte Projekte löschen"
For i = Cells(Rows.Count, 10).End(xlUp).Row To 1 Step -1
If Cells(i, 10) = "e" Then Rows(i).Delete
Application.ScreenUpdating = True
Next
End If
End Sub
Die Zeilen dürfen aber nur gelöscht werden, wenn das Hauptprojekt mit den letzten beiden Ziffern "00" in Spalte A enthält und in Spalte J ein "e" gesetzt ist.
Wie kann die Bedingung in das Makro integriert werden?
Gruss
Stefan
Muster-Datei: https://www.herber.de/bbs/user/71099.xls