Daten mit Makro filtern

Guten Morgen,

Ich filtere mit einem Makro Daten aus Tabellenblätter einer Mappe die mit der Bezeichnung „LP“ beginnen.(LP Jugend Einzel, LP Damen Einzel usw.) Funzt Prima.
Die Werte werden in eine andere Tabelle übertragen und dort sortiert.
Jetzt ist eine Tabelle dazugekommen mit dem Namen "LP Auflage Einzel"Der Name muss so lauten und kann nicht geändert werden.
Dieses Tabellenblatt soll nicht mitgefiltert werden.
Ich möchte das Makro gerne so lassen, da auch noch andere Filter damit durchgeführt werden.
Ist es möglich das Tabellenblatt „LP Auflage Einzel“ aus dem Filter herauszunehmen? Wenn ja, wie?
Danke für jede Hilfe im Voraus.
Gruß Skaletti!

Sub Filter(strBlatt As String, strFilter As String) 
Dim shQ As Worksheet, shZ As Worksheet 
Dim lngZ As Long, lngLZ As Long 
Dim i As Byte 
 Application.ScreenUpdating = False 
 Set shQ = Sheets("Ergebniserfassung") 
 Set shZ = Sheets(strBlatt) 
 lngLZ = shZ.Cells(Rows.Count, 1).End(xlUp).Row 
 If lngLZ \> 1 Then shZ.Rows("2:" & lngLZ).ClearContents 
 With shQ.Range("A1") 
 .Sort Key1:=shQ.Range("E1"), Order1:=xlDescending, Header:=xlYes 
 .AutoFilter Field:=4, Criteria1:=strFilter 
 Do Until lngZ \> 20 
 i = i + 1 
 If .Rows(1 + i).Hidden = False Then 
 lngZ = lngZ + 1 
 End If 
 Loop 
 .Range("A1:J" & i).Copy shZ.Range("A1") 
 .AutoFilter 
 .Sort Key1:=shQ.Range("A1"), Order1:=xlAscending, Header:=xlYes 
 End With 
 Application.ScreenUpdating = True 
End Sub 




Private Sub cmdLP\_Click() 
If Range("A1").Interior.ColorIndex = 2 Then 
 Call Filter("Liste LP", "=\*\*LP") 
End If 
End Sub 

Grüezi Skaletti

Jetzt ist eine Tabelle dazugekommen mit dem Namen "LP Auflage
Einzel"Der Name muss so lauten und kann nicht geändert werden.
Dieses Tabellenblatt soll nicht mitgefiltert werden.
Ich möchte das Makro gerne so lassen, da auch noch andere
Filter damit durchgeführt werden.

Höngt dies nicht in erster Linie davon ab, wie Du diese Filter-Sub aufrufst:

Private Sub cmdLP_Click()
If Range(„A1“).Interior.ColorIndex = 2 Then
Call Filter(„Liste LP“, „=**LP“)
End If
End Sub

Ansonsten könntest Du als erste Zeile folgendes einfügen:

 If strBlatt = "LP Auflage Einzel" Then Exit Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

das problem ist, dass du nichts ändern willst, außer dem verhalten deines makros. grundsätzlich dürfte das aussortieren kein problem sein. du kannst entweder mehrere criteria einfügen, wobei ich der meinung bin, dass auch „ungleich“-filter möglich sind. das dürfte dir aber die hilfe genauer sagen. alternativ kann man die criteria wohl auch mit einem array übergeben:

Criteria1:=Array(„filter1“, „filter2“, „filter3“, …)

das habe ich aber noch nicht probiert und außerdem weiß ich da nicht, ob auch ein „ungleich“ und ein „gleich“ gemischt werden dürfen.

einfachste lösung: aufruf des sub mit einem dritten, optionalen filterbegriff. der wird dann als zusätzliches criteria2 eingefügt - sofern vorhanden. dann können alle anderen aufrufe so bleiben, nur der eine wird mit drei parametern aufgerufen.

Hallo,

vielen Dank für die schnellen Antworten und Hilfe.
Was Thomas vorgeschlagen hat funzt.

Gruß Skaletti!