Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme viele Argumente beim Spezialfilter

Forumthread: 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

Anzeige

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige