Excel Makro wird nicht ausgeführt

Hallo,

ich habe jetzt verschiedene Ereignis-handler wie

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = „$B$5“ Then MsgBox _
„Der Wert in Zelle B5 hat sich verändert!“
End Sub

oder

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = „$B$29“ Then Call happy
End Sub

Sub happy()
MsgBox „Sie haben die Zelle B29 aktiviert !!!“
End Sub

mit Excel 2003 ausprobiert.

Makrosicherheit auf niedrigster Stufe.

Es passiert aber nix. Die Ereignise werden anscheinden nicht ausgelöst
jedenfalls wird die MsgBox NICHT angezeigt.

Wie muss ich denn Ecxel einstellen damit das läuft???

viele Grüße

Stefan

Grüezi phenomen

ich habe jetzt verschiedene Ereignis-handler wie

Wo hast Du denn diese Codes jeweils gespeichert?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = „$B$5“ Then MsgBox _
„Der Wert in Zelle B5 hat sich verändert!“
End Sub

Hier muss der Wert in B5 geändert werden damit das Ereignis anspringt.

oder

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = „$B$29“ Then Call happy
End Sub

Hier muss B29 markiert werden um den Event auszulösen

Makrosicherheit auf niedrigster Stufe.

Es passiert aber nix. Die Ereignise werden anscheinden nicht
ausgelöst
jedenfalls wird die MsgBox NICHT angezeigt.

Wie muss ich denn Ecxel einstellen damit das läuft???

Alle diese Codes gehören in das Tabellenblatt auf dem die Zellen markiert oder die Werte verändert werden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi phenomen

ich habe jetzt verschiedene Ereignis-handler wie

Wo hast Du denn diese Codes jeweils gespeichert?

Excel OHNE Datei gestartet
in Excel neue Datei erstellt und mit Dateiname MakroTest.xls gespeichert.

Excel-Hauptmenü Extras - Makro - Visual Basic Editor

Im Visual Basic Editor einfügen Modul

dann VB-code in das Textfenster des Moduls einfügen.

Aber nix passiert. Auch mit den Beispielen aus der VBA-Hilfe passiert nichts.

Wenn ich eine Schaltfläche erstelle und dieser ein Makro zuweise
funktioniert das. Das heißt im Prinzip funktionieren Makros
aber Ereignisse wie

Worksheet_Change etc. funktionieren nicht.

Zur weiteren Info benutze Excel 2003 unter Windows 7
wenn ich Excel im Kompatibilitätsmodus mit Administratorrechten starte immer noch nichts.

bin Dankbar für Hinweise aller Art oder auch ein link zu einer
XLS-Datei die bei jemand anderem funktioniert hat.

viele Grüße
Stefan

Dieses Modul wird dann

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = „$B$5“ Then MsgBox _
„Der Wert in Zelle B5 hat sich verändert!“
End Sub

Hier muss der Wert in B5 geändert werden damit das Ereignis
anspringt.

oder

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = „$B$29“ Then Call happy
End Sub

Hier muss B29 markiert werden um den Event auszulösen

Makrosicherheit auf niedrigster Stufe.

Es passiert aber nix. Die Ereignise werden anscheinden nicht
ausgelöst
jedenfalls wird die MsgBox NICHT angezeigt.

Wie muss ich denn Ecxel einstellen damit das läuft???

Alle diese Codes gehören in das Tabellenblatt auf dem die
Zellen markiert oder die Werte verändert werden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo

wie Thomas schon sagte: Ereignisprozeduren müssen im Tabellenblattcode und nicht im Modulcode stehen. Dann klappt das ohne weitere Verrenkungen.

Gruß
smalbop

Grüezi phenomen

Wo hast Du denn diese Codes jeweils gespeichert?

Excel OHNE Datei gestartet
in Excel neue Datei erstellt und mit Dateiname MakroTest.xls
gespeichert.

Excel-Hauptmenü Extras - Makro - Visual Basic Editor

Im Visual Basic Editor einfügen Modul

dann VB-code in das Textfenster des Moduls einfügen.

Und genau hier hast Du dir ins Knie geschossen… :wink:

Mache einen Doppelklick auf das Tabellenblatt in dem die Events wirksam sein sollen und füge die Codes dann dort ein.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Smalbop,

vielen Dank für Deinen Hinweis.
Damit jetzt alle optimal was von diesem Thread haben, Erklärung im Detail wie es geht:

Man muss VBA-Editor im Fenster „VBA-Projekt“ einen Rechtsklick
auf die entsprechende Tabelle machen bei der dieser Code ausgeführt werden soll.

Beispiel: Tabelle heißt „Tabelle1“

Rechtsklick auf „Tabelle1 (Tabelle1)“ Option Code anzeigen

Dann öffnet sich ein Fenster mit
Fenstertitel "Dateiname.xls - Tabelle1 (Code).

Und nur dann wenn Ereignis-„Subs“ in DIESEM Fenster eingetragen ist
wird der Code entsprechend ausgeführt.

Da dieser Code Tabellenblatt-spezifisch ist muss er für jedes Tabellenblatt separat eingetragen werden.

Wenn man immer wieder das gleiche Makro in verschiedenen Tabellenblättern starten will macht man eine kleine Sub in jedes Tabellencode-Fenster und diese Sub ruft dann eine andere Sub auf in der die ganzen Details stehen.
Dann ist das ganze wesentlich einfacher zu warten

viele Grüße

Stefan

Grüezi phenomen

Man muss VBA-Editor im Fenster „VBA-Projekt“ einen Rechtsklick
auf die entsprechende Tabelle machen bei der dieser Code
ausgeführt werden soll.

Oder gleich in Excel selbst einen Rechtsklick auf den Reiter des Tabellenblattes und dann ‚Code anzeigen‘.

Da dieser Code Tabellenblatt-spezifisch ist muss er für jedes
Tabellenblatt separat eingetragen werden.

Wenn man immer wieder das gleiche Makro in verschiedenen
Tabellenblättern starten will macht man eine kleine Sub in
jedes Tabellencode-Fenster und diese Sub ruft dann eine andere
Sub auf in der die ganzen Details stehen.
Dann ist das ganze wesentlich einfacher zu warten

Oder man passt den Code noch ein wenig an und bringt das Ganze dann in ‚Diese ARbeitsmappe‘ unter.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -