Jump to content

Mit Word Makro mehrere Dateien ändern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

ich hab folgende Frage. Ich will in ca 400 Word Dokumenten gleiche Inhalte ersetzen. Ich hab dafür ein Makro erstellt, dass alle gewünschten Strings ersetzt. Nur muss man um das Makro auszuführen erst die Datei öffnen und Änderungen werden nur für das aktuelle Dokument übernommen.

Gibt es eine Möglichkeit die Änderungen des Makros in allen 400 Dokumente gleichzeitig auszuführen? Idealerweise vielleicht sogar ohne die Dateien öffnen zu müssen?

 

Vielen Dank

Link zu diesem Kommentar

Im Prinzip geht dies schon - Du must das Makro halt direkt ergänzen. Mit Dir(Pfadname) bekommst Du die erste Datei im Ordner, dann in einer Schleife mit Dir() solange weitermachen, bis "" zurückkommt. Mit

 

Dim myDoc As Word.Document, _

wert_von_dir As String

 

 

wert_von_dir = Dir()

Set myDoc = Documents.Open(wert_von_dir)

 

öffnest Du das Dokument und werkelst auf der Variablen myDoc, die zuvor deklariert wurde.

 

---------

Gruß, Auer

Link zu diesem Kommentar

so nochmal ich...dank des tipps bin ich nun schon weiter aber leider erscheint beim ausführen des Makros die Fehlermeldung, dass die Datei nicht gefunden wurde obwohl der Name der in Klammern darunter steht korrekt ist. Hier das Skript...vielleicht findet jemand ja einen Denk- oder Programmierfehler.

Danke

 

Sub makro()

Set fso = CreateObject("Scripting.FileSystemObject")

Dim Folder

Set Folder = fso.GetFolder("C:\folder")

Dim Files

Set Files = Folder.Files

Dim Doc As Document

For Each File In Files

Set Doc = Documents.Open(File.Name)

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find

.Text = "original"

.Replacement.Text = "replace"

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

Selection.Find.Execute

Selection.Find.Execute Replace:=wdReplaceAll

Doc.Close saveChanges:=True

Next

End Sub

Link zu diesem Kommentar

Hey, wenn ihr schon so fleißig dabei seit, ich bin verzweifelt auf der Suche, wie man in ca. 5000 Dokumenten auf Grund einer Serverumstellung die Dokumentenvorlagen ändern kann ohne größeren Aufwand.

 

Gibt es da ne Möglichkeit?

 

Dazu ist noch zu sagen, dass die Dokumente nicht alle die gleiche Vorlage sondern immer wieder verschiedene nutzen.

Link zu diesem Kommentar

Irgendein Fehler wird sich in dem Code oben noch eingeschlichen haben, eventuell wird einfach die falsche Datei geöffnet. Zur Diagnose zwei Hinweise:

 

1. Im VBEditor unter Extras - Verweise die Microsoft Scripting Runtime anhaken. Falls es diese nicht geben sollte, über Durchsuchen die .\System32\scrrun.dll hinzufügen, das ist die zugehörige DLL. Dann kannst Du Dim fso As New Scripting.FileSystemObject verwenden, Folder und File analog - da sieht man sehr viel mehr.

 

2. Stelle den Cursor in das Makro und drücke oft F8. Damit läßt sich das Makro Schritt für Schritt ausführen. Bricht es an einer Stelle ab: Lass dir davor mit MsgBox die aktuellen Werte ausgeben, irgendeine Pfadgeschichte stimmt da nicht.

 

@MiLLHouSe: Mach es analog wie @Prakti, die Schleifenstruktur ist genau das, was man um den Einzelbefehl drumherumbauen muß.

 

----------

Gruß, Auer

Link zu diesem Kommentar

Ne, ich mein nicht die Inhalte in dem Dokument selber sondern eher die Pfade zu der Dokumentenvorlage, die sich geändert haben. (Extras - Vorlagen und Addins....)

 

Die Pfade haben sich bei allen Dokumenten geändert, so dass das Öffnen derzeit 3-5 Minuten in Anspruch nimmt...

 

Die Dateien haben nicht alle die gleiche Dokumentenvorlage, das vielleicht sei noch angemerkt.

Link zu diesem Kommentar

ok, danke für den tipp:

 

Sub test()

'

' test Makro

' Makro aufgezeichnet am 19.12.2003 von AS

'

With ActiveDocument

.UpdateStylesOnOpen = False

.AttachedTemplate = "Laufwerk:\Serverpfad\Datei"

End With

End Sub

 

So, und wie schaffe ich es jetzt, dass er mir nur das ersetzen soll, was vor "Datei" steht? Sprich er soll mir "Lauferk:\Serverpfad\" ersetzen und die Datei stehen lassen......

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...