habe mir folgendes ausgedacht:
wenn in einer Zelle einer Zeile ein x-beliebiger Inhalt steht, (welchen ich vorher benennen möchte), dann sollen diese Zeilen komplett gelöscht werden. Ist das machbar ?
Danke
ROlf
habe mir folgendes ausgedacht:
wenn in einer Zelle einer Zeile ein x-beliebiger Inhalt steht, (welchen ich vorher benennen möchte), dann sollen diese Zeilen komplett gelöscht werden. Ist das machbar ?
Danke
ROlf
dank' Dir für das flotte Makro.
Gruß ROlf
dank Dir auch für die 2. Variante. Sicher is`sicher.
Wie könnte man dieses Makro denn noch erweitern zb. suchen nach Wildcards RO* oder RO* && *Olf. Jetzt arbeitet das Makto ja mit einer festen Variabelen ?
Gruß ROlf
Code eingefügt mit Syntaxhighlighter 1.16
Sub Makro1()
'Eingabe mit Wildcards
'verarbeitet wird Text, *ext, *xt, *t, Tex*, Te*, T*, *ex*, *e*, *x*, T*xt, Te*t
'nicht verarbeitet werden T**t, T*x*, *x*t, usw., also mehrere innere und die
'Kombination innere / äußere Wildcards
'verwendete Variablen: meineEingabe, bei Bedarf definieren
meineEingabe = Application.InputBox("Geben Sie etwas ein:")
If meineEingabe <> False Then
'nicht ausführen wenn Abbruch der Inputbox
letzteZelle = Range("A65536").End(xlUp).Row
'A65536 ist letzte Zelle bei Excel97 (und 2000 und ff?)
For i = letzteZelle To 1 Step -1
If InStr(1, meineEingabe, "*") >= 1 Then
'wenn Wildcards vorhanden, wenn nicht dann im Else-Zweig
If Right(meineEingabe, 1) = "*" And Left(meineEingabe, 1) = "*" Then
'äußere Wildcards auf beiden Seiten
If InStr(1, Range("A" & i), Left(Right(meineEingabe, Len(meineEingabe) - 1), Len(meineEingabe) - 2)) >= 1 Then
Rows(i & ":" & i).Delete Shift:=xlUp
End If
ElseIf Right(meineEingabe, 1) = "*" Then
'äußere Wildcards rechte Seite
If Left(Range("A" & i), Len(meineEingabe) - 1) = Left(meineEingabe, Len(meineEingabe) - 1) Then
Rows(i & ":" & i).Delete Shift:=xlUp
End If
ElseIf Left(meineEingabe, 1) = "*" Then
'äußere Wildcards linke Seite
If Right(Range("A" & i), Len(meineEingabe) - 1) = Right(meineEingabe, Len(meineEingabe) - 1) Then
Rows(i & ":" & i).Delete Shift:=xlUp
End If
Else
If Left(Range("A" & i), Len(meineEingabe) - InStr(2, meineEingabe, "*")) _
= Left(meineEingabe, Len(meineEingabe) - InStr(2, meineEingabe, "*")) _
And Right(Range("A" & i), Len(meineEingabe) - InStr(2, meineEingabe, "*")) _
= Right(meineEingabe, Len(meineEingabe) - InStr(2, meineEingabe, "*")) _
Then
'inneres Wildcard
Rows(i & ":" & i).Delete Shift:=xlUp
End If
End If
Else
If Range("A" & i) = meineEingabe Then
'kein Wildcard
Rows(i & ":" & i).Delete Shift:=xlUp
End If
End If
Next
End If
End Sub
Hut ab.
Wenn Du ein bisschen Zeit hättest und Dich für ein "wirkliches" Problem bezüglich Makro in Excel hättest, dann mail mir doch mal. Ich habe eine komplexes Makro geerbt und komme damit nicht weiter.
Danke Dir soweit.
ROlf
gruss Andre