Es ist schon eine tolle Sache, dieser Excel AutoFilter. Zumal Excel für kleinere Datenbanken durchaus gut geeignet ist. Man leuchtet (z.B. in einer Mappe mit einer Adressen-Aufstellung) die gewünschten Spalte(n) an, und klickt Daten , Filter , AutoFilter. In der ersten Reihe jeder gewählten Spalte (i.d.R. ist hier die Spaltenüberschrift) erscheint dann ein kleiner Button mit einem Pfeil nach unten. Über einen dieser Buttons (sagen wir mal Spalte 'D') kann nun ein bestimmter Wert oder Begriff aus der Spalte 'D' gewählt werden. Ab sofort werden nur noch die Zeilen angezeigt, bei denen der gewählte Begriff in der Spalte 'D' steht. Alle anderen Zeilen werden ausgeblendet. Was aber wenn der Begriff in verschiedenen Spalten steht? Eine VBA- Lösung Das was rauskommt sieht ein bisschen wie eine Report-Ausgabe unter dBase III aus (lang ist's her; aber es war eine außerordentliche Sprache!). Um nicht unnötige Spalten zu durchsuchen kann die Suche im Code auf bestimmte Spalten begrenzt werden: Selection.EntireRow.Range("E1:J1").Select Um hinterher wieder alles (d.h. alle Zeilen) anzuzeigen wird ein zweites Makro verwendet. Hier werden auch eventuell eingeschaltete Autofilter mit abgestellt. Die Zeile: On Error Resume Nextist unbedingt nötig, falls die Anzahl der Schleifendurchgänge mal nicht zu der Anzahl der eingeschalteten Spalten-Filtern passt. Weiterhin ist es wichtig, dass diese Schleife an die Anzahl der verwendeten Spalten angepasst wird. Was ist nötig? In der Excel-Mappe mit der Aufstellung (... den Werten, den Begriffen oder wie im Bild-Beispiel eine Aufstellung von Berichten, die in der Elektronik-Zeitschrift EMA erschienen sind) werden zwei Buttons benötigt: Alles anzeigen und Begriff suchen. Damit die Buttons nach dem Filtern nicht verschwinden, ist es am Besten, wenn man die oberste Zeile fixiert (Cursor in Zelle "A2" und "Fenster" , "Fenster Fixieren") und die Buttons dort ablegt! Nachfolgend der VBA-Code für die beiden Buttons: ..... siehe VBA- Code in der Excel-Datei (Demoprojekt)..... Sicher könnte man die Makros kompakter schreiben und schneller machen, d.h. mit mehr Objekten und so und ohne Zeilen-Zwischenanzeige. Ich meine jedoch, dass die hier gewählte Form [nicht nur für Anfänger ] durchsichtiger ist. Wer den Bildschirm-Aufbau sehen möchte kann ggf. die Zeile: Application.ScreenUpdating = False weglassen. Und nun viel Spaß bei den zukünftigen Datenbank- Auswertungen. Dieser Tipp wurde bereits 49.575 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |