Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Word-Datei Speichern unter per XL-Makro

Word-Datei Speichern unter per XL-Makro
massimo17
Hallo,
ich generiere einen Serienbrief aus Excel herhaus in Word und lass ihn auch gleich ausdrucken.
Vorher fragt er mich noch, ob ich den Word-Brief speichern will.
Wie kann ich es automatisieren, dass er den Word-Brief in Abhängigkeit einer Zelle aus Excel unter deren Name als .doc speichert - ohne mich zu fragen?
Dies ist der bisherige Code:

Private Sub CommandButton2_Click()
Dim appWord As Object
Dim doc As Object
Application.DisplayAlerts = False
Set appWord = CreateObject("Word.Application")
Set doc = appWord.Documents.Open(ThisWorkbook.Path & "\Zeugnisgenerator.doc")
Application.DisplayAlerts = True
doc.PrintOut
appWord.Dialogs(84).Show
appWord.Quit
Set doc = Nothing
Set appWord = Nothing
End Sub


Danke!

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Word-Datei Speichern unter per XL-Makro
01.07.2009 13:37:02
Jogy
Hi.
doc.Save - speichert
doc.SaveAs %FILENAME% - speichert unter anderem Dateinamen
doc.Close True - schließt und speichert Änderungen
Gruss, Jogy
doc.SaveAs ThisWorkbook.Path & "\" & [A10] &".doc
01.07.2009 13:42:00
NoNet
Hallo Massimo,
so geht's (speichert im gleichen Verzeichnis mit Namen aus Zelle A10) :
doc.SaveAs ThisWorkbook.Path & "\" & [A10].Value & ".doc"
Gruß, NoNet
Anzeige
AW: doc.SaveAs ThisWorkbook.Path & "\" & [A10] &".doc
01.07.2009 14:00:57
massimo17
...danke hat funktioniert. Wollte auch gerade fragen wie ich das mit der Endung hinbekomme. Hatte es mit Range versucht...da fehlt die .doc Endung beim Speichern.
So jetzt habe ich aber ein neues Problem:
Er öffnet die Datei - Druckt sie - und speichert sie ab.
Aber:
Er aktualisiert die Serienfelder nicht und die Serienfeldleiste ist auch aus.
Dies ist der aktuelle Code:
Dim appWord As Object
Dim doc As Object
Application.DisplayAlerts = False
Set appWord = CreateObject("Word.Application")
Set doc = appWord.Documents.Open(ThisWorkbook.Path & "\Zeugnisgenerator.doc")
Application.DisplayAlerts = True
doc.PrintOut
doc.SaveAs ThisWorkbook.Path & "\" & [B10].Value & ".doc"
appWord.Quit
Set doc = Nothing
Set appWord = Nothing

Muss ich da mit GetObject arbeiten? Wenn ja, wie muss ich das einbauen...habe es nicht hinbekommen.
Danke!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Word-Datei automatisch speichern unter per Excel-Makro


Schritt-für-Schritt-Anleitung

Um ein Word-Dokument automatisch aus Excel zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code speichert das Dokument basierend auf dem Inhalt einer bestimmten Zelle:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“, wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:
Private Sub CommandButton2_Click()
    Dim appWord As Object
    Dim doc As Object
    Application.DisplayAlerts = False
    Set appWord = CreateObject("Word.Application")
    Set doc = appWord.Documents.Open(ThisWorkbook.Path & "\Zeugnisgenerator.doc")

    ' Hier wird das Dokument aktualisiert
    doc.Fields.Update

    ' Drucke das Dokument
    doc.PrintOut

    ' Speichere das Dokument unter dem Namen in Zelle A10
    doc.SaveAs ThisWorkbook.Path & "\" & [A10].Value & ".doc"

    ' Schließe Word
    appWord.Quit
    Set doc = Nothing
    Set appWord = Nothing
End Sub
  1. Stelle sicher, dass der Dateiname in Zelle A10 korrekt eingegeben ist.
  2. Schließe den VBA-Editor und teste den Button in Excel.

Häufige Fehler und Lösungen

  • Das Dokument wird nicht gespeichert: Stelle sicher, dass der Pfad korrekt ist und dass du Schreibrechte im entsprechenden Verzeichnis hast.
  • Serienfelder werden nicht aktualisiert: Füge die Zeile doc.Fields.Update vor dem Drucken hinzu, um sicherzustellen, dass alle Serienfelder aktuell sind.
  • Fehlermeldung bei der Ausführung: Überprüfe, ob die Word-Referenzbibliothek aktiviert ist. Das geht über „Extras“ > „Verweise“ im VBA-Editor.

Alternative Methoden

Wenn du das Speichern unter einem bestimmten Namen automatisieren möchtest, gibt es verschiedene Ansätze:

  1. Word-Makros: Du kannst ein Word-Makro erstellen, das beim Öffnen des Dokuments automatisch ausgeführt wird.
  2. Batch-Skripte: Verwende ein Batch-Skript, um mehrere Word-Dokumente automatisch zu speichern.
  3. Python-Skripting: Mit der python-docx-Bibliothek kannst du Word-Dokumente programmatisch erstellen und speichern.

Praktische Beispiele

Hier ist ein Beispiel, wie du eine Excel-Datei in ein Word-Dokument umwandeln und speichern kannst:

Sub ExcelAlsWordSpeichern()
    Dim appWord As Object
    Dim doc As Object
    Set appWord = CreateObject("Word.Application")
    Set doc = appWord.Documents.Add

    ' Füge Text hinzu
    doc.Content.Text = "Dies ist ein Test."

    ' Speichere das Dokument
    doc.SaveAs ThisWorkbook.Path & "\TestDokument.doc"

    appWord.Quit
    Set doc = Nothing
    Set appWord = Nothing
End Sub

Tipps für Profis

  • Verwende Error Handling: Implementiere Fehlerbehandlungsroutinen, um unerwartete Probleme zu vermeiden.
On Error GoTo ErrorHandler
' Dein Code hier
Exit Sub

ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Automatisiere den Druckprozess: Du kannst die Druckeinstellungen in Word anpassen, um den Druckprozess zu optimieren.
  • Dokumentation: Halte deinen Code gut dokumentiert, damit du und andere ihn leicht verstehen können.

FAQ: Häufige Fragen

1. Wie kann ich das Word-Dokument ohne Makros speichern? Du kannst das Dokument manuell speichern, indem du „Datei“ > „Speichern unter“ in Word auswählst. Automatisierungen erfordern jedoch in der Regel VBA.

2. Welche Excel-Version benötige ich für diesen Code? Der bereitgestellte VBA-Code funktioniert in den meisten modernen Excel-Versionen, einschließlich Excel 2016 und höher. Stelle sicher, dass Word installiert ist.

3. Kann ich mehrere Dokumente gleichzeitig speichern? Ja, du kannst eine Schleife verwenden, um durch eine Liste von Dateinamen zu iterieren und jedes Dokument entsprechend zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige