Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme viele Argumente beim Spezialfilter

Probleme viele Argumente beim Spezialfilter
17.10.2008 08:06:00
Susi
Hallo liebe Excel-Freunde,
ich habe eine kleines Problem mit dem Spezialfilter. Meine Tabelle ist so aufgebaut, dass ich zwei TB mit Grunddaten und zwei TB mit den jeweiligen Ergebnissen des Spezialfilters habe. Die Auswahl treffe ich auf einem TB mit Auswahlfeldern.
Zum Testen habe ich es erst einmal mit einem Makro und zwei Argumenten ausprobiert. Da hat auch noch alles wunderbar funktioniert.

Makro 1:


Private Sub Filter_anwenden_Click()
Application.ScreenUpdating = False
Worksheets("Ergebnis A").Select
If Worksheets("Ergebnis A").Range("B5") = "B" Then
Worksheets("Ergebnis B").Select
Sheets("Tabelle1").Range("A1:S5000").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis B").Range("B4:B5"), CopyToRange:=Sheets(" _
Ergebnis B").Range("A9:B5000") _
, Unique:=True
Else
Worksheets("Ergebnis A").Select
Sheets("Projekte").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis A").Range("B4:B5"), CopyToRange:=Sheets(" _
Ergebnis A").Range("A10:F5000") _
, Unique:=True
End If
Application.ScreenUpdating = True
End Sub


Dieses Makro läuft einwandfrei durch.
Da ich aber viele Argumente zur Auswahl habe, wollte ich nun das Makro aufbohren, nach dem Motto Wenn Argument 1 dann Auswahl 1, wenn Argument 2 dann Auswahl 2, wenn Argument 3 dann Auswahl 3 u.s.w..
Leider bekomme ich nicht die richtige Syntax hin. Hier mein Versuch.
Makro 2:


Private Sub Filter_anwenden_Click()
Application.ScreenUpdating = False
Worksheets("Ergebnis A").Select
'ALLE PROJEKTE
If Worksheets("Ergebnis A").Range("B5") = "ALLE PROJEKTE" Then
Worksheets("Ergebnis A").Select
Sheets("Projekte").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis A").Range("B4:B4"), CopyToRange:=Sheets(" _
Ergebnis A").Range("A10:F5000") _
, Unique:=True
End If
'Beschaffungen
If Worksheets("Ergebnis A").Range("B5") = "B" Then
Worksheets("Ergebnis B").Select
Sheets("Tabelle1").Range("A1:S5000").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis B").Range("B4:B5"), CopyToRange:=Sheets(" _
Ergebnis B").Range("A9:B5000") _
, Unique:=True
End If
'F-Beschaffungen
If Worksheets("Ergebnis A").Range("B5") = "F" Then
Worksheets("Ergebnis B").Select
Sheets("Tabelle1").Range("A1:S5000").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis B").Range("B4:B5"), CopyToRange:=Sheets(" _
Ergebnis B").Range("A9:B5000") _
, Unique:=True
End If
'historisch
Worksheets("Ergebnis A").Select
Sheets("Projekte").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis A").Range("B4:B5"), CopyToRange:=Sheets(" _
Ergebnis A").Range("A10:F5000") _
, Unique:=True
Application.ScreenUpdating = True
End Sub


Das Zweite Makro läuft zwar auch durch, aber es kommt leider nur Murks raus. Ich muss insgesamt ca. 7 If ... then Else Argumente hinzufügen.
Vielleicht kann mir ja einer helfen, wie ich das Makro aufbauen müsste, um immer je nach Argument eine Lösung (Filterung) auf meinen zwei Ergebnis-Tabellenblättern zu erhalten.
Vielen Dank schon mal.
Gruß Susi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme viele Argumente beim Spezialfilter
17.10.2008 08:28:00
Harald
Hallo Susi,
mangels der passenden Tabelle konnte ich den Code nicht testen, aber prinzipiell ist es bei vielen Bedingungen oft sinnvoller, "Select-Case" statt "If" zu verwenden. Das könnte dann so aussehen (von Dir zu erweitern):

Private Sub Filter_anwenden_Click()
Application.ScreenUpdating = False
Worksheets("Ergebnis A").Select
Select Case Worksheets("Ergebnis A").Range("B5")
Case "ALLE PROJEKTE" 'ALLE PROJEKTE
Worksheets("Ergebnis A").Select
Sheets("Projekte").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis A").Range("B4:B4"), CopyToRange:=Sheets("  _
_
Ergebnis A").Range("A10:F5000") _
, Unique:=True
Case "B" 'Beschaffungen
Worksheets("Ergebnis B").Select
Sheets("Tabelle1").Range("A1:S5000").AdvancedFilter Action:=
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis B").Range("B4:B5"), CopyToRange:=Sheets("  _
_
Ergebnis B").Range("A9:B5000") _
, Unique:=True
Case "F" 'F-Beschaffungen
Worksheets("Ergebnis B").Select
Sheets("Tabelle1").Range("A1:S5000").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis B").Range("B4:B5"), CopyToRange:=Sheets("  _
_
Ergebnis B").Range("A9:B5000") _
, Unique:=True
End Select
'historisch
Worksheets("Ergebnis A").Select
Sheets("Projekte").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis A").Range("B4:B5"), CopyToRange:=Sheets("  _
_
Ergebnis A").Range("A10:F5000") _
, Unique:=True
Application.ScreenUpdating = True
End Sub


Gruß Harald

Anzeige
AW: Probleme viele Argumente beim Spezialfilter
17.10.2008 09:30:30
Susi
Hallo Harald,
dankeschön, deine Anweisung mit Select Case hat mir sehr weitergeholfen.
Gruß Susi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige