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.551 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. |
sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |