Hallo zusammen,
ich habe eine Liste mit Felder in denen ein Text steht.
(z.B. von A1 bis A10 steht abwechselnd „Max Mustermann“ und „Max Mastermann“)
Nun sollen alle „Max Mastermann“ rausgelöscht werden.
Wie wäre hier eine schöne Lösung?
Ich würde jetzt wahrscheinlich in B eine Formel mit „Finden“ schreiben und dann die entsprechenden löschen…aber geht das auch anders? Also ohne Formel sondern gleich in A gucken ob ein bestimmter String enthalten ist?
Mir fällt da gerad nix ein.
Vielen Dank schonmal!
MfG
Hallo Brille,
da du hier im VB-Brett gepostet hast, vermute ich , dass du eine Lösung ohne Formeln sondern mit VBA willst. Hier mal eine Grundversion. Kopiere den Code in ein Standardmodul. Wenn du ihn laufen lässt, wird er immer für das aktive Blatt ausgeführt:
Sub MastermannWeg()
Dim letzte As Long
Dim zeile As Long
With ActiveSheet
letzte = .Cells(.Rows.Count, 1).End(xlUp).Row
zeile = letzte
While zeile \>= 1
If .Cells(zeile, 1) = "Max Mastermann" Then .Rows(zeile).Delete
zeile = zeile - 1
Wend
End With
End Sub
„Max Mastermann“ ist hier im Code fest „verdrahtet“. Natürlich kann man das noch beliebig erweitern, also etwa den Text, der gelöscht werden soll am Anfang in eine Textbox eingeben o.ä.
Gruß, Andreas
Hallo Andreas,
danke schonmal und ja so in der Art soll es sein
If .Cells(zeile, 1) = „Max Mastermann“ Then
.Rows(zeile).Delete
zeile = zeile - 1
Wend
End With
Kann ich den Befehl auch nur auf den String „Master“ anwenden?
Sagen wir es gibt einen „Max Mastermann“ und eine „Maxi Masterfrau“.
Geht es irgendwie, dass ich sagen kann, „Wenn in der Zelle der Wortschnipsel „Master“ vorhanden ist, dann lösche die Zeile“?
(Hätte ich mal noch mit reinschreiben sollen
)
MfG
Ja, Brille,
das geht. Hier die neue Version:
Sub MasterWeg()
Dim zeile As Long
With ActiveSheet
zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
While zeile \>= 1
If InStr(.Cells(zeile, 1), "Master") Then .Rows(zeile).Delete
zeile = zeile - 1
Wend
End With
End Sub
Gruß, Andreas
1 „Gefällt mir“
Supa, genau sowas hab ich gesucht!
Danke!
MfG