mit Eurer Hilfe habe ich letztes Jahr ein Makro erstellt, mit dem in Einer Liste nach bestimmten Werten gesucht wird und die gefundenen Zeilen dann gelöscht werden. Hier das Beispiel-Ergebnis:
Sub ABC()
Dim lng_letzteZeile As Long
Dim Zelle As Range
Columns("AC:AC").Select
Application.Calculation = xlManual
ActiveSheet.Range("$A$1:$AH$6577").AutoFilter Field:=29, Criteria1:=""
For Each Zelle In ActiveCell.EntireColumn.SpecialCells(2)
Zelle.Value = CStr(Zelle.Text)
Next
Application.Calculation = xlAutomatic
Cells.Select
Range("B1").Activate
Selection.AutoFilter
With ActiveSheet
lng_letzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
' #4711
' .Range("$A$1:$AH$" & lng_letzteZeile).AutoFilter Field:=2, Criteria1:="4711"
' .Rows(1).Hidden = True
' If .Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible) _
_
.Count >= 1 Then
' .Range("$A$1:$AH$" & lng_letzteZeile).SpecialCells(xlCellTypeVisible).Delete
' End If
' .Rows(1).Hidden = False
.AutoFilterMode = False
Application.DisplayAlerts = True
End With
Range("A1").Select
' Selection.AutoFilter
' ActiveWorkbook.SaveAs Filename:= _
"\*.xls" _
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ChDrive "N:\"
ChDir "
Jetzt kommt es aber vor daß der gesuchte Wert in der Liste gar nicht vorkommt. Dann bricht das Makro, aus mir nicht verständlichen Gründen, ab. In dem Beispiel wird in der Spalte B nach einem Wert 4711 gesucht, der aber nicht vorhanden ist.Ich dachte das Problem mit der if-Abfrage Count>1 abgefangen zu haben. Das scheint aber nicht der Fall zu sein. Gibt es eine möglichkeit das mit einem, wie auch immer gearteten else abzufangen? Wenn Ja wie?
Danke schon mal im Voraus für Eure Hilfe
MfG
Christoph