Es kommt immer mal wieder vor, dass Sie in einer Excel-Liste mehrere Zeilen mit bestimmten Inhalten markieren möchten. Manchmal können Sie dazu die passenden Spalten sortieren, sodass alle gesuchten Zeilen untereinander liegen, oft aber eben auch nicht. Lorenz Hölscher stellt ein praktisches Makro vor, welches die Zeilen mit den Treffern markiert und dabei den Umgang mit Range-Objekten vorführt.
Beispieltabelle erstellen
Ausgangspunkt für dieses Makro ist eine Tabelle mit völlig beliebigem Inhalt in Listenform. Hier ist es einfach eine Auflistung der verschiedenen Weltwunder:
Größe und Inhalt der Liste sind frei veränderbar, denn das Makro betrachtet später nur die markierten Zellen. So entscheiden Sie auch, ob eine eventuelle Titelzeile mitberücksichtigt werden soll.
Grundlagen der VBA-Programmierung
Für eine Einführung in die VBA-Programmierung lesen Sie am besten den Beitrag "Wie programmiert man eigentlich ein Makro?"
Makro erstellen
Das Makro arbeitet mit mehreren Bereichen (Range-Objekten in VBA), die als Variablen bereitgehalten werden müssen:
rngDieseZelle ist ein Bereich, der genau die eine jeweils zu prüfende Zelle enthält.
rngSuchen entspricht der Markierung Selection.
rngMerken sammelt die Trefferzeilen in einer Mehrfachmarkierung.
Eine For Each/Next-Schleife (siehe Beitrag "For Each - Next") untersucht dann jede einzelne Zelle innerhalb der Markierung und vergleicht, ob der gesuchte Text darin enthalten ist. Dank der LCase()-Funktion wird dabei die Groß-/Kleinschreibung ignoriert.

