Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

"0"-Filterung verhindern
#1
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
Antworten Top
#2
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
Antworten Top
#3
Das passt wunderbar.  Ich hab lediglich die Msg-Box rausgenommen. Irgendwie hat sich da etwas mit meinem "Rest-Code" gebissen!

Danke dafür !
Antworten Top
#4
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste