Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen löschen, wenn Wert in unbestimmer Spalte

Zeilen löschen, wenn Wert in unbestimmer Spalte
03.11.2017 12:07:23
Basti
Hallo VBA'ler,
benötige mal wieder etwas Hilfe mit einem Code.
Ich Importiere eine XML-Datei in meine Arbeitsmappe und möchte, dass alle Zeilen, die nicht meinen "Suchwert" in einer "unbestimmten Spalte" enthalten, gelöscht werden.
Hab im World Wide Web eine Prozedur gefunden (vgl. ZeilenLoeschenInStr), die allen Zeilen löscht, wenn der "Suchwert" in Spalte 178 (Beispiel) nicht enthalten ist.
Da diese Spaltenzahl und auch der Spaltenname von XML-Datei zu XML-Datein varrieren kann, suche ich eine Lösung, die alle Spalten einer Zeile nach dem "Suchwert" überprüft und die Zeile ggf. löscht, wenn nicht vorhanden.
Habt Ihr evtl. eine passende Lösung für mich?
Gruß
Basti
Sub ZeilenLoeschenInStr()
Dim i
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
On Error Resume Next
If InStr(Cells(i, 178), "Suchwert") = 0 Then
Rows(i).Delete
End If
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeilen löschen, wenn Wert in unbestimmer Spalte
03.11.2017 12:22:15
Rudi
Hallo,
If Application.CountIf(Rows(i),"*Suchwert*") = 0 Then
Gruß
Rudi
Zeilen löschen, wenn Wert in unbestimmer Spalte
03.11.2017 12:55:34
Basti
Vielen Dank Rudi!
Hast Du evtl. noch eine Lösung, wenn ich danach noch "alle Spalten links vom Suchwert löschen" möchte?
Gruß
Basti
unverständlich....
03.11.2017 13:02:15
Rudi
...weil du doch die ganze Zeile löschst.
Gruß
Rudi
AW: unverständlich....
03.11.2017 13:07:27
Basti
Nein, ich lösche alle Zeilen, die NICHT den Suchwert enthalten.
Gruß
Basti
verstanden
03.11.2017 13:08:42
Rudi
Hallo,
Sub ZeilenLoeschenInStr()
Dim i As Long, vCol
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
vCol = Application.Match("*Suchwert*", Rows(i), 0)
If IsError(vCol) Then
Rows(i).Delete
Else
Cells(i, 1).Resize(, vCol - 1).Delete xlToLeft
End If
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Gruß
Rudi
Anzeige
AW: verstanden
03.11.2017 13:33:54
Basti
Volltreffer! Vielen Dank auch für deine Zeit, um den Leuten hier zu helfen.
Schönes Wochenende und Gruß aus Bayern.

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige