Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen löschen, wenn der Zellinhalt BAK?

Zeilen löschen, wenn der Zellinhalt BAK?
02.03.2020 22:07:17
Sergej
Hallo Leute,
wie kann ich bitte per VBA (ab Zeile 3 bis letzte benutzte Zeile der Spalte A) ganze Zeile löschen bei den es in Spalte A das Wort BAK in dem Zellinhalt vorkommt?
Beste Grüße,
Sergej

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
z.B. mit Like "*BAK*"
02.03.2020 23:36:23
Matthias
Hallo Sergej
Option Explicit
Sub tt()
Dim LoLetzte&, x&, MyCheck As Boolean
LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For x = LoLetzte To 3 Step -1
If Cells(x, 1).Text Like "*BAK*" Then MyCheck = True
If MyCheck Then
Rows(x).Delete
Exit For
End If
Next
End Sub
Gruß Matthias
AW: z.B. mit Like "*BAK*"
03.03.2020 15:36:31
Sergej
Hallo Matthias,
ich habe es getestet. Irgendwie wird nichts gelöscht.
Beste Grüße,
Sergej
AW: z.B. mit Like "*BAK*"
03.03.2020 23:34:06
Matthias
Hallo Sergej,
ich habe es auch getestet. Bei mir wird gelöscht.
Aber evtl. steht ja nicht BAK in der Zelle, sondern bak ?
Dafür könntest Du es dann so lösen:
If UCase(Cells(x, 1).Text) Like "*BAK*" Then ...
Ich habe den Code aber nochmal überarbeitet. Mir gefällt das hier besser:
Option Explicit
Sub tt()
Dim LoLetzte&, x&, MyCheck As Boolean
LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For x = LoLetzte To 3 Step -1
MyCheck = False
If UCase(Cells(x, 1).Text) Like "*BAK*" Then MyCheck = True
If MyCheck Then
If MsgBox("Zeile " & x & " wird jetzt gelöscht", vbYesNo) = vbYes Then
Rows(x).Delete
Exit For
End If
End If
Next
End Sub
Gruß Matthias
Anzeige
AW: z.B. mit Like "*BAK*"
06.03.2020 08:49:22
Sergej
Hallo Matthias,
sorry für verspätete Rückmeldung. Ich habe kein Beitrag ohne Rückmeldung. ;-)
Wenn in Zelle nur BAK steht, dann wird diese gelöscht. Soweit in Ordnung.
Wenn aber BAK nur Teil des Zellinhalts Bsp. P:\Daten\Projekte\2208700 KTU\BAK\04\demo.xml ist, dann wird die Zeile nicht gelöscht.
Beide Fälle sollen abgedeckt werden.
Beste Grüße,
Sergej
AW: z.B. mit Like "*BAK*"
06.03.2020 08:57:24
Oberschlumpf
Hi,
eine andere Möglichkeit könnte auch das hier sein:
If Instr(UCASE(Cells(x, 1).Text), "BAK") > 0 Then MyCheck = True

Hilfts?
Ciao
Thorsten
Lösche die Zeile im Code: Exit For (owT)
06.03.2020 09:01:50
EtoPHG

Anzeige
DAS ist NOCH BESSER! :-)) ...owT
06.03.2020 09:20:38
Oberschlumpf
Zeilen löschen, wenn der Zellinhalt BAK?
06.03.2020 10:04:17
Sergej
Hallo Zusammen,
Sub tt()
Dim LoLetzte&, x&, MyCheck As Boolean
LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For x = LoLetzte To 3 Step -1
If InStr(UCase(Cells(x, 1).Text), "BAK") > 0 Then MyCheck = True
If MyCheck Then
Rows(x).Delete
'    Exit For
End If
Next
End Sub
Damit wurden die Zeilen gelöscht, bei den es im Zellinhalt "BAK" vorkommt. Leider wurden auch einige Zeilen gelöscht, bei den im Zellinhalt kein BAK vorkommt. ;-)
Beste Grüße,
Sergej
Statt:' Exit For, schreibe: MyCheck = False (owT)
06.03.2020 10:53:02
EtoPHG

Behauptung bitte nachweisen ...
06.03.2020 10:46:33
Matthias
Hallo
Zitat
Wenn aber BAK nur Teil des Zellinhalts Bsp. P:\Daten\Projekte\2208700 KTU\BAK\04\demo.xml ist, dann wird die Zeile nicht gelöscht.
Beide Fälle sollen abgedeckt werden.

Bitte diese Behauptung nachweisen!


Das gezeigt Bsp: P:\Daten\Projekte\2208700 KTU\BAK\04\demo.xml wird mit meinem Code korrekt gelöscht.
Gruß Matthias
Anzeige
AW: Behauptung bitte nachweisen ...
06.03.2020 13:25:47
Sergej
Hallo Matthias,
jetzt habe ich es nochmals mit deinem Code getestet:
Sub tt()
Dim LoLetzte&, x&, MyCheck As Boolean
LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For x = LoLetzte To 3 Step -1
MyCheck = False
If UCase(Cells(x, 1).Text) Like "*BAK*" Then MyCheck = True
If MyCheck Then
If MsgBox("Zeile " & x & " wird jetzt gelöscht", vbYesNo) = vbYes Then
Rows(x).Delete
Exit For
End If
End If
Next
End Sub
Ich muss das Makro mehrfach ausführen, damit alle betreoffenen Zeilen gelöscht werden.
Beste Grüße,
Sergej
AW: Behauptung bitte nachweisen ...
06.03.2020 15:41:07
Oberschlumpf
Hallo,
oder ersetz mal das Exit For mit MyCheck = False, wie es von EtoPHG schon vorgeschlagen wurde.
Vielleicht reicht dann ein Durchgang des Makros.
Ciao
Thorsten
Anzeige
AW: Behauptung bitte nachweisen ...
06.03.2020 16:20:36
Sergej
Hallo Thorsten,
mit MyCheck = False funktioniert es.
Vielen Dank an alle...
Beste Grüße,
Sergej

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige