Word Speichern m. autom. Dateinamen aus Textfelder

Hi Leutz,

ich bräuchte mal ganz kurz Eure Hilfe zu einem kleinem VBA-Problem. Ich habe in der PC-Welt-Seite ein Script gefunden, dass es mir ermöglicht den vorgeschlagegenen Dateinamen beim Speichern-unter-Dialog zu ändern, z.B. auf die Betreffzeile.

Wenn ich also einen Brief geschrieben habe und den speichern will, kommt automatisch die Betreffzeile als Dateiname.

Jetzt wollte ich das ganze etwas verfeinern und muß offen zugeben, ich bin einfach etwas zu blöd dazu, weil ich mich mit VBA nicht auskenne.

Mein Problem: Der Vorschlagsname soll sich aus folgenden Elementen zusammenbauen:

Themenbereich + Dokumentenart + Quellform + Kontaktland + Kontaktname + Betreff

Das sieht dann z.B. so aus:
Beruf-Bewerbung-Word-CH-XY AG-Bewerbung als XY.doc

Die Begriffselemente Themenbereich, Dokumentenart etc… sind eigentlich fast statisch, auf die kommt es mir jetzt nicht so an. ABER der Kontaktname ist mir wichtig und macht mir Probleme beim Hinzugfügen in die Dateinamenszeile.

Ich habe bisher folgenden Code geschrieben:

Sub FileSaveAs() ’

ActiveDocument.Shapes(1).TextFrame.TextRange.Select
Betreff = Selection
l = Len(Selection) - 1
Betreff = Left(Selection, l)
Themenbereich = „Beruf-“
Dokumentenart = „Brief-“
Quellform = „Word-“
Kontaktland = „DE-“
Kontaktname = „Textfeld2-“
With Dialogs(wdDialogFileSaveAs)
.Name = Themenbereich + Dokumentenart + Quellform + Kontaktland + Kontaktname + Betreff
.Show
End With

End Sub

Da wo jetzt Kontaktname = „Textfeld2-“ steht, sollte nun aus dem zweiten Textfeld der Text entnommen werden. Ich versuchte nun, dass über ActiveDocument.Shapes(2).TextFrame.TextRange.Select zu lösen, dass funzt aber nicht.

Kann mir jemand hier helfen???

Merci

Flo

Hallo Flo,

kommt jetzt drauf an, woran Word erkennen soll was der gewünschte Text ist, also wodurch sich der vom Rest des Dokumentes unterscheidet.

Ich nehme mal an du hast eine Textmarke für den entsprechenden Text definiert. Dann kommst du an den Text darin so ran:

Msgbox ActiveDocument.Bookmarks(„tm_Kontakt“).Range.Text

(wenn die Textmarke tm_Kontakt heisst natürlich, sonst einfach den Namen hier anpassen)

Gruß
Daniel