Anzeige
Archiv - Navigation
1320to1324
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

Zeile löschen wenn sie ein Wort enthält

Zeile löschen wenn sie ein Wort enthält
10.07.2013 15:16:36
Johannes
Gibt es eine einfache Möglichkeit mittels VBA eine Zeile zu löschen wenn Sie in Spalte "U" also 21 das Wort "Product Line" enthält?`Gruß

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn sie ein Wort enthält
10.07.2013 15:23:16
Klaus
Hallo Johannes,
Gruß und Anrede lassen den Beitrag viel angenehmer erscheinen.
Um in der aktiven Zeile zu prüfen:
Sub ZeileWenn()
If Cells(ActiveCell.Row, 21).Value = "Product Line" Then ActiveCell.EntireRow.Delete
End Sub
Grüße,
Klaus M.vdT.

AW: Zeile löschen wenn sie ein Wort enthält
10.07.2013 16:50:24
Johannes
Vielen Dank Klaus,
da hast du natürlich Recht. Das ist das übliche Problem der abgekürzten Kommunikation. ;-)
Gibt es auch die Möglichkeit, das er das mit allen Zeilen überprüft weil so löscht er ja nur die wie beschrieben aktive Zeile sofern ich das richtig verstanden habe. Da es aber in ein bereits bestehendes Macro eingefügt ist sollte er/es eine ganze Tabelle durchgehen.
Gruß
Johannes

Anzeige
ungetestet
10.07.2013 17:00:42
Klaus
Hi,
hab grad kein Excel zur Hand, aber etwa so:
Sub ZeileWenn()
dim lrow as long
dim i as long
with activesheet
lrow = .cells(.rows.count,21).end(xlup).row
for i = lrow to 1 step -1 'zeilen immer rückwärts löschen
If .Cells(i, 21).Value = "Product Line" Then .rows(i).Delete
next i
end with
end sub
Das müsste funktionieren, ist aber sicherlich elendig langsam (da es alle Zeilen per Schleife durchläuft).
Einen performanteren Code erhälst du, wenn du die zu löschenden Zeilen zunachst in einem "Union" sammelst und am Ende auf einen Schlag löscht. Beispiele gibts in der Recherche ohne Ende, ich schüttel mir grad keins aus dem Ärmel.
Eine andere, auch schnelle Alternative:
- Makrorekorder an
- Setze auf Spalte 21 einen Autofilter,
- filtere nach "*Product Line*" (Makrorekorder)
- markiere Spalte 21
- Drücke STRG+G (gehe zu), wähle Inhalte, nur sichtbare
- hebe den Autofilter auf
- Makrorekorder aus
In dem so entstandenen Rekordercode ersetzt du das letzte .Select (in der Zeile müsste in etwas mit specialcells(xltypevisible) oder so stehen) durch .entirerow.delete. Das dürfte ebenfalls rasend schnell laufen.
Grüße,
Klaus M.vdT.

Anzeige
Hallo Johannes, wenn ich ...
11.07.2013 08:48:06
Klaus
... eine Rückmeldung bekomme, zeige ich dir heute gerne eine Methode die 1000 mal schneller ist als die von mir / Uwe bisher vorgestellte.
Grüße,
Klaus M.vdT.

AW: Zeile löschen wenn sie ein Wort enthält
10.07.2013 17:03:59
UweD
Hallo
so?
Sub Product_Line()
Dim ZE%, i%, z%
ZE = 1 'Zeile 1
Application.ScreenUpdating = False
For i = ActiveSheet.Cells(Rows.Count, 21).End(xlUp).Row To ZE Step -1
If ActiveSheet.Cells(i, 21).Value = "Product Line" Then
ActiveSheet.Rows(i).Delete xlUp
z = z + 1
End If
Next
MsgBox z & " Zeilen entfernt"
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige