Microsoft Excel

Herbers Excel/VBA-Archiv

TeilenLöschen | Herbers Excel-Forum


Betrifft: TeilenLöschen von: Walter
Geschrieben am: 30.11.2009 14:41:03


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

  

Betrifft: AW: TeilenLöschen von: F1
Geschrieben am: 30.11.2009 15:01:55

Sheets(1).Columns(1).Replace What:="*17*", Replacement:="", LookAt:=xlPart


  

Betrifft: AW: TeilenLöschen von: fcs
Geschrieben am: 30.11.2009 15:19:04

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



  

Betrifft: AW: TeilenLöschen von: Walter
Geschrieben am: 30.11.2009 18:10:32

Hallo Franz.

Danke

Walter