Clever-Excel-Forum

Normale Version: "0"-Filterung verhindern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, 

ich benötige Hilfe bei einem Teil meines Markos

Hintergrund: Das Makro filtert bestimmte Daten aus einer Tabelle aus. Geprüft wird Spalte "C". Werte größer "0" werden angezeigt und im Anschluss kopiert und 
in ein Formular gezogen. 

Problem: Mit meiner "gebastelten" Variante funktioniert der Vorgang an sich gut. Allerdings kann es passieren, dass kein Wert größer "0" vorhanden ist. Das Makro bricht 
dann ab. Wie kann ich dies umgehen?

Code:
Code:
Sheets("Fehl").Select
   ActiveSheet.ListObjects("Fehlartikel").Range.AutoFilter Field:=3, Criteria1 _
        :=">0", Operator:=xlAnd
   lRow = Cells(Rows.Count, 1).End(xlUp).Row
   Range("A2:C" & lRow).SpecialCells(xlCellTypeVisible).Copy _
   
   Sheets("SortUmschreib").Select
   Range("A3").Select
   
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Vielen Dank vorab für eure Hilfe
Hallo

probiere es bitte mal mit diesem Code.  Die unnötigen Select Befehle habe ich gelöscht.
Der Befehl -SpecialCells- führt gerne zur Fehlermeldung wenn keine Daten vorlhanden sind!

mfg Gast 123

Code:
Sub Makro2()
Sheets("Fehl").Select
   ActiveSheet.ListObjects("Fehlartikel").Range.AutoFilter Field:=3, Criteria1:=">0"
   lRow = Cells(Rows.Count, 1).End(xlUp).Row
   On Error Resume Next
   Range("A2:C" & lRow).SpecialCells(xlCellTypeVisible).Copy
   Sheets("SortUmschreib").Range("A3").PasteSpecial Paste:=xlPasteValues
   If Err > 0 Then MsgBox "Keine gefilterten Daten vorhanden"
   Application.CutCopyMode = False
End Sub
Das passt wunderbar.  Ich hab lediglich die Msg-Box rausgenommen. Irgendwie hat sich da etwas mit meinem "Rest-Code" gebissen!

Danke dafür !
Hallo PieWie,

Zitat:Das passt wunderbar.

Das kann ich gar nicht glauben, da verwendest Du 1 intelligente Tabelle (ActiveSheet.ListObjects("Fehlartikel") und nutzt nicht die
DataBodyRange-Eigenschaft zum Ermitteln der gefilterten Datensätze - sehr merkwürdig.

Gruß von Luschi
aus klein-Paris