Das mit dem Code ging schon - suchen und ersetzen haben das schon passen gemacht.
Also Filter 1 und 2 werden ja immmer angewendet (auch wenn das kopieren der Seite nur bei Treffern erfolgt). Lediglich Filter 3 hängt von 1 und 2 ab. Also müsste man nur prüfen, ob 1 oder 2 liefen - wobei das eigentlich auch hinfällig wäre, da ja 1 oder 2 immer einmal einen Treffer hat. Also müssten eigentlich nur alle 3 Filter hintereinander laufen und nicht in einer if then else. Habe es jetzt aber mal mit der Prüfung gemacht. Die Zeilenumbrüche habe ich gelöscht. Jeder Filter läuft für sich. VG
Dim eins As Boolean
Dim zwei As Boolean
eins = False
zwei = False
Application.ScreenUpdating = False
With Worksheets("Master")
'Filter 1
.Range("A:AAA").AutoFilter Field:=9, Criteria1:="=Bonn", Operator:=xlOr, Criteria2:="=Bonn"
If .Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
eins = True
For i = 10 To 21 ' J bis U
With Worksheets("Verteiler_Vorlage")
.Visible = True
.Copy After:=Sheets(Sheets.Count)
.Visible = False
End With
Next
End If
'Filter 2
.Range("A:AAA").AutoFilter Field:=9, Criteria1:="=Berlin", Operator:=xlOr, Criteria2:="=Berlin"
If .Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
zwei = True
For i = 10 To 21 ' J bis U
With Worksheets("Verteiler_Vorlage")
.Visible = True
.Copy After:=Sheets(Sheets.Count)
.Visible = False
End With
Next
End If
'Filter 3 in Abhängigkeit
If eins = True Or zwei = True Then
.Range("A:AAA").AutoFilter Field:=9, Criteria1:="=Augsburg"
If .Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
For i = 17 To 19 ' Q bis S
With Worksheets("Verteiler_Vorlage")
.Visible = True
.Copy After:=Sheets(Sheets.Count)
.Visible = False
End With
Next
End If
End If 'Prüfung ob Filter 1 oder 2
End With 'Worksheets("Master")
Application.ScreenUpdating = True
|