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

Autofilter

Forumthread: Autofilter

Autofilter
15.09.2006 10:03:30
Wrobel
Hi xl-Fan´s,
beschäftige mich schon seit Tagen mit dem ein und dem selben Problem, und bekomme es einfach nicht hin. Habe mich schon vor paar Tagen in diesem Thread
https://www.herber.de/forum/archiv/796to800/t799436.htm
gemeldet, allerdings komme ich dort nicht weiter.
Ich habe jetzt folgende Datei erstellt: https://www.herber.de/bbs/user/36691.xls
Mein Problem ist jetzt hauptsächlich das VBA.
Und zwar hatte ich ja geschildert den Suchvorgang zu "automatisieren" in dem ich ein Buchstaben vorgebe (suche) und dann darunter alle Begriffe mit dem Anfangsbuchstaben erscheinen. Nun bekomme ich nicht so wie im Thread geschrieben den Zusammenhang mit dem "Kästchen in dem der gleiche Buchstabe steht wie gesucht" und dem Autofilter hin.
Was mache ich falsch... bzw. wie funktioniert es genau?
Hoffe ich konnte die Problemstellung präzise genug rüberbringen, ansonsten schreien.
Gruß
Wrobel
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter
18.09.2006 09:22:24
Klaus
Hallo Wrobel,
Nimm die Makrorekorder-Funktion, um den Autofilter aufzuzeichnen. Der Code wird so aussehen:
Sub Makro1()
Selection.AutoFilter Field:=1, Criteria1:="H"
End Sub

Die "Selection", welche wir trafen, war das Feld A15 (also das markierte, schwarz umrandete Feld in Excel). Da wir das Makro später automatisch starten wollen, egal von welchem Feld aus, müssen wir hier manuell anpassen:
Sub Makro1()
Range("A15").AutoFilter Field:=1, Criteria1:="H"
End Sub

In dem Beispiel hab ich nach "H" gefiltert, was man am Zusatz Criterial1:="H" sieht. Hier wollen wir flexibel werden und den Buchstaben aus A11 zum Filtern haben (bei der Gelegenheit: vermeide verbundene Zellen!). Der Inhalt von A11 heisst in VBA Range("A11"), der Code wird also per Hand umgeschrieben in:
Sub Makro1()
Range("A15").AutoFilter Field:=1, Criteria1:=Range("A11")
End Sub

Schon jetzt funktioniert das Makro. Wähl in A11 einen Buchstaben aus, geh über [Extras - Makro - Makros - Makro1 - ausführen] und die Liste wird gefiltert.
Bevor wir weiter machen, geben wir dem Makro einen sinnigen Namen damit wir uns später daran erinnern, wofür es gut war. Deine Kinder heissen ja auch nicht Kind1, Kind2 usw. ;)
Sub AutoFilterAnwenden()
Range("A15").AutoFilter Field:=1, Criteria1:=Range("A11")
End Sub

Dies Makro wollen wir jedes Mal laufen lassen, wenn die Zelle A15 verändert wird. Also müssen wir die Zelle A15 überwachen und bei jeder Änderung das Makro laufen lassen. Dabei behelfen wir uns eines kleinen Tricks:
Rechtsclick auf die Menüleiste oben und einen Haken bei "Steuerelement-Toolbox". Aus dieser wählen wir das Textfeld (das kleine, wo ab| drinne steht) und plazieren es irgendwo, wo es nicht stört.
Im Entwurfsmodus (die ganz linke Taste der Toolbox) ein Rechtsclick auf eben dieses Textfeld, das jetzt in der Datei ist, und "Eigenschaften". Es geht ein Fenster auf, in dem so einiges zu ändern möglich ist - uns interessiert erstmal nur das Feld "LinkedCell". Hier wird die Zelle A11 (unser Suchbegriff) eingegeben.
Jezt schonmal beobachten: Wenn die Zelle A11 übers Dropdown geändert wird, ändert sich auch die Textbox - das wird unsere Überwachung.
Im Entwurfsmodus doppelclick auf die Texbox, es erscheint:

Private Sub TextBox1_Change()
End Sub

Momentan wird also kein Code ausgeführt, wenn die TextBox1 sich ändert. Wir wollen aber oben erarbeiteten Code ausführen lassen! Also rein damit in den TextBox-Code:

Private Sub TextBox1_Change()
Range("A15").AutoFilter Field:=1, Criteria1:=Range("A11")
End Sub

oder Alternativ

Private Sub TextBox1_Change()
Call AutoFilterAnwenden
End Sub

Sooo - jetzt den Entwurfsmodus wieder ausschalten und probieren! Klappts?
Gruß,
Klaus M.vdT.
Anzeige
;

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