Makro Textmarke als Dateiname

Hallo zusammen,

da ich mich mit Makros nicht so gut auskenne, hoffe ich, dass ihr mir weiterhelfen könnt.

Ich habe ein Worddokument, das Textmarken enthält. Diese werden mit Daten aus Excel gefüllt. Soweit, so gut… Bis dahin funktioniert auch alles.

Jetzt möchte ich, dass dieses Dokument unter einem bestimmten Pfad („C:\Angebote\“) und unter einem bestimmten Namen abgespeichert wird.

Als Name soll der Inhalt einer Textmarke („Angebotsnummer“) dienen.

Optimal wäre es, wenn das Dokument auch noch unter einem zweiten Pfad („E:\Briefe\“) als PDF abgespeichert werden könnte…

Zur Erläuterung:

Nach dem Befüllen der Textmarken sind diese noch vorhanden (werden als ][ angezeigt), können allerdings nicht ausgelesen werden. Die Angebotsnummer wird also aus Excel übertragen, anscheinend aber hinter die Textmarke geschrieben. Ihr merkt sicher schon, ich bin ein absoluter Laie…

Verwendet wird übrigens Word 2007

Würd mich freuen, wenn ihr mir weiterhelfen könnt…

Falls ihr weitere Infos braucht – einfach Bescheid geben !

Vielen Dank schon mal im Voraus

DaFranz

Hi Franz,

Verständnisfragen:

  • wo stehen diese ][ nach dem Befüllen? Wird der Befüll_stoff_ von diesen eingerahmt oder stehen sie links oder rechts vom Befüllstoff?

  • öffne die Datei vor dem Befüllen, löse den Befüllvorgang aber keinesfalls aus und drücke Alt+F9 (also die Alt-Taste und die F9-Taste gleichzeitig). Was steht an den Befüllstellen:
    { MERGEFIELD irgendwas } oder
    { FORMFIELD } oder
    nix, aber immer noch diese Klammern?

Gruß

Markus

Hallo Markus,

dieses „Textmarkenzeichen“ steht nach dem Befüllen aus Excel links von dem eingefügten Werten.
Bei Unbefüllt und Alt F9 steht nix da…

VG

dieses „Textmarkenzeichen“ steht nach dem Befüllen aus Excel
links von dem eingefügten Werten.
Bei Unbefüllt und Alt F9 steht nix da…

Hallo Franz,

probiere das mal.

Alt+F11, Einfügen–Modul, Code reinkopieren, Editor schließen.
Alt+F8, Makro „TM“ ausführen lassen.

Wie „befüllst“ du eigentlich aus Excel in eine Textmarke oder dahinter?

Option Explicit

Sub TM()
Dim BM As Bookmark, colBM(2) As New Collection, N As Long
With ThisDocument
 For Each BM In .Bookmarks
 colBM(0).Add "Textmarke: " & BM.Name
 colBM(1).Add "Inhalt: " & BM.Range.Text
 BM.Select
 Selection.MoveRight Unit:=wdCharacter, Count:=Len(BM.Range.Text)
 Selection.MoveRight Unit:=wdCharacter, Count:=10, Extend:=wdExtend
 colBM(2).Add "Dahinter: " & Selection.Range.Text
 Next BM
 Documents.Add
 For N = 1 To colBM(0).Count
 Selection.TypeText Text:=colBM(0)(N)
 Selection.TypeParagraph
 Selection.TypeText Text:=colBM(1)(N)
 Selection.TypeParagraph
 Selection.TypeText Text:=colBM(2)(N)
 Selection.TypeParagraph
 Selection.TypeParagraph
 Next N
End With
End Sub

Gruß
Reinhard

Hallo Reinhard,

aus Excel werden die Werte wie folgt übertragen:

appWD.Selection.Goto What:=wdGoToBookmark, Name:=„Monate“
appWD.Selection.TypeText Text:=monate$

Wenn ich das reinkopiere, bekomme ich immer einen Syntaxfehler (bei: Selection.MoveRight Unit:=wdCharacter,)

VG

Hallo Franz,

aus Excel werden die Werte wie folgt übertragen:

appWD.Selection.Goto What:=wdGoToBookmark, Name:=„Monate“
appWD.Selection.TypeText Text:=monate$

warum zeigst du nicht bei deiner Anfrage den Code und weist daraufhin daß du auf diese Art mit Excel „befüllst“?
So wie ich den Code deute selektierst du die textmarke und fügst an der Selektonsstelle, also NACH der Textmarke irgenwas ein was in der Variablen monate steht.

Ohne kenntnis dessen schrieb ich dir Code der aufzeigen sollte ob das was du eingefügt hast in der Textmarke ist, also der Text der Textmarke ist oder ob das Eingefügte nach der Textmarke steht.

Darauf gehst du mit keinem Wort ein.
Was soll das? Willste Hiulfe oder nicht? Wenn ja, dann mach bitte nicht so weiter sonst klinke ich mich aus.

Wenn ich das reinkopiere, bekomme ich immer einen Syntaxfehler
(bei: Selection.MoveRight Unit:=wdCharacter,)

Habe ich eine Glaskugel. Weiß ich wo du da was reinkopierst?
Und logisch ergibt
Selection.MoveRight Unit:=wdCharacter,
einen Syntaxfehler weil nach dem Komma was fehlt oder das Komma weg muß wenn man den darauf folgenden Parameter weglassen darf.

Zeige bitte mal den Komplettcode.

Gruß
Reinhard

VG

Hallo Reinhard,

glaub mir, das lezte, was ich möchte, ist, hier jemanden zu verärgern…
Sorry, falls doch !
Zu Deiner Antwort:

warum zeigst du nicht bei deiner Anfrage den Code und weist
daraufhin daß du auf diese Art mit Excel „befüllst“?
So wie ich den Code deute selektierst du die textmarke und
fügst an der Selektonsstelle, also NACH der Textmarke irgenwas
ein was in der Variablen monate steht.

Ja, das ist richtig…

Ohne kenntnis dessen schrieb ich dir Code der aufzeigen sollte
ob das was du eingefügt hast in der Textmarke ist, also der
Text der Textmarke ist oder ob das Eingefügte nach der
Textmarke steht.

Darauf gehst du mit keinem Wort ein.
Was soll das? Willste Hiulfe oder nicht? Wenn ja, dann mach
bitte nicht so weiter sonst klinke ich mich aus.

Würde mich freuen, wenn du mir trotzdem weiterhilfst. Ich dachte eigentlich, dass ich diese Frage beantwortet hätte, aber das ist wohl schiefgegangen. mit

Wenn ich das reinkopiere, bekomme ich immer einen Syntaxfehler
(bei: Selection.MoveRight Unit:=wdCharacter,)

habe ich gemeint, dass ich den kompletten Code nach deiner Anleitung eingefügt habe und beim Ausführen an der angegebenen Stelle (den Ausschnitt, den ich angegeben hatte) die Syntax-Fehlermeldung bekommen habe.

Habe ich eine Glaskugel. Weiß ich wo du da was reinkopierst?
Und logisch ergibt
Selection.MoveRight Unit:=wdCharacter,
einen Syntaxfehler weil nach dem Komma was fehlt oder das
Komma weg muß wenn man den darauf folgenden Parameter
weglassen darf.

Zeige bitte mal den Komplettcode.

Kann ich morgen nachliefern…
(Du meinst den Code, mit dem aus Excel die Daten an Worddokument weitergegeben werden?)

Gruß
Reinhard

VG

VG
Franz

Hallo Franz,

glaub mir, das lezte, was ich möchte, ist, hier jemanden zu
verärgern…
Sorry, falls doch !

ich habe das in den falschen hals bekommen und die drei Codezeilen einem mir unbekannten Code zugerechnet. Verzeih mir.

Wenn ich das reinkopiere, bekomme ich immer einen Syntaxfehler
(bei: Selection.MoveRight Unit:=wdCharacter,)

habe ich gemeint, dass ich den kompletten Code nach deiner
Anleitung eingefügt habe und beim Ausführen an der angegebenen
Stelle (den Ausschnitt, den ich angegeben hatte) die
Syntax-Fehlermeldung bekommen habe.

Kann ich nicht nachvollziehen.

Hier eine Doc wo es funktioniert.
Die zwei Textmarken, T1 und T2 werden nicht angezeigt obwohl es in den Optionen angehakt ist textmarken angezeigt. Aber es siind Textmarken und sie werden auch zur Auswahl angeboten wenn man bei „Gehe zu“ Textmarke auswählt.

Aus dem Grund habe ich jeweils die beiden Zeichen, zwischen denen die jeweilige textMarke ist, gefärbt.

Die datei:
http://www.file-upload.net/download-3686862/kwtextm…

Wenn es also nur um Probleme mit meinen Code geht, brauche ich natürlich keinen anderen.

Nochmals sorry, ich lese manchmal nur flüchtig und reagiere dann spontan wie ich grad denke und wenn ich da halt grad falsch denke bzw. kaum denke mehr reagiere… :frowning:

Gruß
Reinhard

so, jetzt klappt´s…
hab jetzt das „Problem“ so umgangen, dass ich einfach vor und hinter der Textmarke, die ich auslesen will, jeweils eine neue Textmarke gesetzt hab und nun den Text dazwischen auslesen lasse…
gibt sicherlich schönere lösungen, aber hauptsache, es klappt irgenwie - und das tut´s nun… :smile:
das abspeichern unter dem richtigen pfad mit richtigem namen funktioniert.
Vielen Dank für die Hilfe !!!

VG
Franz