VBA-Prozedur autom. starten

Hallo,
ich kann in einem Excel Tabellenblatt mit Formular|Schaltfläche eine Button erzeugen, der bei Klick eine VBA-Prozedur startet; z.B. einen Eingabedialog.
Ist es möglich, dass dieses Dialogfenster auch automatisch (ohne Button) erscheint, sobald das Tabellenblatt aktiv ist bzw. veschwindet, wenn das Tabellenblatt inaktiv wird ?

mfg
kps

ich kann in einem Excel Tabellenblatt mit
Formular|Schaltfläche eine Button erzeugen, der bei Klick eine
VBA-Prozedur startet; z.B. einen Eingabedialog.
Ist es möglich, dass dieses Dialogfenster auch automatisch
(ohne Button) erscheint, sobald das Tabellenblatt aktiv ist
bzw. veschwindet, wenn das Tabellenblatt inaktiv wird ?

Hi K-P,

Probiers mal so, ins Dokumentmodul von z.B. Tabelle1:

Option Explicit

Private Sub Worksheet_Activate()
Dim Eingabe
Eingabe=Inputbox(…)
End Sub

Müßte klappen, außer beim Öffnen der Datei, da wird „Worksheet_Activate“ irgendwie nicht ausgeführt, aber kann man umgehen/hinkriegen, melde dich wenn das nötig ist.
Gruß
Reinhard

Hallo Reinhard, hallo K-P,

beim Öffnen der Datei zusätzlich das Auto-Start-Makro wie folgt ausführen.

sub Auto_öffnen
auto_open

end sub

Mit dieser doppelten Version ist die Kompatibilität zu allen Excel-Versionen gegeben. Deshalb immer auch die alten deutschen Bezeichnungen integrieren. Außerdem funkt das Makro dann auch über Ländergrenzen hinweg und Plattformgrenzen (Mac/PC).

Aus vba heraus führt Excel Auto-Start-Makros nicht aus. Excel hat dafür die Funktion „RunAutoMacros“, kann auf workbook angewendet werden:

Beispiel:
'Mappe aus vba öffnen
workboks.open
filename:=„D:\Marion\Entwicklung\meineElli.xls“
'Auto-Start-Makro ausführen
workbooks(„meineElli.xls“).RunAutoMacros
xlAutoOpen

PS

wegen möglicher Makro-Viren, die bei solchen Prozeduren eingeschleust werden können, sollte die „Makrosicherheit“ unter Extras-Optionen-Sicherheit mindestens auf Mittel eingestellt sein.
Beim Versenden von Dateien mit Auto-Start-Makros die Empfänger solcher Dateien über enthaltene Makros informieren, damit diese nicht deaktiviert werden.

Gruß
Marion

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

Hallo Marion,

beim Öffnen der Datei zusätzlich das Auto-Start-Makro wie
folgt ausführen.

sub Auto_öffnen
auto_open

end sub

Mit dieser doppelten Version ist die Kompatibilität zu allen
Excel-Versionen gegeben. Deshalb immer auch die alten
deutschen Bezeichnungen integrieren. Außerdem funkt das Makro
dann auch über Ländergrenzen hinweg und Plattformgrenzen
(Mac/PC).

Aha, nicht gewußt, danke :smile:

Aus vba heraus führt Excel Auto-Start-Makros nicht aus. Excel
hat dafür die Funktion „RunAutoMacros“, kann auf workbook
angewendet werden:

Beispiel:
'Mappe aus vba öffnen
workboks.open
filename:=„D:\Marion\Entwicklung\meineElli.xls“
'Auto-Start-Makro ausführen
workbooks(„meineElli.xls“).RunAutoMacros
xlAutoOpen

Vielleicht galt das mal bei älteren XL-Versionen vor XL97(=8.0) und gilt evtl. noch heute aus Kompatibilität, jedenfalls wenn ich eine Datei aus einer anderen Datei heraus so öffne:

Sub tt()
Workbooks.Open „test.xls“
End Sub

so wird der Code der in der Datei text.xls im „Workbook_Open“-Ereignis steht, ausgeführt:

Private Sub Workbook_Open()
MsgBox „huhu“
End Sub

Gruß
Reinhard