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

Forumthread: VBA - Excel/Word: Probleme mit SaveAs Methode

VBA - Excel/Word: Probleme mit SaveAs Methode
16.12.2014 13:44:24
Marc
Hallo zusammen,
ich kämpfe nun schon seit einiger Zeit mit folgendem Problem:
Ich habe ein Excel-Mappe, aus der ich per VBA eine Word-Vorlage öffne und mit Daten fülle. Dieses Word-Dokument soll nun unter einem neuen Namen abgespeichert werden. Dafür nutze ich die SaveAs Methode - die übrigens nur mit Excel wunderbar funktioniert. Anstatt das Dokument zu speichern, bekomme ich nur den "Speichern Unter" Dialog angezeigt. Für ein Dokument mag das ja ok sein. Allerdings generiert mein Code die Word-Dokumente in Abhängigkeit der Zeilenanzahl, so dass diese zwingend automatisch gespeichert werden müssen.
Hier mein Code (ist bisher haupts. zu Testzwecken, daher nicht wirklich aufgeräumt)

Sub Beschlussvorlagen_generieren()
Dim Word As Object
Dim WinDoc As Object
Dim wbQuelldatei As Workbook
Dim strZielDatei As String
Set wbQuelldatei = ActiveWorkbook
strZielDatei = ThisWorkbook.Path & "\" & "Vorlagen" & "\" & "Beschlussvorlage_FB-V.dotx"
Dim x As Integer
Dim y As Long
Dim topNummer As Integer
Dim topThema As String
Dim topBeschreibung As String
Dim topBegründung As String
Dim eventName As String
Dim eventDatumStart As String
Dim eventOrt As String
Application.ScreenUpdating = False
wbQuelldatei.Activate
Sheets("Tagesordnungspunkte").Select
Cells(1, 2).Select
x = Selection.CurrentRegion.Rows.Count
MsgBox (x)
Set Word = CreateObject("Word.Application")
Word.Visible = True: Word.WindowState = wdWindowStateMaximize
Word.Activate
With Word
For y = 2 To x
topNummer = wbQuelldatei.Sheets("Tagesordnungspunkte").Cells(y, 1)
topThema = wbQuelldatei.Sheets("Tagesordnungspunkte").Cells(y, 2)
topBeschreibung = wbQuelldatei.Sheets("Tagesordnungspunkte").Cells(y, 3)
topBegründung = wbQuelldatei.Sheets("Tagesordnungspunkte").Cells(y, 4)
eventName = wbQuelldatei.Sheets("Startseite").Cells(3, 4)
eventDatumStart = wbQuelldatei.Sheets("Startseite").Cells(7, 4)
eventOrt = wbQuelldatei.Sheets("Startseite").Cells(5, 4)
Set WinDoc = Word.Documents.Add(strZielDatei)
.ActiveDocument.FormFields("docVeranstaltung").Range.Text = eventName
.ActiveDocument.FormFields("docDatumStart").Range.Text = eventDatumStart
.ActiveDocument.FormFields("docOrt").Range.Text = eventOrt
.ActiveDocument.FormFields("docTOP").Range.Text = topNummer
.ActiveDocument.FormFields("docTOPThema").Range.Text = topThema
.ActiveDocument.FormFields("docBeschreibung").Range.Text = topBeschreibung
.ActiveDocument.FormFields("docBegründung").Range.Text = topBegründung
Application.DisplayAlerts = False
WinDoc.SaveAs Filename:=ThisWorkbook.Path & "\" & "Dokumente" & "\" & " _
Beschlussvorlagen" & "\" & topNummer & "-" & topThema & ".docx"
WinDoc.Quit
Application.DisplayAlerts = True
Next y
End With
Worksheets("Startseite").Select
End Sub
Selbst das hier funktioniert nicht, wenn ich es direkt aus Wird aufrufe:
ActiveDocument.SaveAs FileName:="C:\Temp\Test.doc"
Hat jemand zufällig eine Lösung parat?
Vielen Dank schon mal,
Marc

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Excel/Word: Probleme mit SaveAs Methode
16.12.2014 15:05:42
mumpel
Hallo!
Versuch es mit "SaveAs2" anstelle von "SaveAs".
Gruß, René

AW: VBA - Excel/Word: Probleme mit SaveAs Methode
16.12.2014 17:02:21
Marc
Hallo René,
die SaveAs2 Methode wurde erst mit Office2010 eingeführt. Ich habe noch Office2007.
Beste Grüße,
Marc

AW: VBA - Excel/Word: Probleme mit SaveAs Methode
16.12.2014 20:35:53
ing.grohn
Hallo Marc,

ActiveDocument.SaveAs FileName:="C:\Temp\Test.doc"

funktioniert und Word 2003 und Word 2013 (das Verzeichnis TEMP muß aber da sein).
Mit freundlichen Grüßen
Albrecht

Anzeige
AW: VBA - Excel/Word: Probleme mit SaveAs Methode
17.12.2014 11:02:55
Marc
Soooooohohohoho,
ich habe die Lösung gefunden!
Da das Ganze bei mir auf einem Acer Notebook läuft und Acer die blendende Idee hatte, irgendwelche Office-Add-Ins zu installieren, gab es einen Konflikt mit der SaveAS Methode. Nach der Deinstallation des Office Add-Ins funktioniert es auch wieder mit dem Speichern.
Trotzdem in dickes Danke schön an alle, die sich den Kopf darüber zerbrochen haben!
Beste Grüße,
Marc
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Probleme mit der SaveAs Methode in Excel und Word beheben


Schritt-für-Schritt-Anleitung

Um ein Word-Dokument per VBA aus Excel heraus zu speichern, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne die Excel-Datei, die die Daten enthält, die du in das Word-Dokument übertragen möchtest.
  2. Füge den VBA-Code in das VBA-Editor-Fenster ein:

    Sub Beschlussvorlagen_generieren()
       Dim Word As Object
       Dim WinDoc As Object
       Dim wbQuelldatei As Workbook
       Dim strZielDatei As String
       Set wbQuelldatei = ActiveWorkbook
       strZielDatei = ThisWorkbook.Path & "\Vorlagen\Beschlussvorlage_FB-V.dotx"
       Dim x As Integer
       Dim y As Long
       Application.ScreenUpdating = False
       Set Word = CreateObject("Word.Application")
       Word.Visible = True
       With Word
           For y = 2 To x
               Set WinDoc = .Documents.Add(strZielDatei)
               ' Hier Daten einfügen...
               WinDoc.SaveAs Filename:=ThisWorkbook.Path & "\Dokumente\Beschlussvorlagen\" & topNummer & "-" & topThema & ".docx"
               WinDoc.Quit
           Next y
       End With
    End Sub
  3. Überprüfe den Pfad und die Dateinamen, um sicherzustellen, dass alles korrekt ist.
  4. Führe das Makro aus.

Häufige Fehler und Lösungen

  • Problem: Der "Speichern Unter"-Dialog öffnet sich anstelle des automatischen Speicherns.

    • Lösung: Überprüfe, ob du die Methode SaveAs2 verwendest, besonders wenn du Office 2010 oder höher hast. Der Aufruf könnte so aussehen:
      WinDoc.SaveAs2 Filename:="C:\Temp\Test.docx"
  • Problem: Der Code funktioniert nicht in älteren Versionen von Word.

    • Lösung: Ältere Versionen unterstützen möglicherweise nicht die SaveAs2 Methode. In diesem Fall solltest du ActiveDocument.SaveAs verwenden.
  • Problem: Konflikte durch Office-Add-Ins.

    • Lösung: Deinstalliere nicht benötigte Add-Ins, die möglicherweise die Funktionalität von Word beeinträchtigen.

Alternative Methoden

Eine alternative Methode zum Speichern eines Dokuments besteht darin, die SaveAs Methode anstelle von SaveAs2 zu verwenden. Dies kann besonders nützlich sein, wenn du eine ältere Version von Word benutzt:

ActiveDocument.SaveAs FileName:="C:\Temp\Test.doc"

Wenn du mit Access arbeitest, kannst du die Access VBA SaveAs Methode verwenden, um ähnliche Ergebnisse zu erzielen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du Daten aus einer Excel-Tabelle in ein Word-Dokument überträgst und dabei die SaveAs Methode verwendest:

Sub DatenNachWordÜbertragen()
    Dim WordApp As Object
    Dim WordDoc As Object
    Dim Quelle As Workbook
    Set Quelle = ThisWorkbook
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents.Add
    ' Beispiel für das Einfügen von Text
    WordDoc.Content.Text = Quelle.Sheets(1).Cells(1, 1).Value
    ' Speichern des Dokuments
    WordDoc.SaveAs Filename:="C:\Temp\Dokument.docx"
    WordDoc.Close
    WordApp.Quit
End Sub

Tipps für Profis

  • Verwende SaveAs2 für das Speichern von Word-Dokumenten, um die neuen Funktionen zu nutzen, die in neueren Versionen verfügbar sind.
  • Setze den Application.DisplayAlerts auf False, um unerwünschte Dialoge während des Speichervorgangs zu vermeiden.
  • Teste deinen Code in einer Umgebung, die die benötigten Versionen von Excel und Word unterstützt, um Komplikationen zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Warum funktioniert ActiveDocument.SaveAs nicht in meiner Version von Word?
Antwort: Möglicherweise unterstützt deine Word-Version die SaveAs Methode nicht oder du musst den richtigen Pfad und Dateiformat angeben.

2. Frage
Was kann ich tun, wenn mein Code immer noch nicht funktioniert?
Antwort: Überprüfe, ob es Konflikte mit Office-Add-Ins gibt, oder teste deinen Code in einer anderen Umgebung.

3. Frage
Wie kann ich sicherstellen, dass das Dokument im richtigen Format gespeichert wird?
Antwort: Achte darauf, das korrekte FileFormat in der SaveAs oder SaveAs2 Methode anzugeben.

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