Löschen von Zeilen (Wildcard?)

Gangsterneo

Mitglied
Löschen von Zeilen - UPDATE: die mit LG* anfangen

Hallo liebe Community,

ich hab selber schon so viel rumgebastelt und komme nicht drauf, wie ich aus einem Excel Dokument mit VBA,
die komplette Spalte E nach einem Wort durchsuche. Das Problem hierbei ist, dass ich das Wort als Wildcard suchen muss.
Ich habe mir folgenden Code gebastelt:

Code:
Sub DEL_ROWS_Word

Worksheets("meine Tabelle").Select
Range("E1:E999").Select
For Each cell In Selection
If Not InStr(cell.Value, "Datum") = "0" Then cell.EntireRow.Delete

Next
End Sub

Das Funktioniert aber nur immer mit der ersten Zeile die er findet ;C

Liebe Grüße,
Neo


PS: habs auch mal mit sowas probiert:

Code:
Sub DEL_ROWS_Deployment()
Dim i As Integer
i = 1
While (i <= 999)
    If Not InStr(Range(Ei, Ei).Value, "Datum") = 0 Then Range(ai, zi).Delete
    i = i + 1
Wend
End Sub

Aber er will irgendwie nicht...
Ich suche wie gesagt nicht nur das Wort "Datum" sondern z.B. "Datum 091009" oderso.
 
Zuletzt bearbeitet:
Moin,

sein erster Ansatz war schon richtig. Es gibt da zwischen deinem und meinem Code einen klitzekleinen Unterschied, es sind drei Zeichen ...
Code:
Sub xyz()
   Dim c
   Range("B1:A999").Select
   For Each c In Selection
      If InStr(1, LCase(c), "datum") Then c.EntireRow.Delete
   Next c
End Sub
Schau mal in der Hilfe unter "reservierte Worte (Wörter?)" nach.
Was ich sonst noch geändert habe: "Datum" und "datum" werden gesucht und das "Not = 0" habe ich auch etwas verschlankt.

Dein 2. Versuch kann nicht funktionieren. Entweder du arbeitest nicht mit RANGE() sondern mit CELLS() [imho die bessere Lösung] oder du verwendest das "&" zum Verknüpfen von zwei Werten. -> Cells(i,5) bzw. Range("E"&i)
 
Zuletzt bearbeitet:
Hallo, danke für die schnelle Antwort.

Ich habe dein Code leider zu spät gesehen, dennoch getestet.
Leider funktioniert er bei mir nicht.
Ich habe mein Problem jedoch mit folgendem Code gelöst, da mir aufgefallen ist, das er Zeilen überspringt, da er ja grade eine Zeile gelöscht hat.
Also Increase ich nur, wenn er keine Zeile löscht.

Der Code:
Code:
Sub DEL_ROWS_Deployment()

Dim i As Integer
Dim Tabelle1 As Worksheet
Set Tabelle1 = Worksheets("Test Status AHS")
i = 1

While (i <= 999)

    With Tabelle1.Range(Tabelle1.Cells(1, 4), Tabelle1.Cells(9999, 4))
        
        If InStr(Tabelle1.Range(Tabelle1.Cells(i, 4), Tabelle1.Cells(i, 4)), "Deployment") Then Rows(i).Delete Else i = i + 1
      
    End With
Wend

End Sub


------ Neue Frage (Thread-Name UPDATE) -----
Ich möchte nun noch Zeilen löschen,
wo nicht nur z.B. ein "r" vorkommt (inStr())
sondern eine Zeile löschen, die mit "r" anfängt

Beispiel

Id, Projekt, Autor, Datum
1, LG1337PR, Neo, Datum071009
2, PR1338LG, Neo, Datum071009
3, LG1339PR, Neo, Datum071009
4, LG1390PR, Neo, Datum071009
5, LG1367PR, Neo, Datum071009


Ich weiß.. das Beispiel ist etwas komisch...
Ich kann aber die Projektnamen nicht ändern (Diese sind jedoch grade fiktiv, beschreiben aber mein Problem)

Wenn ich nun mit inStr nach LG suche und diese dann lösche, würde er alle löschen.

Er soll aber nur die löschen, die mit LG anfangen :>

Ich hoffe ihr versteht was ich meine xD


Danke schonmal im Voraus!
 
Ich habe dein Code leider zu spät gesehen, dennoch getestet.
Leider funktioniert er bei mir nicht.
Hmmm, bei mir lief das einwandfrei. Was für ein Fehler kommt denn? - Whatever, du hast ja eine Lösung gefunden. Allerdings wird es u.U. Probleme geben, wenn unterhalb der letzten definierten Zeile noch Daten stehen.

Zu deinem nächsten Problem:
Code:
LEFT(Zelle,2)="LG"
bringt dich weiter!

Ähm, ich habe meinen Fehler gefunden. Tippfehler in der Bereichsangabe: B1:B999 wäre natürlich richtig gewesen. Und dein Fehler war das Schlüsselwort cell, ich habe nur "c" verwendet, weil "cell" ein reserviertes Wort ist.
 
Suppppääär :D

ich muss gestehen, dass ich heute das erstemal damit arbeite.

zu dem 1. Ich find deine Lösung echt besser :D *fg*
Dank dir für deine Mühe und Geduld :>

Schöne Woche noch!
 
Moin Gangsterneo,

danke für das Feedback. Das ist hier leider nicht Standard ...
Und dass es dir gefällt, das freut mich natürlich!
 

Neue Beiträge

Zurück