Ereignisse auslösen

Hallo!

Ich beschäftige mich privat ein wenig mit VBA. Leider bin ich noch nicht dahinter gekommen, wie man in VBA Ereignisse auslösen kann, z. B. durch eine Eingabe in eine Zelle, Öffnen einer Tabelle o. ä.

Toll wäre auch, wenn jemand eine Webadresse weiß, wo Objekte und mehr über VBA, am besten in Deutsch, beschrieben sind.

Vielen Dank im Voraus!

Wenn du eigene Ereignisse auslösen willst, dann funktioniert das folgendermaßen:

raiseEvent DeinEreigniss(eventuelleParameter)

Damit werden auch vordefinierte Ereignisse aufgelöst.

Damit kann ich ehrlicherweise nicht so viel anfangen. Wodurch löst denn „raiseEvent“ ein Ereignis aus? (Eingabe in Zelle, Datei öffnen, oder wie?).

Vielleicht sollte ich etwas konkreter werden: Wie sehe zum Beispiel der Programmtext aus, wenn bei Eingabe in Zelle a1 der doppelte Wert dieser Zelle in eine andere Zelle übertragen werden soll (sagen wir B1)?

Danke im Voraus!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielleicht sollte ich etwas konkreter werden: Wie sehe zum
Beispiel der Programmtext aus, wenn bei Eingabe in Zelle a1
der doppelte Wert dieser Zelle in eine andere Zelle übertragen
werden soll (sagen wir B1)?

Danke im Voraus!

Hallo Honigschlecker,

dafür brauchst Du doch gar nicht programmieren…
Es reicht, in Zelle B1 eine Formel einzugeben, die auf die aktuelle Zelle verweist - dann wird der Wert immer automatisch aktualisiert! Beispiel: „=$A$1 * 2“

Wenn’s denn unbedingt per Programmcode sein soll (notwendig z.B., wenn die Eingabe in verschiedenen Zellen möglich sein soll):
Im Ereignis Change des Arbeitsblattes mußt Du prüfen, ob Deine Zelle betroffen ist - falls ja, kannst Du den Wert der Zielzelle (hier B2) neu berechnen und zuweisen. (Das macht Excel ganz automatisch, wenn man eine Formel direkt in die Zelle schreibt)

Du kannst diese Zuweisung auch IMMER machen (bei so einer einfachen Funktion kein Problem) - dann wird die Berechnung halt auch (unnötigerweise) dann ausgeführt, wenn andere Zellen sich ändern!

Die Zuweisung könnte dann ungefähr so aussehen:
ActiveSheet.Cells(1, 2) = ActiveSheet.Cells(1, 1) *2

Noch ein Tip:
Das Verständnis der verschiedenen Ereignisse ist für eine gute Programmierung extrem wichtig. Oftmals kommen für eine Programmierung diverse Ereignisse in Frage. Schau Dir mal in der Online-Hilfe jedes Ereignis an und mache ein paar Tests. das ist zwar viel Arbeit, aber wenn Du häufiger programmieren willst, wohl unumgänglich und sehr lehrreich!

Viel Spaß!
Kurt
http://www.Fortwaengler.de

2 sehr gute Foren, in denen Du Fragen stellen und gute Antworten
bekommst sind;

http://www.spotlight.de/foren/mwe/forum_mwe.htm
http://www.herber.de/forum/

Beide Foren verfügen ebenfalls über ein sehr umfangreiches Archiv
nach Stichworten

Klaus