Klassenmodulcode Open-Ereignis Word fehlerhaft

Hallo Wissende,

völlig losgelöst von dieser Anfrage:und ob es da um Word geht,
 http://computer.wer-weiss-was.de/office-software-all…
ich tippe auf nein, denn „erneut nachfragen“ ist mir sehr unbekannt, will ich jetzt was mit Word-Vba codieren.

Und zwar ein Makro was beim Öffnen einer Vorlage, .dot, automatisch startet.
Zu diesem Zweck habe ich der Normal.dot das Klassenmodul clsOpen hinzugefügt und anderen Code, steht alles nachfolgend unten. Zum Testen SOLL beim jetzigen Code bei jedem Öffnen einer .doc oder .dot deren FullName angezeigt werden.

Prinzipiell funktioniert mein Code wunderbar, so wie von mir geplant.
Mein Problem ist, leider nicht immer *fluch*

Vorgang A)
Ich starte Word 2000. Öffne eine .doc. so reagiert der Code wie gewünscht.

Vorgang B)
Ich starte Word 2000. Öffne eine .dot. so reagiert der Code nicht, die MsgBox kommt nicht :smile:) Ändert sich auch nix dran wenn ich die .dot mehrmals schließe und wieder öffne.
ABER, sobald ich einmal eine .doc öffne, funktioniert der Code wieder gut.

So, das ist mein Rätsel zum Sonntag für euch *lächel* Jeder Tipp, Hilfe ist willkommen.

Gruß ^ Danke
Reinhard

Codes der Normal.dot

 Modul: ThisDocument

Option Explicit

Private Sub Document_Open()
Set X.oApp = Word.Application
DoEvents
End Sub

  Modul: Modul1

Option Explicit

Public X As New clsOpen

 Klassenmodul: clsOpen

Option Explicit

Public WithEvents oApp As Word.Application

Private Sub oApp_DocumentOpen(ByVal Doc As Document)
MsgBox Doc.FullName
End Sub

Moin, Reinhard,

das Open-Ereignis des Dokuments wird nicht an die Vorlage durchgereicht, und im Open-Ereignis der Vorlage passiert nichts. Hilft Dir das weiter?

Gruß Ralf

ps: Was treibst Du da überhaupt? Verstehe nur Bahnhof

pps: Wie kommt das Klassenmodul an den Namen clsOpen? Bei mir heißt es nach dem Einfügen Klassenmodul1, ich finde keinen Weg, das umzubenennen.

Hallo Ralf,

das Open-Ereignis des Dokuments wird nicht an die Vorlage
durchgereicht, und im Open-Ereignis der Vorlage passiert
nichts. Hilft Dir das weiter?

leider nein. Da soll auch nix durchgereicht werden. Egal ob die Vorlage nun selbst Makros hat oder nicht, in ihren Modulen wird nichts gestartet oder abgeändert.

Das Open-Ereignis wird im Klassenmodul der Normal.dot erkannt und daraufhin soll der Code in der Normal.dot „loslaufen“.

Im Klassenmodul steht die Prozedur:
Private Sub oApp_DocumentOpen(ByVal Doc As Document)
Das ist mächtiger als die normale Open-Prozedur die ja nur reagiert wenn die doc in der sie steht geöffnet wird. Die Klassenmodul-Openprozedur soll bei JEDER .doc die geöffnet wird auslösen.

ps: Was treibst Du da überhaupt? Verstehe nur Bahnhof

Ich will durch Code in der Normal.dot ggfs. in jeder .doc die geöffnet wird etwas machen. Oder auch nicht, ich kann ja durch den Namen und/oder Ordner selektieren. Ein beispiel wäre z.B. in den Eigenschaften Datumseinträge zu aktualisieren o.ä.

pps: Wie kommt das Klassenmodul an den Namen clsOpen? Bei mir
heißt es nach dem Einfügen Klassenmodul1,

F4 (Eigenschaftsfenster)

Gruß
Reinhard