gerry56
Goto Top

Auswahlfeld mit mehr als 25 Begriffen in Wordtext verarbeiten

Wie schon im Titel ersichtlich, habe ich ein Problem mit Word.

Vom Prinzip her würde ein Kombinationsfeld meine Ansprüche erfüllen.
Aber leider nur vom Prinzip her.

Erstens ist der angezeigte Text mit 50 Zeichen begrenzt und zweitens sind im Kombinationsfeld maximal 25 Einträge möglich.

Ich habe aber 70 Auswahlmöglichkeiten, die beim Start vom Worddokument in das Auswahlfeld geladen werden sollten.
Je nachdem, welcher Eintrag gewählt wird, sollen bestimmte Textteile mit anderen Werten im Worddokument ausgefüllt werden.

Das Dokument wird auf einem PC mit Word 2003 und auf einem anderen PC mit Word 2007 verwendet.
Als Betriebssystem wird Windows 7 verwendet.
Bei der Suche im WWW habe ich bis jetzt keine funktionierende Lösung gefunden.

Bitte um Hilfe

Danke im voraus
Gerry

Content-Key: 560036

Url: https://administrator.de/contentid/560036

Printed on: April 20, 2024 at 03:04 o'clock

Member: StefanKittel
StefanKittel Mar 21, 2020 at 23:11:09 (UTC)
Goto Top
Hallo,

bist Du Dir mit den 25 Einträgen sicher?
Ich war der Meinung mittels VBA in Word auch mehr als hundert verwendet zu haben.
Ist allerdings Word 2003/2007 gewesen... also schon älter.

Bau doch eine zweitelige Liste auf und nimm zwei Dropdown-Listen
Option1-Privat
Option1-Firma
Option2-Telefon
Option2-Post

In der 1. ist Option1 und Option2 und in der 2. je nach Auswahl Privat/Firma oder Telefon/Post

Stefan
Member: gerry56
gerry56 Mar 21, 2020 at 23:20:57 (UTC)
Goto Top
Danke für die rasche Antwort.

Es sind über 70 Empfänger, und es werden mehr.
Das bedeutet, daß die Liste erweiterbar sein muß.
Am Anfang waren es 20 Empfänger. Da hat die Dropdownliste genügt. Danach wurde eine zweite Dropdownliste erstellt.
Da die Empfänger mehr werden, und sich die Daten bei den Empfängern ändern können, ist eine dritte, vierte Auswahlliste keine Option.
Member: StefanKittel
StefanKittel Mar 22, 2020 at 00:25:21 (UTC)
Goto Top
ne....
Die 1. Dropdown enthält die Buchstaben A-Z (ohne Y sind das 25)
Die 2. Dropdown enthält dann die Namen für den Buchstaben im 1. Dropdown

Im 1. Dropdown ist "M" ausgewählt
Im 2. Downdown sind Mayer, Muster, ...etc verfügbar
Member: gerry56
gerry56 Mar 22, 2020 at 00:35:59 (UTC)
Goto Top
Hallo Stefan.

So habe ich es ja momentan.
Zuerst hat es mit zirka 20 Personen und 1 Auswahlfeld angefangen.
Danach waren es mehr als 25 und ein zweites Auswahlfeld mußte her.

Doch das ist erstens optisch nicht schön anzusehen, wenn für 1 Abfrage nebeneinander zwei (oder noch mehr) Auswahlfelder zur Verfügung stehen.
Zweitens sieht das nach einer stümperhaften Hobbyprogrammierung aus.

Aus diesen beiden Gründen möchte ich die Formulare so umgestalten, daß von den 70 Namen die gewünschte Personen in einem einzigen Listenfeld ausgewählt werden kann.

Gerry
Member: StefanKittel
StefanKittel Mar 22, 2020 updated at 00:45:32 (UTC)
Goto Top
Zurück zum Ursprungsthema.
bei mir sind 100 Einträge kein Problem.

Private Sub CommandButton1_Click()
    
    ComboBox1.AddItem ("Test1")  
    
    For intRow = 1 To 100
      ComboBox1.AddItem ("Test" + CStr(intRow))  
    Next intRow
    
End Sub

1

PS: 1000 funktionieren auch
Member: gerry56
gerry56 Mar 22, 2020 updated at 15:46:48 (UTC)
Goto Top
Das funktioniert bei mir nicht.
Wie oben geschrieben.
Ich arbeite mit Word 2003 und Word 2007.

Da es verschiedene Formulare gibt, die teilweise ident sind, gibt es eine Dokumentenvorlage, die auch im besagten Dokument verwendet wird.
Kann dies das Problem sein?
Member: gerry56
gerry56 Mar 22, 2020 at 17:36:41 (UTC)
Goto Top
Hallo StefanKittel.

Ich komme der Lösung näher.
Das teuflische bei Word ist, daß es 2 VERSCHIEDENE Auswahlfelder gibt, die in der Symbolleiste IDENTE Symbole haben.

Da gibt es das DropDown Formularfeld mit der Beschränkung von 25 Einträgen
und das Kombinationsfeld (ComboBox)

Das DropDown-Formularfeld wird ganz einfach mit "Element hinzufügen" befüllt.
Beim Kombinationsfeld ist eine ZUSÄTZLICHE Schaltfläche notwendig.

Frage 1.
Kann das Befüllen der Combobox nicht automatisch OHNE Schaltfläche beim öffnen des Dokumentes erfolgen?
Damit wäre der unangenehme Nebeneffekt weg, daß durch jeden Klick auf die zusätzliche Schaltfläche die Combobox zusätzlich nochmals befüllt wird. Daher werden die Einträge verdoppelt.

Frage 2.
Wie kann ich den ausgewählten Eintrag im Formular auswerten.

Z. B. Wenn der 4. Eintrag Huber Hans ausgewählt wird, soll der Text mit männlichen Anreden ausgefüllt werden, und bei der Empfängeradresse soll natürlich die richtige Adresse mit der richtigen Postleitzahl eingetragen werden.

Danke im voraus
Member: gerry56
gerry56 Mar 22, 2020 updated at 20:27:39 (UTC)
Goto Top
Für alle, die das gleiche Problem haben.

Der dritte Beitrag von StefanKittel (22.03.2020, aktualisiert um 01:45 Uhr) hat zwar mein Problem NICHT gelöst.
Trotzdem hat dieser Beitrag zur Problemlösung beigetragen.
Die für mich wichtigste Erkenntniß in diesem Zusammenhang war, daß StefanKittel erwähnte, daß 100, ja sogar 1000 Einträge möglich sind. Aus diesem Grund sah ich mir die Funktionen und Schaltflächen in Word genauer an und testete.

Das "DropDown Formularfeld" FUNKTIONIERT NICHT.
Symbol "Kombinationsfeld" (ComboBox) anklicken

In "VisualBasic" (VBA) das Project (Dateiname) / Microsoft Word Objekte / ThisDocument auswählen.
Abschnitt "Document" öffnen

Sub Document_Open()
ComboBox1.AddItem ("Test+1")
ComboBox1.AddItem ("Test*2")
ComboBox1.AddItem ("Test+3")
ComboBox1.AddItem ("Test+4")
ComboBox1.AddItem ("Test+5")
ComboBox1.AddItem ("Test+6")
ComboBox1.AddItem ("Test+7")

End Sub

ComboBox1 muß eventuell durch die Bezeichnung der Auswahlbox (Kombinationsfeld) ersetzt werden.
Test+ ist jener Text, der in der Auswahlliste von der Auswahlbox (Kombinationsfeld) angezeigt werden soll.

Wird die Befüllung hier eingetragen, muß kein "CommandButton" installiert werden.

Damit die ausgewählten Einträge in einem Text anzeigt werden können, sind folgende Varianten möglich.

Private Sub ComboBox1_Change()
TextBox1 = ComboBox1.Value
TextBox2 = ComboBox1.ListIndex
ActiveDocument.FormFields("testindex").Result = ComboBox1.Value
ActiveDocument.FormFields("testindex").Result = ComboBox1.ListIndex
End Sub

ComboBox1 muß eventuell durch die Bezeichnung der Auswahlbox (Kombinationsfeld) ersetzt werden.
ComboBox1.Value zeigt den in der Auswahl angezeigten Wert (Inhalt) an
ComboBox1.ListIndex zeigt den Indexwert in der Auswahlliste an

Mein Problem ist daher gelöst.
Gerry