PDA

Vollständige Version anzeigen : Makro in Normal.dot funktioniert nicht


Jossie
28.08.2019, 14:40
Hallo zusammen,

wenn ich ein Makro in Normal.dot speichere und ihm eine Schaltfläche im Menüband zuweise, so kann es nicht ausgeführt werden. Es kommt immer die Fehlermeldung, dass das Makro nicht gefunden wird oder deaktiviert wurde wegen der Makroschutzeinstellungen. Ich hatte aber die Makros beim Start von Word aktiviert. Es kommt der gelbe Banner mit der Frage, ob aktiviert werden soll, nachdem offenbar festgestellt wird, dass ein Makro in Normal.dot enthalten ist.

Ich kann das Makro in VisualBasic ausführen und es funktioniert. Aber wenn ich im Menüband eine Schaltfläche für dieses Makro definiere, dann kann das Makro nicht gestartet werden.

Wie kann ich erreichen, dass ich in Normal.dot Makros abspeichern kann, die in allen Word-Dokumenten verfügbar sein sollen, und diese über das Menüband aufrufen kann?

Seltsamerweise gibt es, wenn ich mir den VisualBasicEditor öffne, zwei Normal.dot. Im ersten ist das Makro enthalten, im zweiten nicht.

Danke für Eure Mühen schon mal im Voraus und beste Grüße

Hermann-Josef

Gerhard H
28.08.2019, 15:40
Hallo Herrman-Josef,

erstmal nur zur Sicherheit: In Word 2010 solltest du eine normal.dot<font color = "red">m</font> haben. Eine normal.dot wäre eventuell ein Überbleibsel aus einer Version vor 2007 und wäre auf jeden Fall eine ganz alltägliche Vorlage wie xyz.dot(m) und Makros darin würden sich nur auf Dokumente beziehen, die auf ihr beruhen. Die Fehlermeldung wäre dann ganz typisch.

Wenn du aber die normal.dotm meintest:

Der gelbe Balken erscheint vermutlich, weil der Ordner, in der diese Normal.dotm steckt, in den Sicherheitsoptionen nicht als vertrauenswürdiger Ordner deklariert ist.

Aber selbst wenn: Wenn ich die Warnung im gelben Balken bestätige, funktioniert mein Testmakro trotzdem.
Wenn du also ein anderes simples Makro über eine Schaltfläche starten kannst,müsste man das Makro im Verdacht haben. Zeigs ggf. doch mal her.
Wenn das auch nicht geht, geht, könnte eine fehlerhafte Zuordnung vorliegen, wobei ich nicht weiß, was man da groß falsch machen kann, außer wie oben geschrieben.

Jossie
28.08.2019, 18:13
Hallo Gerhard,

danke für Deine Antwort.

Wie gesagt, sehe ich in VisualBasic 2 Normal's (die Endung sieht man leider nicht). Das Makro habe ich aus dem Internet, um den Namen einer Textmarke anzuzeigen:

If Selection.Bookmarks.Count <> 0 Then
MsgBox Selection.Bookmarks(1).Name
End If

Wo finde ich die Normal.dot und die Normal.dotm. Vielleicht sollte ich die Normal.dot mal löschen?

Hermann-Josef

Gerhard H
28.08.2019, 21:16
Hallo Hermann-Josef,

an dem Makro ist nichts Ungewöhnliches dran. Es tut sich natürlich nichts, wenn es in dem Dokument keine Textmarke gibt, oder keine in der Markierung enthalten ist.

Um Details über deine zwei normals herauszufinden, füge das jeweilige Modul ThisDocment folgenden Dreizeiler ein:
Sub werBist()
MsgBox Me.FullName
End Sub
Er liefert dir den kompletten Pfad und Dateinamen nebst Endung.

Jossie
29.08.2019, 16:09
Hallo Gerhard,

irgendwie klappt das mit Deinem werBist nicht. Daher habe ich nochmals alles genau durchgespielt und beschreibe mein Vorgehen hier Schritt für Schritt:

Bei den Vorlagen gibt es nur ein Normal.dotm. Das hatte ich in Word durch Doppelklick geöffnet, er legt dann ein neues Dokument "Dokument1" an. In Normal.dotm habe ich ein Modul eingefügt, mein Makro angelegt und im Menüband verlinkt. Soweit so gut.

Wenn ich jetzt eine Textmarke in Dokument1 einfüge und das Makro über das Menüband(!) starte, dann klappt es. Wenn ich jetzt das Dokument abspeichere (seltsamerweise werde ich nicht gefragt, ob die Änderungen in Normal.dotm abgespeichert werden sollen) und erneut öffne, erkennt WORD, dass es ein Makro gibt. Es erscheint der gelbe Banner und ich muss den Inhalt aktivieren.

So, und wenn ich jetzt das Makro genau wie zuvor über das Menüband aufrufe, kommt die Fehlermeldung, dass das Makro nicht gefunden wird oder deaktiviert ist. Und jetzt gibt es auf einmal in VisualBasic zwei Normal.dot. Seltsam. Eine hat das Makro, die andere natürlich nicht.

Warum funktioniert das beim ersten Mal und beim erneuten Öffnen des Dokumentes nicht mehr?

Irgendwie kann das doch so nicht sein …

Hermann-Josef

Gerhard H
29.08.2019, 16:35
Hallo Hermann-Josef,

in der Tat sehr seltsam. Gerade deswegen wäre es interessant zu erfahren, was das für zwei normals sind. Wie "irgendwie" klappt es denn nicht mit dem Dreizeiler?

Davon abgesehen, könnte man vermuten, dass deine normal.dotm oder das ganze Word einen Schaden davon getragen hat. Du könntest versuchen, die normal.dotm neu erstellen zu lassen, indem du der alten eine andere Endung verpasst (z.B. do_tm). Dann erstellt Word beim nächsten Start eine neue. Sichere vorher deine Makros.

Du könntest auch eine Office-Reparatur versuchen ( https://support.office.com/de-de/article/reparieren-einer-office-anwendung-7821d4b6-7c1d-4205-aa0e-a6b40c5bb88b ).

Was mir grad noch einfällt: Hast du mal versucht, statt eines Eintrags im Menüband ein Symbol in der Schnellzugriffsleiste zu erstellen und mit dem Makro zu verknüpfen? Ändert das was?

Jossie
29.08.2019, 17:40
Hallo Gerhard,

vielen Dank für Deine Rückmeldung.
Wie "irgendwie" klappt es denn nicht mit dem Dreizeiler?
Mir ist nicht klar, wo ich das einfügen soll. Ich hatte ein Modul erstellt und dort die Sub abgelegt. Beim Kompilieren kommt eine Fehlermeldung.

Ich hatte auch die alte Normal.dotm gelöscht, denn da war nichts aufregendes drin. Aber das hatte auch nichts gebracht.

Vielleicht sollte ich Office neu installieren. Mal sehen, was dann passiert. Zur Not muss ich halt die wenigen Makros, die ich habe, in jedem größeren WORD-Dokument ablegen. Aber das wäre nicht im Sinne des Erfinders.

Noch einen schönen Abend wünscht

Hermann-Josef

Gerhard H
29.08.2019, 17:55
Hallo nochmal,

"Ich hatte ein Modul erstellt und dort die Sub abgelegt"

Sorry, ich erwähnte nicht, das der Dreizeiler ins Modul ThisDocument muss.

Jossie
29.08.2019, 18:07
Hallo Gerhard,

was meinst Du mit "in ThisDocument"? Das ist kein Modul sondern das Dokument. Ein Modul kann ich hier nicht erstellen. Das Modul wird im Projekt, in diesem Fall "Test" angelegt. Der Fehler beim Kompilieren sagt: "Unzulässige Verwendung des Schlüsselwortes Me".

Der Link im Schnellzugriff hatte übrigens keine Änderung gebracht.

Hermann-Josef

Gerhard H
29.08.2019, 18:38
Hallo Hermann-Josef,

"was meinst Du mit "in ThisDocument"? Das ist kein Modul sondern das Dokument. Ein Modul kann ich hier nicht erstellen."

Musst du ja auch gar nicht. Anscheinend reden wir ziemlich aneinander vorbei. Deswegen ein kleines Bildchen von mir. Der gekennzeichnete Ordner (eben das Modul ThisDocument, welches standardmäßig für jedes Dokument, und eben auch für die normal.dotm existiert) gehört doppelgeklickt, und ins zugehörige Codefenster gehört der Dreizeiler. Diesen dann mit F5 starten.
Daselbe mit der anderen "Normal".

Solltest du diesen Weg nicht gehen können, dann ist aber gewaltig was faul mit deiner Word-Installation.

Was für einen "Link im Schnellzugriff" meinst du?

Jossie
30.08.2019, 08:01
Guten Morgen,

ach so ist das gemeint. Es war mir überhaupt nicht klar, dass es zu jedem Dokument auch ein Code-Fenster gibt. Wo ist denn all sowas beschrieben, damit man das nachlesen kann???

Damit hat das nun funktioniert. Aber nach Öffnen des gespeicherten Dokuments habe ich nun wieder nur ein Normal.dotm. Daher hat sich momentan dieses Problem in Luft aufgelöst.

Es passiert auch immer wieder, dass nach Löschen des Makros in Normal.dotm beim nächsten Öffnen eines Dokumentes Word immer noch meldet, dass die Makros deaktiviert sind. Will ich das Makro über die Menüleiste ausführen oder mir in VBA anschauen, so gibt es natürlich kein Makro.
Was für einen "Link im Schnellzugriff" meinst du?Ich meint die Schaltfläche für das Makro in der Schnellstartleiste ganz oben. Die hatte ja das gleiche Problem wie die Menüleiste.

Hermann-Josef

Gerhard H
30.08.2019, 09:50
Hallo Hermann-Josef,

"Es passiert auch immer wieder, dass nach Löschen des Makros in Normal.dotm beim nächsten Öffnen eines Dokumentes Word immer noch meldet, dass die Makros deaktiviert sind."

Es ist schon seltsam, dass diese Warnung ausgerechnet dann kommt, wenn kein Makro mehr drin ist. Du speicherst aber im VBA-Editor nach Löschen des Makros schon nochmal?

Gegen solche Warnungen würde generell helfen, in den Einstellungen für das Sicherheitscenter (Word > Optionen > Sicherheitscenter) unter Vertrauenswürdige Ordner den Pfad zur Normal.dotm hinzuzufügen,
Ob das aus Sicherheitsgründen opportun ist oder nicht, muss jeder selber entscheiden. Auf meinem Rechner ist das jedenfalls so.

Ein Überblick über die Elemente im VBA-Editor sollte jede Einführung in VBA bieten. Im Netz hab ich auf die Schnelle das gefunden: https://www.vba-tutorial.de/ Das könnte ein guter Einstieg sein.

Jossie
30.08.2019, 10:36
Hallo Gerhard,

habe jetzt meinen Vorlagenordner gemäß Deinem Vorschlag in die sicheren Speicherorte mit aufgenommen. Jetzt scheint es so zu funktionieren wie angedacht: Makro in Normal.dotm, Schnellstartleiste mit Schaltfläche auf dieses Makro, Dokumente abgespeichert und geschlossen.

Nach Neustart funktioniert nun die Schaltfläche in der Schnellstartleiste immer noch!

Danke für Deine Hilfe!

Hermann-Josef