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

Makro für variablen Spezialfilter

Makro für variablen Spezialfilter
22.10.2008 09:59:00
Susi
Hallo liebe Excelfreunde,
ich habe eine Excel-Mappe gebastelt, in der die Anwender über ein Kombinationsfeld ihren Wert aussuchen können. Der Wert dieses Kombofeldes wird in eine neues Tabellenblatt (Ergebnis) Zelle D2 übertragen.
Ich habe bereits einen Spezialfilter über ein Makro eingebaut, welches auch so funktioniert, wie ich das gerne wollte. In dem wird auch der Wert eines Kombofeldes als Filterkriterium ausgewählt.
Das Makor lautet bis jetzt:
Select Case Worksheets("Ergebnis").Range("B2")
Case "aktiv"
Worksheets("Ergebnis").Select
Sheets("Grundtabelle").Range("A12:L2656").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Sheets("Ergebnis").Range("B1:B2"), CopyToRange:=Sheets("Ergebnis").Range("A5:D5000") _
, Unique:=True
End Select
Nun soll zusätzlich über die schon erscheinende Ergebnisfilterungstabelle eine erneute Filterung nach dem über das Kombinationsfeld ausgewählten Wert angewendet werden.
Beispiel:
Ergebnis des ersten Spezialfilters im TB "Ergebnis" wäre - Spalten A, B, C, D
Zeile
5 Auftrag - BEZ - Team - Status
6 8A - Test1 - AB31 - aktiv
7 8B - Test2 - B31 - aktiv
8 7C - Test3 - A32 - aktiv
9 7D - Test4 - BB32 - aktiv
Nun soll also über diese schon vorgefilterten Daten noch zusätzlich nach dem Team (Wert des Kombinationsfeldes in D2) gefiltert werden. Da aber mehr als 100 Teams auftauchen können, wollte ich hier nicht auch alle Einzeln über Select Case ansprechen, zumal ich hier das Problem habe, dass ich nicht nach dem genauen Wert der Spalte C suche, sondern nur nach einem Teil - so nach dem Motto wenn Zelle D2 den Wert 31 enthält, sollten als Ergebnis imnur noch die Zeilen auftauchen, in denen die Spalte C den Wert 31 enthält. Hier also die Zeilen 6 und 7.
Ich hoffe ich konnte mich verständlich ausdrücken.
Vielen Dank schon mal im voraus für Eure Antworten.
Grüße Susi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Spezialfilter enthält Makro
22.10.2008 11:50:00
Beate
Hallo Susi,
wenn man Spezialfilter nach enthält z.B. 31 filtern will, muss D2 als Text formatiert sein und dann in der Zelle stehen: *31*
Wenn so deine Ausgangsliste aussieht (die 31 in D2 wäre schon vom Kombinationsfeld übertragen):
Ergebnis

 ABCD
1    Team
2   31
3    
4    
5Auftrag BEZ Team Status
68ATest1AB31aktiv
78BTest2B31aktiv
87CTest3A32aktiv
97DTest4BB32aktiv

Dann funktioniert dieser Code:
Sub D2_filtern()
    Dim contents As String
    contents = Range("D2").Value
    Range("D2").NumberFormat = "@" 'D2 wird als Text formatiert
    Range("D2").FormulaR1C1 = "*" & contents & "*" 'die Asterixe werden vor- und nachgestellt
    Columns("F:I").Delete 'eventuelle bisherige Filterergebnisse werden gelöscht
    Range("A5:D9").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "D1:D2"), CopyToRange:=Range("F5"), Unique:=False 'Spezialfilter
    Range("D2").ClearContents 'Kriterienzelle wird geleer
End Sub


Gruß
Beate
Anzeige
AW: Spezialfilter enthält Makro
22.10.2008 15:29:00
Susi
Hallo Beate,
du hast mein Anliegen im Prinzip schon richtig verstanden. Danke für die Antwort.
Mein kleines Problem ist jetzt nur noch, dass ich die Ergebnisse wieder in einer anderen Tabelle ausgeben muss. In deinem Beispiel ab Zelle F5.
Ich hatte gehofft, dass es die Möglichkeit gibt, die Ergebnisse wieder in der selben Tabelle auszugeben. Im Beispiel also wieder im Bereich (A5:D9) nur eben ohne die beiden Zeilen mit Team *32*.
Wenn ich versuche dein Makro mit meinen laienhaften VBA-Kenntnissen anzupassen, und die Ausgabe der Ergebnisse in "CopyToRange:=Range("A5:D9") ausgeben lassen will, erhalte ich leider eine komplett leere Tabelle.
Vielleicht kennst du ja noch einen kleinen Trick.
Grüße Susi
Anzeige
AW: Spezialfilter enthält Makro
22.10.2008 16:14:00
Beate
Hallo Susi,
Sub D2_filtern2()
    Dim contents As String
    contents = Range("D2").Value
    Application.ScreenUpdating = False
    Range("D2").NumberFormat = "@" 'D2 wird als Text formatiert
    Range("D2").FormulaR1C1 = "*" & contents & "*" 'die Asterixe werden vor- und nachgestellt
    Columns("F:I").Delete 'eventuelle bisherige Filterergebnisse werden gelöscht
    Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "D1:D2"), CopyToRange:=Range("F5"), Unique:=False 'Spezialfilter
    Range("A5").CurrentRegion.Clear
    Range("F5").CurrentRegion.Copy Range("A5")
    Columns("F:I").Delete 'bisherige Filterergebnisse werden gelöscht
    Range("D2").ClearContents 'Kriterienzelle wird geleert
    Application.ScreenUpdating = True
End Sub


Gruß,
Beate
Anzeige
AW: Spezialfilter enthält Makro
28.10.2008 09:32:07
Susi
Danke Beate,
hat funktioniert.
Gruß Susi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige