Makro für Word - Modul

Dieses Thema Makro für Word - Modul im Forum "Microsoft Office Suite" wurde erstellt von Alex 1, 17. März 2005.

Thema: Makro für Word - Modul Grüßt euch, ich möchte fragen wie kann man ein Makro in Word ausführen das aber in einem Modul geschrieben ist....

  1. Grüßt euch,

    ich möchte fragen wie kann man ein Makro in Word ausführen das aber in einem Modul geschrieben ist.

    Das Makro soll nach dem Öffnen des Dokument ausgeführt werden.

    Danke
     
  2. ich nehme an, dass das Makro schon als Modul eingefügt ist und einen Namen hat - ändere diesen Namen in AutoOpen bzw, AutoNew

    Gruß Lisa
     
  3. Hallo Danke dass du geantwortet hast

    Das Problem konnte ich aber nicht löesen

    Code:
    Sub AutoNew()
    
    'Datum 1 Tag vordatieren
    'ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.InsertBefore Format((Date + 1), dddd, dd. MMMM yyyy)
    ActiveDocument.Bookmarks(Datum).Range.InsertBefore Format((Date), dddd  dd. MM. yyyy)
    
    End Sub
     
  4. Hallo Alex 1,

    ist das Modul in der Normal.dot oder in einem extra Document untergebracht ?

    Gruß Matjes :)
     
  5. hast Du auch die Textmarke Datum in Deine Kopfzeile eingefügt?
     
  6. Hallo zusammen,

    AutoNew - wird beim Erstellen eines neuen Dokuments ausgeführt
    AutoOpen - wird beim Öffnen eines bestehenden Dokumentes ausgeführt.

    Makro also ggf. in beide Versionen ausführen.

    Gruß Matjes  :)
     
  7. Hallo,

    Das Modul ist in einem Dokument untergebracht.

    Was sollte das Bedeuten?
    Danke
     
  8. Hallo Alex 1,

    ein Makro in einem Dokument kann nur ausgeführt werden, wenn dieses geöffnet ist.
    Deshalb die Frage:
    Bei deinem Makro muß mann, wie Lisa4 richtig bemerkt hat, darauf achten,
    daß die Textmarke Datum vorhanden ist.

    Nennen wir deinen Makro mal so, wie die Funktion ist.

    Code:
    Sub DatumVordatierenImKopfUndTextmarkDatum()
     ->Datum 1 Tag vordatieren
      ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.InsertBefore _
                                            Format((Date + 1), dddd, dd. MMMM yyyy)
      On Error Resume Next
      ActiveDocument.Bookmarks(Datum).Range.InsertBefore _
                                            Format((Date + 1), dddd  dd. MM. yyyy)
      On Error GoTo 0
    End Sub
    Die Zeile mit->On Error Resume next' ist für den Fall, daß das aktive Dokument keine Textmarke->Datum' enthält. Fehlt die Textmarke, erzeugt der Makro eine Fehlermeldung. Mit->On Error Resume next' wird diese Fehlermeldung unterdrückt und der Makro fährt mit der nächsten Zeile fort.

    Damit der Makro in allen Dokumenten verfügbar ist, schreiben wir ihn in die Normal.dot.
    Das geht folgendermassen:
    1) neu Word-Datei öffnen
    2) VB-Editor öffnen Alt+F11
    Links siehst Du ein Fenster mit der Überschrift Projekt-Project.
    In diesem Fenster ist die Normal.dot unter dem Namen Normal zu finden.
    3)  Modul anlegen mit
    3a) Normal mit der Maus selektieren
    3b) rechte Maustaste -> Einfügen -> Modul
    in der Mitte geht das Code-Fenster Normal-Modul1(Code) auf
    3c) den gesamten Code per copy und Paste in dieses Fenster hineinkopieren
    Mit Testen->komilieren kannst du noch testen, ob der Makro syntaktisch fehlerfrei ist
    3d) Normal.dot speichern mit Alt+S
    4)  VB-Editor schliessen mit Alt+Q

    So jetzt stellt sich die Frage:
    bei welchem Ereignis soll der Makro aufgerufen werden?
      - I)   beim Öffnen eines bestimmten  Dokuments
      - II)  beim Öffnen jedes bestehenden Dokuments
      - III) beim Öffnen eines neuen Dokuments

    zu I) beim Öffnen eines bestimmten  Dokuments
    angenommen das Dokument heißt Dok1.doc
    Im Open-Ereignis des dieses Dokuments soll DatumVordatierenImKopfUndTextmarkDatum aufgerufen werden.
    Vorgehen:
    1) VB-Editor öffnen Alt+F11
    Im Projekt-Fenster siehst Du Project(Dok1)
    Die Pluszeichen anklicken, so daß die Ordner und Code-Seiten sichtbar werden.
    2) Ein Doppelklick auf ThisDocument unterhalb von Project(Dok1)
    in der Mitte geht das Code-Fenster Dok1-ThisDocument(Code) auf
    3) folgenden Code in dieses Fenster kopieren:
    Code:
    Private Sub Document_Open()
      On Error Resume Next
      Call DatumVordatierenImKopfUndTextmarkDatum
    End Sub
    4) speichern mit Alt+S
    5)  VB-Editor schliessen mit Alt+Q

    zu II) beim Öffnen jedes bestehenden Dokuments
    Im Open-Ereignis eines jeden bestehenden Dokumentes soll DatumVordatierenImKopfUndTextmarkDatum aufgerufen werden.
    Vorgehen:
    1) VB-Editor öffnen Alt+F11
    Im Projekt-Fenster siehst Du Normal.
    Die Pluszeichen anklicken, so daß die Ordner und Code-Seiten sichtbar werden.
    2) Ein Doppelklick auf Modul1 unterhalb von Normal
    in der Mitte geht das Code-Fenster Normal-Modul1(Code) auf
    3) folgenden Code in dieses Fenster kopieren:
    Code:
    Sub AutoOpen()
      Call DatumVordatierenImKopfUndTextmarkDatum
    End Sub
    4) speichern mit Alt+S
    5)  VB-Editor schliessen mit Alt+Q

    zu III) beim Öffnen eines neuen  Dokuments
    Im Open-Ereignis eines jeden neuen Dokumentes soll DatumVordatierenImKopfUndTextmarkDatum aufgerufen werden.
    Vorgehen:
    1) VB-Editor öffnen Alt+F11
    Im Projekt-Fenster siehst Du Normal.
    Die Pluszeichen anklicken, so daß die Ordner und Code-Seiten sichtbar werden.
    2) Ein Doppelklick auf Modul1 unterhalb von Normal
    in der Mitte geht das Code-Fenster Normal-Modul1(Code) auf
    3) folgenden Code in dieses Fenster kopieren:
    Code:
    Sub AutoNew()
      Call DatumVordatierenImKopfUndTextmarkDatum
    End Sub
    4) speichern mit Alt+S
    5)  VB-Editor schliessen mit Alt+Q


    So, noch ein paar Hinweise:

    - Wenn Methode I und II benutzt werden, wird zunächst AutoOpen und dann Document_Open ausgeführt. Das Datum steht dann zweimal im Kopf.

    - Wenn Methode I oder II benutzt werden, wird bei jedem Öffnen das Datum in den Kopf geschrieben.
      Für Methode I besteht die Möglichkeit das aktivieren der Makros abzulehnen.
      AutoOpen wird jedoch immer ausgeführt !

    Gruß Matjes :)
     
  9. Hallo,

    Ein Dankeschön an allen die mir weitergeholfen haben, hauptsächlich an Matjes für die ausführliche Beschreibung und die mühe.

    Mit eurer Hilfe habe ich es endlich geschafft, mein vorhaben zu vollenden.

    Danke
     
Die Seite wird geladen...

Makro für Word - Modul - Ähnliche Themen

Forum Datum
Makro für bleibendes Datum einrichten Microsoft Office Suite 23. Mai 2011
benötige Hilfe für ein Excel 2007 Makro Windows XP Forum 26. Mai 2010
Makro für Excel erstellen Microsoft Office Suite 18. Juli 2008
Excel: Makros gültig für nahezu alle WS Microsoft Office Suite 17. Aug. 2006
ACDSee: Gibt es ein plugin für die Programmierung eines Makros(=Befehlskette)? Software: Empfehlungen, Gesuche & Problemlösungen 18. Juli 2005