Dokumentformatvorlagen in mehreren Dokumenten ersetzen
Hallo,
ich möchte gerne mit einem Makro in einigen vielen Dokumenten (Formbriefe) die verwendeten Dokumentenformatvorlagen ersetzen. Mein Code bis dato (der nicht funktioniert...) sieht so aus:
Die Fehlermeldung beim Kompilieren lautet:
"Typen unverträglich"
Daraus entnehme ich, dass Variablen nicht miteinander verträglich sind.
Kann mir bitte jemand sagen, ob mein Vorhaben durchführbar ist und wo mein Fehler im Code liegt?
Neugierige Grüße,
Andreas
(Word 2010)
ich möchte gerne mit einem Makro in einigen vielen Dokumenten (Formbriefe) die verwendeten Dokumentenformatvorlagen ersetzen. Mein Code bis dato (der nicht funktioniert...) sieht so aus:
Sub FormatvorlagenZuweisen01()
Dim oTemplate As Template
Dim oDoc As Document
Dim oDocPath As String
Dim intDokumentenzaehler As Integer
intDokumentenzaehler = 0
Set oTemplate = "\\Server\Speicherort\Formbriefe Test\Vorlage\test.dot"
Set oDocPath = "\\Server\Speicherort\Formbriefe Test\"
For Each oDoc In oDocPath
Set oDoc = ActiveDocument
With ActiveDocument
.UpdateStylesOnOpen = False
.AttachedTemplate = oTemplate
.Save
.Close
End With
intDokumentenzaehler = intDokumentenzaehler + 1
Set oDoc = Nothing
Next oDoc
MsgBox "Bearbeitete Dokumente: " & intDokumentenzaehler
End Sub
Die Fehlermeldung beim Kompilieren lautet:
"Typen unverträglich"
Daraus entnehme ich, dass Variablen nicht miteinander verträglich sind.
Kann mir bitte jemand sagen, ob mein Vorhaben durchführbar ist und wo mein Fehler im Code liegt?
Neugierige Grüße,
Andreas
(Word 2010)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215239
Url: https://administrator.de/forum/dokumentformatvorlagen-in-mehreren-dokumenten-ersetzen-215239.html
Ausgedruckt am: 12.04.2025 um 13:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo Andreas,
so wie du das versuchst geht es leider nicht.
Ungetestet müsstest du es in dieser Art machen:
Grüße Uwe
so wie du das versuchst geht es leider nicht.
Ungetestet müsstest du es in dieser Art machen:
Sub FormatvorlagenZuweisen01()
Dim oTemplate
Dim oDoc As Document
Dim oDocPath As String
Dim intDokumentenzaehler As Integer
intDokumentenzaehler = 0
Set fso = CreateObject("Scripting.Filesystemobject")
Set oTemplate = "\\Server\Speicherort\Formbriefe Test\Vorlage\test.dot"
Set oDocPath = "\\Server\Speicherort\Formbriefe Test\"
Application.DisplayAlerts = wdAlertsNone
For Each f In fso.GetFolder(oDocPath).Files
If LCase(Right(f.Name, 3)) = "doc" Or LCase(Right(f.Name, 4)) = "docx" Or LCase(Right(f.Name, 4)) = "docm" Then
Set oDoc = Application.Documents.Open(f.Path, Visible:=False)
With oDoc
.AttachedTemplate = oTemplate
.Save
.Close
End With
intDokumentenzaehler = intDokumentenzaehler + 1
Set oDoc = Nothing
End If
Next
Set fso = Nothing
Application.DisplayAlerts = wdAlertsAll
MsgBox "Bearbeitete Dokumente: " & intDokumentenzaehler
End Sub
Grüße Uwe
Also alle Styles die in die im alten Template des Dokuments vorhanden waren, kannst du so in das Dokument einbetten, bevor du das Dokument mit dem neuen Template verknüpfst. Wichtig: Diesen Schnippsel vor Zeile 20 in obigen Script einfügen.
Grüße Uwe
oDoc.CopyStylesFromTemplate (oDoc.AttachedTemplate.FullName)
Grüße Uwe