If abfrage variabel halten

Liebe/-r Experte/-in,

Ich habe das Problem das ich gerne in Excel alle zeilen die die buchstabenfolge „mn“ beinhalten löschen würde

meine idee :

If Cells(lngUser, 1) = „mn*“ Then
Cells(lngZeile, 1).EntireRow.Delete

gefiltert sollen userid’s wie

mn123
mn234
mn345

werden .

ist dies möglich und wenn ja wie ?

Hab zwar schon länger nix meher in VBA gemacht, aber
trotzdem

Wie immer gibt es da mehrere Lösungen

Ganzes Tabellenblatt durchsuchen und wahlweise Zeile löschen (DoDelete = True) oder nur Inhalt der Zeile löschen (DoDelete = False)

Dim Firstrow, Lastrow, Lrow, c, LS As Long
Dim Treffer As Boolean
'Erste Zeile mit Werten ermitteln
Firstrow = ActiveSheet.UsedRange.Cells(1).Row
'Letzte Zeile mit werten ermitteln
Lastrow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
'Letzte Spalte mit Werten ermiiteln
LS = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

'Löschen mit oder ohne Zeilen zu verschieben
DoDelete = False

ActiveSheet.Select

For Lrow = Firstrow To Lastrow
Treffer = False

For c = 1 To LS
With ActiveSheet.Cells(Lrow, c)
w = .Text
If Not IsError(.Value) Then
Treffer = .Text Like „*mn“
End If
If Treffer = True Then
If DoDelete = False Then
.ClearContents
Else
.EntireRow.Delete
Lastrow = Lastrow - 1
Lrow = Lrow - 1
End If
Exit For
End If
End With
Next c
Next Lrow

Schnelle Methode Zeilen zu löschen über Filter auf Spalte (Hier Spalte D)

With ActiveSheet
.AutoFilterMode = False
With Range(„d1“, Range(„d“ & Rows.Count).End(xlUp))
.AutoFilter 1, „=*mn“
On Error Resume Next

'Wenn Inhalte nur gelöscht werden sollen
'.ClearContents

.EntireRow.Delete
End With
.AutoFilterMode = False
End With

Annsonsten dürfte diese Seite auch hilfreich sein

http://www.mrexcel.com/forum/showthread.php?t=300330

Hallo Hauerli,

ich hoffe es ist so einfach, wie es klingt. Du bist auch bereits auf dem richtigen Weg, Dein Vergleichsoperator ist allerdings LIKE und Du benötigst eine Schleife!

Dim lngZeile as Long
Dim Ende as Boolean

Ende = False
lngZeile = 'Hier bitte die unterste zu prüfende Zeile fest eintragen, z.B. 405, wenn die letzte Zeile mit User-IDs die Zeile 405 ist

While Not Ende
DoEvents

If Cells(lngZeile, 1).Value Like „mn*“ Then
Rows(lngZeile).Delete
End If

lngZeile = lngZeile - 1
If lngZeile

Hi!

ich würd das mit
„if left(Cells(lngUser, 1),2) = „mn“ then…“
lösen.
LiGrü

Hi,
versuch doch
If Cells(lngUser, 1) Like „mn*“ Then
Cells(lngZeile, 1).EntireRow.Delete
End If