gerry56
Goto Top

Den Namen der ComboBox (Kombinationsfeld) beim befüllen in Variable geben

Wie schon in meinen letzten beiden Beiträgen ersichtlich, bin ich dabei, diverse Formulare umzuschreiben.

Da ich etliche Werte wie den Namen und die Adressen bei verschiedenen Formularen benötige, sind diese Informationen in einer Dokumentenvorlage (DOT) gespeichert.
Weil es mehr als 25 Einträge zur Auswahl gibt, wurde mit der Umstellung von DropDown-Formularfeldern auf Combobox begonnen.

Ich habe es nun geschafft, daß die Comboboxen befüllt werden können.
Weshalb auch immer, genügt es nicht, den Namen der Combox in den Befehl zu integrieren.
Zum befüllen muß ich den Befehl auf "ActiveDocument.BOXNAME.AddItem ("wert1") verwenden.

z.B.
ActiveDocument.BOXNAME.AddItem ("wert1")
ActiveDocument.BOXNAME.AddItem ("wert2")
ActiveDocument.BOXNAME.AddItem ("wert3")
ActiveDocument.BOXNAME.AddItem ("wert4")
ActiveDocument.BOXNAME.AddItem ("wert5")
usw.

Nun kann es vorkommen, daß mehrere Comboboxen mit den gleichen Quellwerten befüllt werden sollen.

Es ist natürlich wartungsfreundlicher, wenn diese Quellwerte nur einmal vorhanden sind.
Daher ist es notwendig, den Namen der Combobox in eine Variable zu verpacken, und immer die gleiche Subroutine aufzurufen.

Das einfachste,
VARIABLENNAME ="BOXNAME"
"ActiveDocument.VARIABLENNAME.AddItem ("wert1")
funktioniert nicht.

Auch die zweite Variante funzt nicht.
VARIABLENNAME ="ActiveDocument.BOXNAME"
"VARIABLENNAME.AddItem ("wert1")
Leider NEIN

Der Befehl Controls funktioniert bei meinem Word 2003 auch nicht
sBox = "BOXNAME"
Controls (sBox).AddItem ("Wert12)
Leider auch NEIN

Wie kann ich die Combobox mit einer Variablen ansprechen,

Bitte um Hilfe

Danke im voraus
Gerry

Content-Key: 560851

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

Printed on: April 24, 2024 at 04:04 o'clock

Member: emeriks
Solution emeriks Mar 26, 2020 at 07:54:36 (UTC)
Goto Top
Hi,
ActiveDocument.BOXNAME
ist keine Name (String) sondern eine Objekt-Verweis. Also müsste es lauten

SET VARIABLENNAME = ActiveDocument.BOXNAME
VARIABLENNAME.AddItem ("wert1")  

E.
Member: gerry56
gerry56 Mar 26, 2020 updated at 11:44:27 (UTC)
Goto Top
Hallo emeriks

Danke für die rasche Antwort.

Leider funktioniert es bei mir nicht.
Ich erhalte nach wie vor die Fehlermeldung
"Kompilierungs-Fehler in verborgenem Modul: ThisDocument"

Zusatzinfos
Deklarieren der Variablen in der Dokumentenvorlage (DOT) im Abschnitt "Module" / "NewMacros" Kapitel "Allgemein Deklaration" nützt nichts.
Weder DIM VARIABLENNAME und auch DIM VARIABLENNAME as Object bringt keine Verbesserung

Alle 3 Subroutinen ist auch in der Dokumentenvorlage (DOT) im Abschnitt "Module" / "NewMacros" Kapitel "Allgemein" abgespeichert.

Sub 1 lautet

Sub Feld1()

set FELDVARIABLE = ActiveDocument.Empfaenger ' Empfaenger = der Name der Combobox
feldfullen ' feldfullen = der Name der Subroutine zum befüllen der Combobox
End Sub

Sub 2 lautet

Sub Feld2()

set FELDVARIABLE = ActiveDocument.Empfange2 ' Empfange2 = der Name der Combobox
feldfullen ' feldfullen = der Name der Subroutine zum befüllen der Combobox
End Sub

Sub 3 lautet

Sub feldfullen()
FELDVARIABLE.AddItem ("Wert1")
FELDVARIABLE.AddItem ("Wert2")
FELDVARIABLE.AddItem ("Wert3")
FELDVARIABLE.AddItem ("Wert4")
FELDVARIABLE.AddItem ("Wert5")
usw.
End Sub

Die Subroutinen für die Deklaration der Variablen werden NICHT in der Dokumentenforlage, sondern DIREKT in der Dormulardatei aufgerufen.
In VBA "Project (DATEINAME der FORMULARDATEI)", Abschnitt "Microsoft Word Objekte", Abschnitt "ThisDocument"
Kapitel "Document Open"
Sub Document_Open()
Feld1
Feld2
End Sub

Wo ist der Fehler?
Bitte um Hilfe
Danke im voraus

Gerry
Member: emeriks
emeriks Mar 26, 2020 at 12:47:57 (UTC)
Goto Top
Warum so kompliziert?
Feldfullen(ActiveDocument.Empfange2)

Sub Feldfullen(DasFeld)
  DasFeld.AddItem ("Wert1")  
  DasFeld.AddItem ("Wert2")  
  DasFeld.AddItem ("Wert3")  
  DasFeld.AddItem ("Wert4")  
  DasFeld.AddItem ("Wert5")  
  usw.
End Sub
Member: gerry56
gerry56 Mar 26, 2020 at 21:16:10 (UTC)
Goto Top
Es funktioniert ganz einfach nicht.
Die Fehlermeldung "Kompilierungsfehler..." bleibt
Member: gerry56
gerry56 Mar 26, 2020 at 22:07:45 (UTC)
Goto Top
Der Fehler ist vor dem Bildschirm gesessen.
Trotzdem eine kleine Kritik an ALLE Lösungsschreiber.

Der Tip von emeriks hat zu 99% zur Lösung beigetragen.
Jedoch hat emeriks vergessen, den Hinweis zu geben, daß ich den VARIABLENNAMEN in der Vorlagendatei (DOT) unter Allgemein Deklarationen mit DIM VARIABLENNAMEN as Object eintragen muß.

Ich habe das letzte Mal vor 5 Jahren mit Clipper und vor 3 Jahren mit VBA gearbeitet.
In den letzten Jahren habe ich nur mit Excel Formelprogrammierung gearbeitet.
Daher habe ich auf diese wichtige Kleinigkeit vergessen.