Mehrere Word Dateien gleichzeitig ändern, wie ?

ssj3rd

Banned
Registriert
März 2005
Beiträge
2.946
Hallo Leute,

habe hier knapp 75 Word Dateien die immer den gleichen Fehler erhalten, es ist ein falscher Name an der selben Stelle eingetragen.

Gibt es eine Möglichkeit diesen Namen gleichzeitig in allen Word Dateien zu ändern ? Oder komm ich nicht drum herum , alle Dateien einzeln zu öffnen und abzuändern ?

benutze Office 2003 Pro.


Mfg
ssj3rd
 
Du könntest da mit VBA ein wenig was machen... die Frage ist nur, ob die Einarbeitung usw leichter von der Hand geht als das manuelle Ändern...
 
Gibts bei Word in der Ersetzen Funktion eine Option "Ersetzen in allen offenen Dokumenten"?
 
Moin,
ssj3rd schrieb:
Gibt es eine Möglichkeit diesen Namen gleichzeitig in allen Word Dateien zu ändern ? Oder komm ich nicht drum herum , alle Dateien einzeln zu öffnen und abzuändern ?

benutze Office 2003 Pro.
Endlich mal die rühmliche Ausnahme, dass jemand (also du) die Version gleich angibt. :cool_alt:

So, es geht per Makro ganz easy. Wenn du tatsächlich alle Docs geöffnet hast, dann dieses Makro ausführen:
Code:
Sub NamenErsetzen()
    Dim WordDoc As Document
    Dim AltName As String
    Dim NeuName As String
    
    For Each WordDoc In Documents
        WordDoc.Activate
        AltName = "Hugo"    'Anpassen
        NeuName = "John"    'Anpassen
        
        With Selection.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = AltName
            .Replacement.Text = NeuName
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = True
            .MatchWholeWord = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next WordDoc
End Sub
Du musst nur den Inhalt der Variablen AlterName und NeuerName (ganz oben im Code) deinen Erfordernissen entsprechend anpassen. Hier wird "Hugo" zu "John", und das willst du wahrscheinlich nicht.

Den Code über Alt-F11 einbinden und los geht's!

Ach ja, dass du vorher Sicherungskopien anlegst, ist wohl klar ... (Allerdings ist bei meinem Test nichts ungewolltes passiert).
 
@cpt. Nemo
Das Skript : einfach, übersichtlich => genial ; Funktioniert einwandfrei.
@topic
Bei 75 Worddateien müssten dennoch alle Dateien händisch abgespeichert bzw. bestätigt werden. Daher würde ich folgenden Code noch in die vorletzte Zeile mit einfügen:
Code:
Application.Quit (wdSaveChanges)
Damit schließt sich Word (mit allen offenen Dokumenten) und speichert diese automatisch ab.
 
@ryan_blackdrago

Danke für die Blumen! :)
Ich kenne zwar die Möglichkeit, die Datei(en) per Code zu speichern und zu schließen, habe aber in meiner langen Praxis zu oft erlebt, dass eine kurze Kontrolle des einzelnen Ergebnisses sinnvoll sein kann.

Das ist auch der Grund dafür, dass ich nicht die Möglichkeit in Betracht gezogen habe, alle Dateien in einen Ordner zu kopieren und dann in einer FOR EACH - Schleife jede *.doc automatisch "behandeln" lasse.
 
" Laufzeitfehler '5854'

Parameter für Zeichekette zu lang. "




Wie kann ich mit o.g. Makro längere Textpassagen austauschen??

Danke im Voraus.
 
Den Suchstring aufteilen.

Siehe hier.
 
GMG-CC schrieb:
Moin,

Endlich mal die rühmliche Ausnahme, dass jemand (also du) die Version gleich angibt. :cool_alt:

So, es geht per Makro ganz easy. Wenn du tatsächlich alle Docs geöffnet hast, dann dieses Makro ausführen:
Code:
Sub NamenErsetzen()
    Dim WordDoc As Document
    Dim AltName As String
    Dim NeuName As String
   
    For Each WordDoc In Documents
        WordDoc.Activate
        AltName = "Hugo"    'Anpassen
        NeuName = "John"    'Anpassen
       
        With Selection.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = AltName
            .Replacement.Text = NeuName
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = True
            .MatchWholeWord = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next WordDoc
End Sub
Du musst nur den Inhalt der Variablen AlterName und NeuerName (ganz oben im Code) deinen Erfordernissen entsprechend anpassen. Hier wird "Hugo" zu "John", und das willst du wahrscheinlich nicht.

Den Code über Alt-F11 einbinden und los geht's!

Ach ja, dass du vorher Sicherungskopien anlegst, ist wohl klar ... (Allerdings ist bei meinem Test nichts ungewolltes passiert).
Ergänzung ()

Ich versuche dieses Script in mit Office 2019 zu öffnen bzw. auszuführen. Ich bekomme schon bei der ersten Zeile die Fehlermeldung " Fehler beim Kompilieren" kann mir jemand hier weiterhelfen?

Danke
 
Zuletzt bearbeitet:
Zurück
Oben