"Click" Ereignis in Worksheets
27.12.2020 15:30:18
Christian
nun habe ich mich auch mal in dem Forum registriert, das ich schon seit vielen, vielen Jahren nutze, um Informationen und Lösungen für meine Excel-Probleme zu finden.
Denn ich bin immer mal wieder auf der Suche, um Excel Anwendungen für den nicht so versierten Excel Nutzer komfortabler zu machen. Und dabei habe ich u. a. immer wieder das Click Event bei Worksheets vermisst. Und nun meine ich einen Workaround gefunden zu haben, den ich hier im Forum einfach mal zum Ausprobieren für andere posten möchte - Feedback ist da gerne willkommen!
Bei meiner Suche habe ich einige gute Lösungsansätze wie das "BeforeDoubleClick" Event oder auch das "SelectionChange" Event gefunden. Aber mich hat dabei so wirklich keine gefundene und an meine Bedürfnisse angepasste Lösung überzeugt. Und nun hoffe ich, dass folgende Lösung vielleicht auch den einen oder anderen überzeugt. :)
Ausgangssituation
Es wird eine Arbeitsmappe mit mehreren Arbeitsblättern verwendet, in denen sehr viele Informationen zu unterschiedlichen Zeitpunkten erfasst werden müssen. Um möglichst viele Informationen gleichzeitig im Blick zu haben, sind die Arbeitsplättern entsprechend komplex.
Problem
Nutzer, die nicht täglich mit dem Arbeitsplatt zu tun hat, müssen beispielsweise jedes Mal von Neuem überlegen (oder Kollegen fragen), welche Werte in eine bestimmte Spalte in welcher Form einzugeben sind. Das kostet Zeit und Nerven - sowohl den Fragenden wie auch den Antwortenden. Und was macht der fragende Nutzer wenn gerade kein antwortender Kollege in der Nähe ist? Er gibt etwas ein und hofft, dass seine Eingabe korrekt ist.
Klar, gibt es jetzt unter euch sofort jemanden, der dann sagt, dass dort eine Eingabevalidierung eingebaut werden muss oder dass an dieser Stelle eine gute Dokumentation weiterhelfen kann. Auch ich bin der Meinung, dass eine gute Dokumentation vieles vereinfachen kann und Plausibilisierung von Eingaben falsche Informationen verhindern können. Aber manchmal helfen dem Benutzer einfach kleine, einfache "Denkanstösse", wenn er z. B. auf die Spaltenüberschrift klickt und ihm eine Messagebox mitteilt, was hier zu tun ist! ;-)
Lösung
Ich nutze das "FollowHyperlink" Event im Worksheet. Dazu füge ich für jede Spalte, für die ich dem Nutzer Hilfeleistung bieten möchte, einen Link in der Spaltenüberschrift hinzu. Aber anstatt nun eine Internet Adresse aufzurufen, verweist der Link auf das aktuelle Dokument und die Zelle, in dem der Link eingegeben wurde. Dadurch ändert sich im Auge des Betrachters nichts, da immer die Zelle ausgewählt ist, die er auch angeklickt hat. Ich habe aber nun in der Prozedur "Worksheet_FollowHyperlink" die Möglichkeit, dem Benutzer in Form einer Messagebox anzuzeigen, welche Information er dort nun einzutragen hat! Es kann natürlich auch wahlweise irgendein Code ausgeführt werden - da sind der Phantasie keine Grenzen gesetzt! :)
Beispieldatei "Click_Event_Worksheet.xlsm" (https://www.herber.de/bbs/user/142594.xlsm)
Um es vorweg zu nehmen: meine Beispieldatei ist keine (!) komplexe Anwendung. :)
Sie besteht nur aus einer Tabelle ("Beispiel") und einer Prozedur ("Worksheet_FollowHyperlink"), die im Codeteil des Worksheets gespeichert ist.
Die Tabelle besteht aus 4 Spalten: "Datum", "Eingabe 1", "Eingabe 2" und "Summe".
Für die Überschriften in Spalte 2 und Spalte 3 wurden Hyperlinks eingefügt, die einmal auf die Zelle "B1" und einmal auf die Zelle "C1" verweisen.
Wird nun auf die Spaltenüberschrift geklickt, wird der Code aus der Prozedur ausgeführt. Dabei wird auch mit Hilfe der Eigenschaften "Row" und "Column" des Links unterschieden, welcher der beiden angeklickt wurde.
Mehr möchte ich jetzt nicht noch dazu schreiben. Ladet euch die Datei herunter und probiert es aus. Ich baue gerade meine anderen Excel Anwendungen, die ich so über die Jahre hinweg erstellt habe nach und nach um - natürlich nur da, wo es auch Sinn macht!
Ich freue mich riesig über Feedback zu meiner Lösung und bin echt gespannt!
Viele Grüße
Christian