Fußzeilen ersetzen im gesamten Ordner

Hallo,

ich habe einen Ordern mit *.dot-Dateien. Außerdem hab ich einen Baustein mit einer Fußzeile erstellt, der sich über das Dropdown-Menü aufrufen lässt. Kann man per Makro alle Dokumente in einem Ordner mit diesem Baustein versehen? Ich möchte den Baustein auch nur dort haben, wo sich schon eine Fußzeile befindet. Vielleicht hat ja jemand eine Idee oder ein Programm, das so etwas umsetzen kann?

Also kurz zusammengefasst:

  • Word Dateien im Ordner öffnen
  • Fußzeile, wenn vorhanden, durch meine erstellte ersetzen
  • Dateien wieder schließen und abspeichern

Ich habe auch schon die Makro aufnahmefunktion versucht, das funktioniert allerdings nicht wirklich. :frowning:

Vielen Dank schonmal für eure Hilfe!

enny1086

ein solches makro habe ich leider nicht.

Sorry, ich helfe gern, nur mag ich nicht die ganze Arbeit machen. Eine konkrete Fage mit Script wäre schöner

Hallo enny86,
Word ist nun leider nicht wirklich meine Baustelle. Bei der Verwendung von Bausteinen bspw. muss ich passen.
Wie Du alle Dateien eines Verzeichnisses öffnest, findest Du hier:

http://www.office-loesung.de/ftopic30222_0_0_asc.php…
http://www.ms-office-forum.net/forum/showthread.php?..
http://www.herber.de/forum/archiv/620to624/621162_Oe…

Wie man die Fußzeile angeht, findest Du hier:

http://www.office-loesung.de/ftopic219690_0_0_asc.php
http://www.ms-office-forum.net/forum/showthread.php?..

Hoffe, das hilft Dir weiter.

Mit freundlichen Grüßen

MwieMichel

Keine Ahnung, wie das gehen soll.

Hallo,

bin jetzt soweit, dass ich mir diesen Code rausgesucht habe, der sollte eigentlich für mein Vorhaben reichen:

Sub Vorlagen_Wort_ersetzen_Word2010()

Dim anzdatei As Integer
Dim Pfad As String
Dim Datei As String
Dim Schutz As Boolean
Dim i As Long
Dim a As Long
Dim fs As New Collection

Schutz = False

Pfad = InputBox(„Geben Sie den Pfad an“, „Pfad“)

If Right(Pfad, 1) „“ Then Pfad = Pfad & „“

Datei = Dir(Pfad, vbDirectory)
If Datei = „“ Then
MsgBox „kein Ordner oder Dateien!“
Exit Sub
End If

Do While Datei „“
If Datei „.“ And Datei „…“ Then
If (GetAttr(Pfad & Datei) And vbDirectory) vbDirectory Then
If Right(Datei, 4) = „dotm“ Or Right(Datei, 4) = „dotx“ Then
fs.Add Pfad & Datei
End If
End If
End If
Datei = Dir
Loop

anzdatei = fs.Count

For i = 1 To anzdatei
WordBasic.DisableAutoMacros 1
Documents.Open fs(i)

If ActiveDocument.ProtectionType wdNoProtection Then
Schutz = True
'Array für den Dokumentenschutz der Abschnitte
ReDim strArray(ActiveDocument.Sections.Count)

'Array einlesen
For a = 1 To ActiveDocument.Sections.Count
If ActiveDocument.Sections(a).ProtectedForForms = True Then
strArray(a) = 1
Else
strArray(a) = 0
End If
Next
'Dokumentenschutz aufheben
ActiveDocument.Unprotect
End If

'hier wird Test in den Dokumenten gesucht und geändert
Dim MyStoryRange As Word.Range
For Each MyStoryRange In ActiveDocument.StoryRanges
With MyStoryRange.Find
.ClearFormatting
.Text = „Bolardusstraße“

With .Replacement
.ClearFormatting
.Text = „neuer Text“
End With

.Execute Replace:=wdReplaceAll, _
Format:=True, MatchCase:=True, _
MatchWholeWord:=True

End With

Next MyStoryRange

If Schutz = True Then
For a = 1 To ActiveDocument.Sections.Count
If strArray(a) = 1 Then
ActiveDocument.Sections(a).ProtectedForForms = True
Else
ActiveDocument.Sections(a).ProtectedForForms = False
End If
Next
'Dokumentenschutz wieder einschalten
ActiveDocument.Protect Password:="", NoReset:=True, Type:=wdAllowOnlyFormFields
End If

'Dokument wird gespeichert und geschlossen
ActiveDocument.Save
ActiveDocument.Close
WordBasic.DisableAutoMacros 0

Next i

MsgBox „Es wurden " & anzdatei & " Datei(en) neu gespeichert!“

End Sub

Ab dem 'hier wird Test in den Dokumenten gescuht und geändert, möchte ich folgende Funktion einbauen:

ActiveWindow.View.SeekView = wdSeekCurrentPageFooter
Selection.WholeStory
Selection.PasteAndFormat (wdFormatOriginalFormatting)

Ich weiß allerdings nicht, wie ich das da einbauen kann, dass das funktioniert.
Das Suchen und Ändern kann raus und ich möchte einfach nur meine Funktion dafür da drin haben.

Vielleicht kannst du mir ja helfen?
Wäre dir für jede Hilfe dankbar, da ich nicht sooo super in VBA bin. :smile:

Gruß

Hallo enny86,

prinzipiell kann man so was schon programmieren:

Schleife über die *.dot-Dateien (z. B. mit Dir-Befehl, wenn es den noch gibt in deiner VBA-Version)

Word-Doc-Objekt setzen

dieses prüfen auf Fußzeile

wenn ja: Fußzeile ersetzen

ABER:
Damit das fehlerfrei läuft musst Du schon sehr exakt wissen, welche Dateien, wann und wo und dementsprechend sehr genau programmieren (mit Fehlerbehandlung, etc.)

Da stellt sich die Frage, ob du manuell nicht schneller bist.

Also: wenn es mehr als 100 dot’s sind, würde ich es programmieren, sonst manuell machen.

Gruß
Harry

Hi,

wenn es sich um weniger als hundert Dots handelt, empfehle ich Dir, das manuell zu machen. Jeden Tag fünf, und Du hast in zwei Arbeitswochen fünfzig Dots bearbeitet.
Begründung: aus Deiner Problembeschreibung schließe ich auf Deinen Kenntnisstand zurück. Da Word-Dokumente, die Du nicht selbst erstellt hast, ganz viele Tücken haben, könntest Du beim Selbst-Erstellen einer Automatik in ganz viele Fallen tappen. Zudem: das, was Du nachfragst, wird oft nachgefragt (es handelt sich vermutlich um den Austausch von Adreßbestandteilen oder Benutzernamen). Wenn der Ersteller der Dokumente das nicht vorbedacht hat, ist die Gefahr noch viel größer.

Gruß

Markus