Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
524to528
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
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen mit bestimmtem enthaltenen Wert löschen

Zeilen mit bestimmtem enthaltenen Wert löschen
02.12.2004 06:30:56
Josef
Guten Morgen!
Ich habe in Spalte A eine Menge Datensätze stehen.
z.B.340296123699040900007213330400231D1501 808 809 90837
In vielen Datensätzen steht vom Zeichen 17 bis 21 der Wert 00007.
Ich möchte nun mittels VBA alle Zeilen in denen der Wert 00007 an der Stelle 17 bis 21 steht, löschen.
Gäbe es hier bitte eine VBA lösung dafür?
Danke
Josef

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
WernerB.
Hallo Josef,
kannst Du damit etwas anfangen?

Sub Josef()
Dim i As Long, laR As Long
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 1).End(xlUp).Row
For i = laR To 1 Step -1
If InStr(Cells(i, 1).Text, "00007") = 17 Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
02.12.2004 07:51:19
Josef
Hallo Werner!
Wie immer danke für Deine Hilfe.Klappt bestens.
Wo müßte ich bitte noch die 1 auf 2 ändern damit der Ablauf in Spalte B durchgeführt wird?
Danke
Josef
Anzeige
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
02.12.2004 08:01:04
Josef
Hallo Werner!
Ich bin jetzt nach dem Testen daraufgekommen, dass nicht alle Zeilen gelöscht werden,welche den wert enthalten.Einige bleiben immer über.
Josef
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
02.12.2004 08:19:44
Josef
Hallo Werner!
Hier wäre mein konkreter Anlassfall:
Gesucht sollte werden in SpalteB
Wenn ab dem 22 bis 23 Zeichen die Zahl 21 enthalten ist, dann sollten alle diese Zeilen gelöscht werden.
Ich habe den Test in der Spalte A durchgeführt und leider wurden nicht alle Zeilen in denen ab dem 22.Zeichen 21 vorkommt, gelöscht.

Sub Josef()
Dim i As Long, laR As Long
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 1).End(xlUp).Row
For i = laR To 1 Step -1
If InStr(Cells(i, 1).Text, "21") = 22 Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Josef
Anzeige
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
WernerB.
Hallo Josef,
bei mir läuft das in der Spalte "B":

Sub JosefB()
Dim i As Long, laR As Long
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 2).End(xlUp).Row
For i = laR To 1 Step -1
If InStr(Cells(i, 2).Text, "21") = 22 Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
02.12.2004 09:16:19
Josef
Hallo Werner!
Ich habe jetzt eine Musterdatei hochgeladen. Wenn du hier den Test mit dem Suchbegriff 06 durchführst, so bleiben eine Menge 06 über. Stelle 22-23.
Das Makro habe ich schon auf 06 eingestellt.Suche in SpalteB
https://www.herber.de/bbs/user/14223.xls
Leider ist nicht der ganze Text darauf, weil nur 300 KB hochgeladen werden können. Ich glaube aber für diesen Zweck würde es reichen.
Josef
Anzeige
AW: Zeilen mit bestimmtem enthaltenen Wert löschen
WernerB.
Hallo Josef,
der Fehler im Makro liegt darin, dass die Kombination "06" in den übriggebliebenen Zeilen auch schon vor der Position 22 im Text steht und die InStr-Funktion diese Position früher findet. Da diese Postion nicht mit 22 übereinstimmt, wird die Zeile auch nicht gelöscht.
Mit diesem geänderten Makro sollte es jetzt aber hinhauen; die darin verwendete Mid-Funktion stimmt mit der Excel-Tabellenblatt-Funktion "=TEIL()" überein:

Sub JosefB()
Dim i As Long, laR As Long
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 2).End(xlUp).Row
For i = laR To 1 Step -1
If Mid(Cells(i, 2).Text, 22, 2) = "06" Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige