Tabelle ganz einfach durchsuchen mit dieser Suchfunktion.
Heute zeige ich dir eine benutzerfreundliche Suchfunktion in Excel, mit der du deine Tabelle mühelos filtern kannst. Dafür brauchst du lediglich den Suchbegriff in dein Suchfeld einzutragen und in allen Spalten wird automatisch danach gesucht.
Schritt 1: Excel Oberfläche anpassen
Starte in deiner zu durchsuchenden Tabelle und füge ein Suchfeld ein. Bennene dieses Feld in „Suchkriterium“ um, sodass du flexibel ohne Codeanpassungen darauf zugreifen kannst, auch wenn sich Zellen verschieben. Die im Suchfeld eingegebenen Zeichen definieren in weiterer Folge den Suchbegriff.
Schritt 2: Intelligente Tabelle erstellen
Deine Tabelle musst du nun auch als intelligente Tabelle definieren. Dazu am besten in den Tabellenbereich reinklicken und mit Strg+T als intelligente Tabelle formatieren. Definiere einen Namen für die intelligente Tabelle, sodass du per VBA einfach darauf zugreifen kannst.
Schritt 3: Suchfilter vorbereiten (Filterkriterium)
Um den Erweiterten Filter dynamisch verwenden zu können, musst du ein weiteres Tabellenblatt erstellen und die Überschriften deiner Tabelle auch hier einfügen. Den Suchbegriff musst du analog des untenstehenden Bildes in den jeweiligen Spalten eintragen, sodass dieser alle entsprechenden Treffer je Spalte ausgibt.
Diese Tabelle definiert das Filterkriterum.
Schritt 4: Suchbegriff automatisch eintragen und Filter anwenden
Jetzt musst du per VBA den jeweiligen Suchbegriff für den Filter in die Filtertabelle eintragen. Je nachdem, ob du nach konkreten Werten suchen möchtest, oder auch nach Textteilen, kannst du den Suchbegriff als Wildcard definieren (Suchbegriff mit Sterne (*) am Beginn und Ende versehen). Wichtig dabei ist, dass alle zu filternden Daten als Text formatiert sind.
Danach kannst du den erweiterten Filter anwenden und die intelligente Tabelle anhand der soeben befüllten Filtertabelle filtern.
Sub Suche()
'Werte für Filter eintragen
shFilter.Range("A2, B3, C4, D5").Value = "*" & Range("Suchkriterium").Value & "*"
'Erweiterten Filter anwenden
Range("tblProdukte[#All]").AdvancedFilter xlFilterInPlace, shFilter.Range("A1:D5")
End Sub
Schritt 5: Makro ausführen, wenn das Suchkriterium geändert wird
Die entsprechende Prozedur empfehle ich dir über das Worksheet_Change Event des Tabellenblatts auszuführen, also sobald in der Zelle Suchbegriff eine Veränderung vorgenommen wird.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Suchkriterium")) Is Nothing Then Call Suche
End Sub
Ich wünsche dir viel Erfolg bei der Umsetzung und hoffe, dass dieses Tutorial dir dabei hilft, deine Tabellen schnell und effizient zu durchsuchen.
Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!