Makro in vorgefertigter Briefvorlage

08/03/2009 - 12:41 von Viktoria Fragstein | Report spam
Liebe NG,

manchmal kommt es vor, dass ich mit meiner Briefvorlage begonnen habe, einen
Brief zu schreiben, da fàllt mir ein, dass der Absender ja eigentlich mein
Mann sein sollte. Damit ich nicht so viel hin- und herkopieren muss, wollte
ich die Änderung zügig mit einem Makro lösen. Dieses sollte meinen Namen und
meine Handynummer in seinen Namen und seine Handynummer àndern, da sonst ja
alles gleich ist bei uns. Dabei ist folgendes Problem aufgetreten:

Der Name kommt in meiner Briefvorlage 4 x vor: im Header, im Footer, in
einer Textbox für meine Adresszeile und die Empfàngeranschrift und als
Unterschrift unter dem Brieftext. Die Handynummer steht nur ein mal drin,
und zwar im Footer.

Das Makro habe ich folgendermaßen aufgenommen: Suchen und Ersetzen - Suchen:
Mein Name, Ersetzen: Sein Name - Alle ersetzen. Das gleiche mit der
Handynummer.

Wàhrend dem Aufnehmen des Makros werden alle 4 Namen und die Hanynummer
ersetzt. Wenn ich das Makro jedoch spàter verwenden will, wenn also die
Briefvorlage, mit der ich das Makro aufgenommen habe, schon wieder zu war
und eine neue (gleiche Vorlage) geöffnet wurde, geht das Ersetzen leider
nicht mehr richtig. Außer dem Namen als Unterschrift unter dem Brieftext
wird nàmlich nichts geàndert. Mir scheint, Suchen und Ersetzen schaut nicht
in Header, Footer und der Textbox nach, um auch dort zu ersetzen. In anderen
Briefvorlagen, die keine Kopf- und Fußzeilen oder Textboxen haben, geht mit
demselben Makro das Ersetzen wunderbar.

Wie könnte ich es erreichen, dass alle Namen, auch in den genannten
Bereichen, geàndert werden?

Vielen Dank für Eure Hilfe.


Liebe Grüße,

ViktoriaFragstein

Windows Vista Home Premium, Office 2003
 

Lesen sie die antworten

#1 Helmut Weber
08/03/2009 - 12:56 | Warnen spam
Hallo Viktoria,

Einfaches Beispiel:

Sub FindAndReplaceFirstStoryOfEachType()
Dim rngStory As Range
For Each rngStory In ActiveDocument.StoryRanges
With rngStory.Find
.Text = "find text"
.Replacement.Text = "I'm found"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Next rngStory
End Sub

Für eine Erklàrung in allen Details, siehe

http://word.mvps.org/faQs/Customiza...ywhere.htm

von wo auch das Beispiel stammt.


Gruß

Helmut Weber, MVP WordVBA

Vista Small Business, Office XP

Ähnliche fragen