ich habe eine Wordvorlage in Word 2003 erstellt. Es ist ein Formular mit
verschiedenen Formularfeldern. An einer Stelle sollte eine
Dropdownliste mit ca. 60 Zeichen in einer Zeile und ca. 38 Einträgen
sein. Da ich keine Möglichkeit mit einem Dropdown-Formularfeld sehe,
habe ich es mit einer Combobox aus der Steuerelement-Palette versucht.
Die Einträge, die später auswählbar sein sollen, habe ich manuell in den
Code geschrieben.
Private Sub ComboBox1_Change()
ComboBox1.Clear
ComboBox1.AddItem " 1 Manager..."
ComboBox1.AddItem " 2 Assistent..."
ComboBox1.AddItem " 3 Sachbearbeiter..."
...
End Sub
Welche Einstellungen muss ich nun vornehmen, dass ...
1. kein Freitexteintrag möglich ist
2. die Werte der Liste erscheinen sobald ich den Dropdown-Pfeil betätige
und nicht erst, wenn ich ein Zeichen eingetragen habe
3. die Auswahl auch nach Schützen des Dokuments (mit Formulareingabe)
möglich ist
4. das Ganze auch noch in einem Dokument, das ich aus dieser Vorlage
erzeuge, funktioniert?
Würde mich sehr über eine Antwort freuen, da ich absoluter "Newbie" auf
dem Gebiet VBA bin.
Gruß
Dani
---
> Welche Einstellungen muss ich nun vornehmen, dass ...
> 1. kein Freitexteintrag möglich ist
> 2. die Werte der Liste erscheinen sobald ich den Dropdown-Pfeil betätige
> und nicht erst, wenn ich ein Zeichen eingetragen habe
> 3. die Auswahl auch nach Schützen des Dokuments (mit Formulareingabe)
> möglich ist
> 4. das Ganze auch noch in einem Dokument, das ich aus dieser Vorlage
> erzeuge, funktioniert?
---
Ich habe noch einen Punkt vergessen.
Der ausgewählte Eintrag erscheint bei mir gar nicht in dem Feld. Was
mache ich hier falsch?
Gruß
Dani
> Dropdownliste mit ca. 60 Zeichen in einer Zeile und ca. 38 Einträgen
> sein. Da ich keine Möglichkeit mit einem Dropdown-Formularfeld sehe,
> habe ich es mit einer Combobox aus der Steuerelement-Palette versucht.
oder über eine Userform
> Private Sub ComboBox1_Change()
schon mal ungünstig, da bei jeder Auswahl die Liste neu gesetzt wird und
somit die Auswahl verschwindet.
Das Füllen muss aus einer anderen Funktion heraus.
> Welche Einstellungen muss ich nun vornehmen, dass ...
> 1. kein Freitexteintrag möglich ist
Eigenschaft der Combobox:
Style: 2-frmStyleDropDownList
> 2. die Werte der Liste erscheinen sobald ich den Dropdown-Pfeil betätige
> und nicht erst, wenn ich ein Zeichen eingetragen habe
siehe 1)
> 3. die Auswahl auch nach Schützen des Dokuments (mit Formulareingabe)
> möglich ist
ist es (hier)
> 4. das Ganze auch noch in einem Dokument, das ich aus dieser Vorlage
> erzeuge, funktioniert?
sollte eigentlich
Hast Du damit andere Erfahrungen gemacht?
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
Hallo Christian,
erst einmal danke für deine Antwort.
>
> oder über eine Userform
>
der Rest des Formulars steht aber eigentlich schon in einem
Word-Formular. Ich würde nur ungern alles in ein Userform umschreiben.
>> Private Sub ComboBox1_Change()
>
> schon mal ungünstig, da bei jeder Auswahl die Liste neu gesetzt wird und
> somit die Auswahl verschwindet.
>
> Das Füllen muss aus einer anderen Funktion heraus.
>
Wie sollte das dann richtigerweise heißen?
>> Welche Einstellungen muss ich nun vornehmen, dass ...
>> 1. kein Freitexteintrag möglich ist
>
> Eigenschaft der Combobox:
> Style: 2-frmStyleDropDownList
>
Geht klar versuche ich gleich mal.
>> 2. die Werte der Liste erscheinen sobald ich den Dropdown-Pfeil betätige
>> und nicht erst, wenn ich ein Zeichen eingetragen habe
>
> siehe 1)
>
ist das auf die Überschrift bezogen?
>> 3. die Auswahl auch nach Schützen des Dokuments (mit Formulareingabe)
>> möglich ist
>
> ist es (hier)
>
ok
>> 4. das Ganze auch noch in einem Dokument, das ich aus dieser Vorlage
>> erzeuge, funktioniert?
>
> sollte eigentlich
>
> Hast Du damit andere Erfahrungen gemacht?
>
Leider ja, als ich ein neues Dokument auf Basis dieser Vorlage erstellt
habe, war gar nichts mehr im Code.
>>> Private Sub ComboBox1_Change()
>> schon mal ungünstig, da bei jeder Auswahl die Liste neu gesetzt wird und
>> somit die Auswahl verschwindet.
>> Das Füllen muss aus einer anderen Funktion heraus.
> Wie sollte das dann richtigerweise heißen?
Du musst die Combobox füllen wenn das Dokument angelegt wird. Also ein Makro
mit dem Namen 'AutoNew()' in einem Modul in der Dokumentvorlage drin anlegen
(vielleicht benötigst du auch noch AutoOpne() zum Überarbeiten des
Dokuments).
oder
Document_NE und Document_open verwenden
>>> 2. die Werte der Liste erscheinen sobald ich den Dropdown-Pfeil betätige
>>> und nicht erst, wenn ich ein Zeichen eingetragen habe
>>
>> siehe 1)
>>
> ist das auf die Überschrift bezogen?
Nein, Christian meint, das kommt dann automatisch. Wenn du die ComboBox im
richtigen Ereignis füllst, dann stehen die Werte dann eben auch schon drin,
wenn du sie gerne hättest.
>>> 4. das Ganze auch noch in einem Dokument, das ich aus dieser Vorlage
>>> erzeuge, funktioniert?
>> sollte eigentlich
>> Hast Du damit andere Erfahrungen gemacht?
> Leider ja, als ich ein neues Dokument auf Basis dieser Vorlage erstellt
> habe, war gar nichts mehr im Code.
Der Code ist auch nicht im Dokument drin, der bleibt in der Dokumentvorlage
drin, diese ist Verknüpft und somit bleibt der Code im Zugriff (solange die
Dokumentvorlage erreichbar ist).
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP2), Office XP (SP3)