Excel Makro ausführen bei Änderung in einer Zelle in anderem Tabellenblatt?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es funktioniert, ja, auch wenn etwas umständlich. Generell würde ich es vermeiden Übergabeparameter wie target zu verändern, selbst wenn sie by value übergeben werden. Aber gut.

Zelle A6 vom Tabellenblatt "Deckblatt" referenzierst du mit "Worksheets("Deckblatt").Range("A6")".

Das macht aber in deinem Fall keinen Sinn, da du dich in einem Worksheet-Ereignis befindest. Das bedeutet, das Ereignis wird nur bei Änderungen im selben Sheet, in das der Code gelegt wurde, ausgelöst.

Was bedeutet das für dich?
Du musst dein Ereignis am Tabellenblatt "Deckblatt" auslösen. FooterLeft müsstest du allen Tabellenblättern zugänglich machen können, indem du die Prozedur in ein Modul der Arbeitsmappe packst.

Frankie87 
Fragesteller
 05.04.2016, 20:33

Danke für die Antwort.

Das Makro selbst liegt in einem Modul, ist also für alle Tabellenblätter zugänglich. Allerdings soll die Ausführung zwar durch eine Zelle auf dem "Deckblatt" ausgelöst werden, allerdings soll das Makro auf "Deckblatt" nicht ausgeführt werden sondern nur auf allen anderen Tabellenblättern.

Wenn nicht über das Worksheet-Ereignis, wie würde ich das dann anstellen?

0
Suboptimierer  05.04.2016, 20:42
@Frankie87

Die Prozedur heißt doch "WorkSheet_Change". Das heißt, man kann es nur pro Worksheet definieren und nicht worksheetübergreifend.

Ich habe gerade kein VBA zur Hand, aber ich bin mir sicher, dass es kein entsprechendes Arbeitsmappenereignis (Workbook_Change) gibt.

In einem Tabellenblatt ändert sich etwas, dann wird genau in diesem Tabellenblatt das Ereignis ausgelöst.

0
Frankie87 
Fragesteller
 05.04.2016, 20:41

PS: Es geht im Endeffekt darum, dass auf "Deckblatt" in einer Zelle ein bestimmter Text, in einer anderen ein Datum eingetragen wird. Diese sollen dann auf allen weiteren Tabellenblättern in der Fußzeile erscheinen und sich automatisch ändern wenn der Eintrag in "Deckblatt" geändert wird.

Vielleicht gibt es hierfür ja auch eine viel einfachere Herangehensweise. Auch dafür bin ich gerne offen.

0
Suboptimierer  05.04.2016, 20:45
@Frankie87

Meines Erachtens reicht es, wenn du das Change-Ereignis nur auf dem Deckblatt abfängst. Weil wenn dort etwas geändert wird, soll etwas passieren.

Wenn beim Ändern auf anderen Tabellenblättern auch etwas passieren soll in Abhängigkeit vom Deckblatt, kannst du probieren, auf den anderen Tabellenblättern in einer Hilfszelle =Deckblatt!A6 zu schreiben.
Ich bin mir gerade nicht sicher, ob eine indirekte Änderung auch das Change-Event auslöst.

2
Frankie87 
Fragesteller
 12.04.2016, 22:11
@Suboptimierer

Danke für die erneute Antwort und sorry, dass ich mich erst jetzt wieder melde, war die letzten Tage unterwegs. Leider funktioniert das mit der indirekten Änderung in der Zelle mit Verweis nicht. Die Idee hatte ich auch zuerst und habe es so probiert, allerdings ändert sich ja der Wert der Zelle nicht, deshalb wird es auch nicht als Change erkannt. Trotzdem danke, ich probiere die Tage mal weiter wenn ich Zeit finde.

0

Formalantwort, der Frager sollte Dir nach dem qualifizierten Eingehen auf die Rückfrage ruhig eine "Hilfreichste" zukommen lassen können und zukommen lassen!