in meinem konkreten Problem geht es darum, daß ich 4 Suchstrings im Bereich A3:A6 vorgesehen habe. Mit Hilfe dieser Suchstrings wird festgelegt, welche Daten aus einem großen Export angezeigt werden sollen. Wenn meine Anwender aber nur einen Suchstring nutzen, sind die anderen Zellen leer. Das führt dazu, daß die Suchformel (Kombination aus SUCHEN und Array Formel) nicht mehr korrekt funktioniert und alle Daten ungeprüft anzeigt.
Lösung:
Ein Makro, welches prüft, ob Zellen in Range A3:A6 leer sind und diese dann mit "Bitte Suchbegriff eintragen" auffüllt. So ist sichergestellt, daß es keine leeren Zellen gibt und der Anwender weiß, was er ggf. zu tun hat.
Ich habe also hier im Forum und in alten Schulungsunterlagen gesucht und mir ein entsprechendes Makro zusammengestellt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Range("A3:A6").Select
For Each Zelle In Selection
If Zelle.Value = "" Then Zelle.Value = "Bitte Suchbegriff eintragen"
Next Zelle
End Sub
Der kleine Schönheitsfehler ist jedoch, daß aufgrund des Befehls Range.Select die Markierung immer auf diesen Bereich springt, sobald etwas geändert wird. Wenn ich mich nun auf eine Eingabe in Zelle Y250 konzentriere und etwas ändere, was überhaupt nicht im vorgenannten Bereich liegt und mit den Suchstrings zu tun hat, springt die Markierung aber dorthin. Das verwirrt spätestens meine Kollegen.
Ich habe aber leider keine Alternative zu Range.select gefunden. Gibt es eine?
Gibt es vielleicht auch die Möglichkeit nur im betreffenden Bereich A3:A6 zu prüfen, ob Änderungen vorgenommen wurden?
Vielen Dank für Eure Mühe.
Grüße, Andreas Hanisch