Unten stehende Prozedur filtert mit ein Blatt (Formeln) und kopiert die gefilterten Ergebnisse auf ein anderes (Ex).
Die Prozedur läuft innerhalb einer Schleife, welche mir in Zelle A5 auf dem Blatt Stamm mit jedem Durchlauf einen anderen Wert schreibt, nach welchem dann auf dem Blatt Formeln gefiltert werden soll (Filed 7). Zusätzlich werden alle Zeilen raus gefiltert, die in der Spalte A (Field 1) einen Nullwert haben.
So weit der Plan.
Leider produziert mir das Ganze einen "Überlauf".
Ich weiß erstens gar nicht, was das bedeutet und zweites verstehe ich nicht, warum der Code so nicht funktionieren soll. Schließlich sage ich ja nur, kopiere mir nur, wenn du mehr als eine Zeile gefunden/gefiltert hast (also wenn nicht ALLE Zeilen Nullwerte haben).
Danke für eure Ideen dazu!
Sub Filter_ESM()
Sheets("Formeln").Activate
'alle filtern nach BK und ohne Nullbeträge
Columns("A:I").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$I$100000").AutoFilter Field:=7, Criteria1:=Sheets("Stamm").Range(" _
A5").Value
'Filterkriterium ist der nach Schleifendurchlauf neu rein geschriebene BK in A5
ActiveSheet.Range("$A$1:$I$100000").AutoFilter Field:=1, Criteria1:="0", _
Operator:=xlAnd
'kopieren und auf Ex einfügen
'' Versuch bei 0-Filter das kopieren zu verhindern - hier hab ich dann den Fehler
If Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Count > 1 _
Then
Selection.Copy
Sheets("Ex").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Filter wieder aus schalten
Sheets("Formeln").Select
Application.CutCopyMode = False
Selection.AutoFilter
Else
Exit Sub
End If
End Sub