Textmarke leeren

  • Word

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Panter.

    Textmarke leeren

    Hallo,

    ich benötige bitte eure Hilfe. Ich habe einen Briefkopf in Word erstellt mt Textmarken.
    Ich kann die Userform mit dieser ich dann die Textmarken befülle auch aufrufen und es klappt alles gut soweit.

    Allerdings wenn ich einen Brief erneut mit neuem Absender ausfüllen möchte, fügt er den über die UserForm an den alten Absender wieder an.

    Da ich Neuling in VBA bin, würde ich mich sehr über eure Hilfe freuen.

    Hier ist auch der Code welcher genutzt wird beim Ausführen:

    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. Dim Anrede As Range
    3. Set Anrede = ActiveDocument.Bookmarks("Anrede").Range
    4. Anrede.Text = Me.TextBox1.Value
    5. Dim Vorname As Range
    6. Set Vorname = ActiveDocument.Bookmarks("Vorname").Range
    7. Vorname.Text = Me.TextBox3.Value
    8. Dim Nachname As Range
    9. Set Nachname = ActiveDocument.Bookmarks("Nachname").Range
    10. Nachname.Text = Me.TextBox2.Value
    11. Dim Straße As Range
    12. Set Straße = ActiveDocument.Bookmarks("Straße").Range
    13. Straße.Text = Me.TextBox4.Value
    14. Dim PLZ As Range
    15. Set PLZ = ActiveDocument.Bookmarks("PLZ").Range
    16. PLZ.Text = Me.TextBox5.Value
    17. Dim Ort As Range
    18. Set Ort = ActiveDocument.Bookmarks("Ort").Range
    19. Ort.Text = Me.TextBox7.Value
    20. Me.Repaint
    21. UserForm1.Hide
    22. End Sub



    HERZLICHEN DANK VORAB!

    Code-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Hi
    benutze doch Dokumentenvariablen anstelle von Bookmarks.

    Visual Basic-Quellcode

    1. 'Erstellen
    2. On Error Resume Next: ActiveDocument.Variables.Add ("Lala"): On Error GoTo 0
    3. 'Füllen
    4. ActiveDocument.Variables.Item("Lala").Value = "Hello World " + Format(Now, "hh:mm:ss")
    5. 'Refreshen
    6. ActiveDocument.Fields.Update
    Hallo,

    vielen Dank für den Ansatz.

    Ich hätte halt gerne das eine UserForm aufgeht und diese befüllt wird.
    Dann klick ich entweder auf abbrechen oder übernehmen und dann ist das Ding drin oder nicht.

    Wenn ich das mit den Bookmarks mache geht das. Bei Field kann ich das nicht in die Userform setzen oder wie gehts das? Sorry das ist das erste mal das ich mit VB arbeite... ;)

    Liebe Grüße
    Hallo Barni83

    Könntest Du das Problem nicht wie folgt umgehen:
    Das Dokument als Dokumentvorlage mit Makros speichern. Beim Öffnen wird dann immer ein neues Dokument erstellt, und die Vorlage eben nicht überschrieben.

    Dokumentvorlagen kannst Du wie folgt erstellen: Speichern unter und dann einfach unten das Format auswählen.

    Ansonsten finde ich Dokumentenvariablen eine guten Idee von DaWo.

    LG Panter

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Panter“ ()

    DaWo schrieb:

    Hi
    benutze doch Dokumentenvariablen anstelle von Bookmarks.

    Visual Basic-Quellcode

    1. 'Erstellen
    2. On Error Resume Next: ActiveDocument.Variables.Add ("Lala"): On Error GoTo 0
    3. 'Füllen
    4. ActiveDocument.Variables.Item("Lala").Value = "Hello World " + Format(Now, "hh:mm:ss")
    5. 'Refreshen
    6. ActiveDocument.Fields.Update


    Vielen Dank!

    Könntet Ihr mir helfen wo genau oich das rein setze? Ich bin wie geschrieben ganz neu was VB angeht.
    Würde mich sehr freuen!

    LG
    Hallo Barni83

    - Zuerst müsstest Du die Felder in dein Dokument einfügen. Das geht wie folgt:
    Einfügen – Schnellbausteine - Feld

    Kategorie – Alle
    Feldname DocVariable
    Neuer Name (Hier manuell der Name des Feldes eintragen z.B Anrede)
    Wiederholen für alle Felder..

    Danach das Makro ersetzen - Ich konnte es leider nicht testen, hoffe es funktioniert.





    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. With ActiveDocument.Variables
    3. 'Hinzufügen von Variablen, dies ist eigenlich nur 1 x nötig, kann dann gelöscht werden...
    4. On Error Resume Next
    5. .Add ("Anrede")
    6. .Add ("Vorname")
    7. .Add ("Nachname")
    8. .Add ("Straße")
    9. .Add ("PLZ")
    10. .Add ("Ort")
    11. On Error GoTo 0
    12. .Item("Anrede").Value = Me.TextBox1.Value
    13. .Item("Vorname").Value = Me.TextBox3.Value
    14. .Item("Nachname").Value = Me.TextBox2.Value
    15. .Item("Straße").Value = Me.TextBox4.Value
    16. .Item("PLZ").Value = Me.TextBox5.Value
    17. .Item("Ort").Value = Me.TextBox7.Value
    18. ActiveDocument.Fields.Update
    19. End With
    20. UserForm1.Hide
    21. End Sub