Word 2010 Briefvorlage für mehrere Benutzer erstellen

  • geschlossen
  • Word

  • Snip3r
  • 4276 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Word 2010 Briefvorlage für mehrere Benutzer erstellen

    Hallo zusammen,
    ich hab folgendes Problem. Ich soll eine Briefvorlage für mehrere Benutzer erstellen.
    Das ganze soll so funktionieren, dass der Benutzer seinen Benutzernamen in ein Fillin Feld eingibt und anschließend seine Daten (Vorname + Nachname, Telefonnummer, E-Mail Adresse und sein Kurzzeichen) im Brief erscheinen. Alternativ könnte das ganze auch über den Windows Benutzernamen laufen.

    Ich hab das ganze schon mit IF versucht, allerdings klappt das nur, wenn der Benutzer die entsprechenden Bereiche markiert und F9 drückt, was ich dem Benutzer leider nicht zumuten kann. Von VBA habe ich leider kaum Ahnung, ich kann das höchstens lesen und verstehen. ;)

    Wer kann mir helfen?

    Danke & gruß
    snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Interessant, kannte ich gar nicht Feldfunktionen: Fill-In-Feld - Word - Office.com Ich habe bisher aus älteren Versionen die Textformularfelder benutzt. Die sind jetzt in den Entwickleroptionen zu den Steuerelementen gewandert.

    Der Benutzername, den jeder Benutzer beim ersten Start von Word eingibt, ist in den Optionen auf der ersten Seite gespeichert, darunter die Initialen. Das ist nicht der Windows-Benutzername. Schau dir mal die Felder USERNAME und AUTHOR an.

    Von wo sollen die ganzen Daten herkommen? Hast du irgendwo eine Exceltabelle, wo zu jedem Namen die Telefonnummer, Emailadresse und das Kurzzeichen hinterlegt sind? Wenn ja, lässt sich ein Benutzer eindeutig anhand des Kurzzeichens identifizieren? Oder doch lieber über "Vorname Nachname"?

    Oder soll der Benutzer jedes Mal alle seine Daten in einem Dialogfenster eingeben, wenn er die Vorlage öffnet?

    Das wären die zwei Alternativen, die mir zu Formularfeldern einfallen. Da benutzt man allerdings F11, um zum nächsten Feld zu springen. Kannst du mir erklären, was du mit F9 meinst?

    Gruß

    FeliX_22
  • Hey,
    danke für deine Antwort.
    Bisher hatte ich es folgendermaßen:

    Quellcode

    1. { ASK username "Username:" \d "{ FILLIN "Bitte geben Sie Ihren Benutzernamen ein:" }" }
    Das hatte für mich den Sinn, dass ich eine Variable vergeben habe (username) und gleichzeitig beim Öffnen der Vorlage das Fillin Feld aufgerufen wird. Denn blöderweise werden ASK Felder nur aufgerufen wenn man sie markiert und F9 bzw. rechtsklick "Wert aktualisieren" oder so ähnlich drückt. Genauso verhält es sich wohl mit IFs
    Anschließend hatte ich eine verschachtelte IF Bedingung:

    Quellcode

    1. { IF username = "abc123" "Max Mustermann, TELEFON, EMAIL" IF username = "def123" "M. Muster, TELEFON, EMAIL" "Unbekannter Benutzername!" }

    Da es insgesamt etwas mehr als 10 Benutzer für die Vorlage gibt, habe ich mich für diesen (unschönen) weg entschieden.

    Problem an der ganzen Sache ist, dass ASK und IF Felder nur durch F9 aktualisiert werden, was dem Standardbenutzer nicht zumutbar ist.

    Bei meiner Internetsuche bin ich auf ein Codeschnippsel gestoßen, bei dem man die ganzen Benutzerdaten (bei mir: Telefon, E-Mail, Name und Kurzzeichen) in den VBA Code reinschreibt:

    Quellcode

    1. Private Sub Document_New()
    2. Dim nachname As String, vorname As String, email As String
    3. Dim akt_anwender As String
    4. akt_anwender = Environ("Username")
    5. On Error GoTo fehler
    6. Select Case akt_anwender
    7. Case Is = "pfallerpaul"
    8. nachname = "Pfaller"
    9. vorname = "Paul"
    10. email = "p.pfaller@firma.de"
    11. 'case is .....
    12. 'nachname = ....
    13. 'vorname = ....
    14. 'email = ....
    15. '....
    16. Case Else
    17. MsgBox "Dieser Anwender ist unbekannt"
    18. Exit Sub
    19. End Select
    20. With ActiveDocument
    21. .Bookmarks("nachname").Range.Text = nachname
    22. .Bookmarks("vorname").Range.Text = vorname
    23. .Bookmarks("email").Range.Text = email
    24. End With
    25. Exit Sub
    26. fehler:
    27. If Err.Number = 5941 Then
    28. MsgBox "Eine der benötigten Textmarken fehlt!"
    29. Else
    30. MsgBox Err.Description & " - " & Err.Number
    31. End If
    32. End Sub
    Alles anzeigen
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Ja, und? Dann ist das Problem doch erledigt, wenn du an die entsprechenden Stellen im Dokument die Textmarken einfügst. Geht es nur noch um F9? Wird das Dokument nach dem VBA-Code nicht aktualisiert? Dann häng noch eine Zeile am Schluss ran:

    Selection.Fields.Update

    Verstehe das Problem nicht. Wenn du den Code und die Textmarken hast, dann vergiss doch die ganzen Felder und das F9.

    Gruß

    FeliX_22
  • FeliX_22 schrieb:

    Ja, und? Dann ist das Problem doch erledigt, wenn du an die entsprechenden Stellen im Dokument die Textmarken einfügst.
    Das ist das Problem, ich weiß nicht wie das mit den Textmarken gehen soll.
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Noch nicht gelöst?

    - An die Stelle, wo der Vorname reinkommt, klicken.
    - Einfügen - Textmarke - Als Textmarkenname vorname eingeben
    - Auf Hinzufügen klicken
    - Mit den anderen Textmarken wiederholen
    - Alt + F11 drücken
    - Strg + R drücken, damit der Projektexplorer eingeblendet ist
    - ThisDocument suchen, aber nicht unter Normal, sondern unter dem Namen der Vorlage
    - Auf ThisDocument doppelklicken
    - Deinen VBA-Code einfügen
    - VBA-Fenster schließen
    - Word-Datei speichern und schließen
    - Datei neu öffnen und staunen

    Gruß

    FeliX_22