HERBERS Excel-Forum - das Archiv

Thema: TeilenLöschen | Herbers Excel-Forum

TeilenLöschen
Walter


Hallo
Ich habe eine Tabelle Spalte "A" mit Artikelnummern, hier sollen alle Artikel mit der Zeichenfolge "17" gelöscht werden.
Dim suche1 As Range
Dim zaehler1 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(1).Range("A" & zaehler1 & ":A" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row).Find("17", LookIn:=xlValues)
zaehler1 = suche1.Row
Sheets(1).Range(suche1.Row & ":" & suche1.Row).Delete Shift:=xlUp
Next zaehler1
Application.ScreenUpdating = True
Habe das gefunden, leider ohne erfolg.
Bitte um Hilfe
Danke sagt
Rentner Walter

AW: TeilenLöschen
F1

Sheets(1).Columns(1).Replace What:="*17*", Replacement:="", LookAt:=xlPart
AW: TeilenLöschen
fcs

Hallo Walter,
hier eine Variante, die funktioniert.
Bei deiner Variante gabs Probleme mit Zeile1 und wenn mehrer Treffer in Zeilen unmittelbar auf einander folgen.
Wichtig bei der Find-Methode: den Parameter LookAt nicht vergessen explizit zu setzen. Evtl. steht dort sonst von einer früheren Suche ein unerwünschter Wert.
Gruß
Franz
Sub aaSuche17()
Dim suche1 As Range, wks As Worksheet
Dim Spalte As Long
Set wks = Sheets(1) 'zu durchsuchendes Blatt
Spalte = 1 'zu durchsuchende Spalte
Do
'Suche mit Teil-Übereinstimmung des Zellwertes
Set suche1 = wks.Columns(Spalte).Find("17", LookIn:=xlValues, lookat:=xlPart)
'Suche mit Übereinstimmung gesamter Zellinhalt
'    Set suche1 = wks.Columns(Spalte).Find("17", LookIn:=xlValues, lookat:=xlWhole)
If suche1 Is Nothing Then Exit Do
wks.Rows(suche1.Row).Delete Shift:=xlUp
Loop
Application.ScreenUpdating = True
End Sub

AW: TeilenLöschen
Walter

Hallo Franz.
Danke
Walter