wie mein Username es schon verrät bin ich ein ziemlicher Anfänger was VBA angeht, ich hoffe also dass Ihr mir helfen könnt. In der Arbeit benutzen wir ein Makro um ausgeleitete Daten weiter zu verwerten. Dabei wird in einer bestimmten Spalte (unter anderem) nach dem String XYZ gesucht, wenn dieser NICHT vorhanden ist, wird die entsprechende Zeile gelöscht.
Sub nachbereitungOTHER(blattname, letztezeile)
Dim Reihe As Range
For i = 7 To letztezeile
ALMPfad = Sheets(blattname).Cells(i, 15).Value
If ALMPfad = leer Then Exit For
If InStr(ALMPfad, "TestCenter_DE") = 0 Or InStr(ALMPfad, "XYZ") = 0 Or Sheets(blattname).Cells(6, 35).Value = 1 Then
If Reihe Is Nothing Then
Set Reihe = Sheets(blattname).Rows(i)
Else: Set Reihe = Union(Reihe, Sheets(blattname).Rows(i))
End If
loeschen = loeschen + 1
End If
Next i
Reihe.Delete
End Sub
Nun möchte ich diese Suche erweitern, zusätzlich zum String XYZ soll auch der String ABC gesucht werden, dazu habe ich (meiner Meinung nach) ganz einfach mit einem ODER verknüpft:
Sub nachbereitungOTHER(blattname, letztezeile)
Dim Reihe As Range
For i = 7 To letztezeile
ALMPfad = Sheets(blattname).Cells(i, 15).Value
If ALMPfad = leer Then Exit For
If InStr(ALMPfad, "TestCenter_DE") = 0 Or InStr(ALMPfad, "XYZ") = 0 Or InStr(ALMPfad, "ABC") = 0 Or Sheets(blattname).Cells(6, 35).Value = 1 Then
If Reihe Is Nothing Then
Set Reihe = Sheets(blattname).Rows(i)
Else: Set Reihe = Union(Reihe, Sheets(blattname).Rows(i))
End If
loeschen = loeschen + 1
End If
Next i
Reihe.Delete
End Sub
Leider funktioniert das nicht wie erwartet. Nicht nur, dass die Suche nach dem neuen String nicht funktioniert (Zeilen die ihn enthalten werden trotzdem gelöscht), zusätzlich werden nun auch Zeilen gelöscht die den urpsprünglichen String enthalten. Sonst wurde nichts verändert. Könnt Ihr mir helfen? Ich weiss nicht ob ich mich nur blöd anstelle oder es da ein tiefer liegendes Problem gibt. Ich freue mich auf Eure Antworten, danke im Voraus!