Über Dropdown Schnellbaustein laden

Spelmann

Erfahrenes Mitglied
Hallo,

kennt in Word 2007 jemand einen Weg abhängig von der Auswahl einer Dropdownliste bestimmte Schnellbausteine einzufügen?

Vielen Dank.
 
Hi,

keine Ahnung ob es das ist was du dir vorgestellt hast, aber ich hätte da vielleicht was.

Im Dokument setzt du den Courser an die Stelle an der die Autotext-Einträge erscheinen sollen.
Dann gehst du im Menü auf Einfügen -> Feld und wählst dort aus der Kategorie "Verknüpfungen und Verweise" den Eintrag "AutoTextList" aus.
In das Feld in dem dann der Feldbefehl erscheint gibst du in doppelten Anführungszeichen den Text ein der im Dokument erscheinen soll, z.B. "AutoText Liste" und klickst auf OK. Wenn gewünscht kannst du zusätzlich noch den Schalter "\t" (ohne Anführungszeichen) und dahinter einen Hilfetext angeben (wobei der Hilfetext wieder in Anführungszeichen stehen muss).

Wenn du nun im Dokument das Feld mit der rechten Maustaste anklickst, erscheint eine Liste mit all deinen gespeicherten AutoText Bausteinen.
 

Anhänge

  • autotextliste.jpg
    autotextliste.jpg
    69,6 KB · Aufrufe: 156
Hi tombe,

ist leider nicht ganz das was ich gesucht habe, aber trotzdem interessant. Danke.
In Word 2007 wurden ja wie ich es verstehe die AutoText Einträge von den Schnellbausteinen verdrängt.

Ich dachte nun über eine Dropdownliste aus den Steuerelementen auch komplexe Schnellbausteine mit vormatierten Tabellen und einigem Pipapo dynamisch laden zu können.

Denn immerhin findet man in den Dropdown Eigenschaften neben dem Anzeigenamen auch die Möglichkeit hier einen Wert zuzuordnen. Ich dachte diesen für die Ansteuerung von REF Feldern nutzen zu können.

Nach dem Model: Wenn in Liste Kirsche gewählt dann erscheint in Feld 1 rot und in Feld 2 süss.

Aber is wohl nicht.
Hab auch nach ausführlicher Recherche nix gefunden.
 
Mal sehen ob es da nicht doch noch eine andere Lösung gibt.

Willst du die Liste direkt im Dokument platzieren oder kommt auch eine VBA Lösung in Frage wo die Liste in einer UserForm ist?

Und sollen wirklich die Textbausteine wie zum Beispiel "Mit freundlichen Grüßen" usw. verwendet werden oder willst du für diese Aufgabe extra solche Kombinationen wie oben verwenden?

Gruß Thomas
 
Ich beschreib mal worum es geht.
Ich möchte eine Wordvorlage *.dotx erstellen. Diese Vorlage ist in den statischen Teilen ein Geschäftsbrief.

Darüber hinaus enthält die Vorlage eine Dropdownliste (gewissermaßen als Betreffzeile) die das Dokument nach entsprechender Auswahl als Rechnung, als Angebot, als Mahnung oder Anfrage usw. ausweist. Insgesamt 7 Anforderungen. Die Dropdownliste ist ein Inhaltssteuerlement aus der Registerkarte Entwicklertools.

Je nachdem welcher dieser Einträge gewählt wurde sollen nun, in dem bis jetzt sonst leeren Dokument, unterschiedlich formatierte Inhalte geladen werden.
Eine Tabelle mit offenen Posten einer Mahnung sieht dann anders aus als eine Angebotsliste zum Beispiel.

Im weitesten Sinne gibts das ja sogar als eigenständiges Steuerlement, das es mir möglich macht ganze Schnellbausteine anzuwählen. Aber das Ganze händelt sich recht klobig.

Mit VBA und Makros hab ich noch nix gemacht. Interessiert mich aber.
Um so mehr, wenns eine Lösung bereit hält.

Kurz gesagt, statt je einer Vorlage für jeden Zweck soll der Nutzer nur eine Vorlage im Vorlagenverzeichnis haben, die er per Mausklick zum Objekt seiner Begierde umwandeln kann.

Wie ich das als Webanwendung programmieren müsste weiß ich. Aber Word ist mir da oft noch ein Buch mit sieben Siegeln.
 
Also ich hätte da vielleicht was für dich.

- Du erstellst eine neue Vorlage (ohne Inhalt) und wechselst in den VBA-Editor.
- Dort erstellst du eine UserForm, im Beispiel hat diese den Namen "UserForm1".
- In die Form platzierst du ein Listenfeld und gibst ihm den Namen "ComboBox1"
- Dann kopierst du den Code so wie er ist in die jeweilige Prozedur


Visual Basic:
Private Sub ComboBox1_Change()
    Selection.InsertFile FileName:=ComboBox1.Value & ".dotx", Range _
    :="", ConfirmConversions:=False, Link:=False, Attachment:=False
End Sub


Private Sub UserForm_Initialize()
    UserForm1.ComboBox1.AddItem "Angebot"
    UserForm1.ComboBox1.AddItem "Auftragsbestätigung"
    UserForm1.ComboBox1.AddItem "Bestellung"
    UserForm1.ComboBox1.AddItem "Gutschrift"
    UserForm1.ComboBox1.AddItem "Lieferschein"
    UserForm1.ComboBox1.AddItem "Mahnung"
    UserForm1.ComboBox1.AddItem "Rechnung"
End Sub

Damit die Form gleich beim Öffnen dieses Dokuments sichtbar wird, kannst du ebenfalls im VBA-Editor noch beim Dokument selber folgenden Code eingeben:

Visual Basic:
Private Sub Document_Open()
    UserForm1.Show
End Sub

In diesem Beispiel gibt es jetzt in der Liste zur Auswahl "Angebot", "Auftragsbestätigung", "Bestellung, "Gutschrift", "Lieferschein", "Mahnung" und "Rechnung" (damit sind es nun auch 7).

Wird nun ein Eintrag in der Liste angeklickt wird im Change Ereignis aus diesem Wert der Dateiname gebildet "Angebot.dotx", "Auftragsbestätigung.dotx" usw.

Du musst somit für jeden Eintrag in der Liste eine entsprechende Vorlage erstellen und ihr den Namen geben der in der Liste als Auswahl steht.

Hoffe mal das du damit das gewünschte Ziel erreichst.

Gruß Thomas
 
Wenn es damit klappt und du/ihr im Netzwerk tätig seid, dann kannst du ja für alle die selbe Vorlage(n) erstellen und irgendwo auf dem Server ablegen.

In diesem Fall einfach noch den Pfad mit angeben:

Visual Basic:
Selection.InsertFile FileName:="X:\Server\Dokumente\Vorlagen\" & ComboBox1.Value & ".dotx"

Den Pfad natürlich entsprechend anpassen.

Du hast mit dieser Lösung dann zwar doch mehrere Vorlagen. Doch wenn sich daran mal was ändert sind die Änderungen sicher so wesentlich schneller erledigt als wenn man das alles in VB Code packen würde.
 
Jetzt gibts nur noch eine kleine Hürde.

Word unterscheidet ja zwei Prozesse. Ich kann die Vorlagendatei selbst öffnen und bearbeiten oder ein auf ihr basierendes Dokument erstellen.

Wenn ich die Vorlagendatei Vorlagen.dotm die den VB Code enthält öffne, bekomme ich eine Sicherheitswarnung die mich darauf hinweist, das die Makros deaktiviert sind. Ich kann dann auf "Diesen Inhalt aktivieren" klicken und alles funktioniert.

Speichere ich meine Vorlagendatei und die Zieldateien aber im Vorlagenverzeichnis und versuche dann über Neu > Meine Vorlagen > Vorlagen.dotm auf Basis dieser Vorlage eine Datei zu erstellen, wird das Skript wohl nicht ausgeführt. Jedenfalls bekomme ich die Kombobox nicht angezeigt.

Habe ich was vergessen?

NACHTRAG:
Wahrscheinlich habe ich die Anweisung
Code:
Private Sub Document_Open()
    UserForm1.Show
End Sub
falsch eingesetzt.
 
Zuletzt bearbeitet:
Sorry, mein Fehler.

Bei einer Vorlage darf die Anweisung zum Anzeigen der UserForm nicht in die Open-Prozedur sondern muss in die New-Prozedur geschrieben werden:

Visual Basic:
Private Sub Document_New()
    UserForm1.Show
End Sub

Private Sub Document_Open()
'hier muss es raus und da oben muss es rein.
'dann hat es bei mir geklappt
End Sub

NACHTRAG:

Visual Basic:
Private Sub ComboBox1_Change()
    Selection.InsertFile FileName:=ComboBox1.Value & ".dotx", Range _
    :="", ConfirmConversions:=False, Link:=False, Attachment:=False
'Diese Zeile sollte noch rein. Sonst wird die Form nach dem Erstellen des neuen Dokuments nicht ausgeblendet.
    Unload UserForm1
End Sub
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück