Microsoft Excel

Herbers Excel/VBA-Archiv

Doppelt: Word-Serienbrief per Excel

Betrifft: Doppelt: Word-Serienbrief per Excel von: ThomasJ
Geschrieben am: 05.09.2004 12:58:58

Hallo Forum!

Habe folgendes Prob:

Ich öffne die Serienbrief-Funktion von Word mit einem CB einer UF aus Excel.

Wenn ich WORD dann aber schliessen will, bekomme ich n Haufen Meldungen und Abfragen bezüglich Normal.dot:
1. ..andere Anwendung oder Benutzer greifen auf ...Normal.dot zu!
2. SaveAs Dialog -> Normal.dot
3. WORD immer noch offen -> drücke Schließen (X)
4. Änderungen wirken sich auf Normal.dot aus...blabla...

Hier der Code (zusammengebastelt aus verschiedenen Fundstellen):


Sub ÖffneWord()

  Dim wrd As Object
  Set wrd = CreateObject("Word.Application")
  wrd.Visible = True
  wrd.documents.Add
  wrd.activedocument.mailmerge.showwizard (2)
  Set wrd = Nothing

End Sub



Kann mir da jemand helfen?!

Gruß
Thomas
  


Betrifft: AW: Doppelt: Word-Serienbrief per Excel von: Ramses
Geschrieben am: 05.09.2004 14:19:39

Hallo

Thomas hat dir ja schon ein paar Tips gegeben.

Hier nochmals etwas zur Info

Zu 1:
Da brauchst du dich nicht zu wundern, weil die Object-Schnittstelle von EXCEL immer noch auf das Word-Dokument zugreift.
Ich verstehe ehrlich gesagt den Sinn des ganzen überhaupt nicht.
Du machst ja nichts anderes als Word zu starten und den Serienbriefassistenten zu öffnen. Reicht da der normale Vorgang über die Startleiste nicht ?
Den Serienbriefassistenten sollte der Benutzer ja wohl noch finden ;-)
Wenn nicht, dann starte Word doch über das Shell-Command, dann bist du die ganzen anderen Abfragen los

x = shell("Winword.exe",vbMaximizedFocus)

Den Serienbrief kannst du zur Not auch nocht mit Send-Keys aufrufen

Zu 2:
Keine Ahnung was du speichern willst

Zu 3.
Das ist ja wohl klar, solange bis es auf Visible = False gesetzt wird

Zu 4:
Ist ja auch klar. Das ist eine Systemeinstellung in Word und kann unter
Extras - Optionen - Speichern "Anfrage für Speicherung Normal.dot" abgeschaltet werden.

Gruss Rainer


  


Betrifft: AW: Vielleicht so... von: Frank
Geschrieben am: 05.09.2004 14:25:29

Hi Thomas,

versuchs mal so:

Sub Word_Serien()

Application.ActivateMicrosoftApp (xlMicrosoftWord)

Application.Wait (Now + TimeValue("00:00:03"))

Application.SendKeys "%xd", True

End Sub


Sendkeys ist zwar sicher nicht die beste Lösung, aber bei mir klappt es so einwandfrei.

MfG

Frank