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-ID: 560851

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

Ausgedruckt am: 18.11.2024 um 09:11 Uhr

emeriks
Lösung emeriks 26.03.2020 um 08:54:36 Uhr
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.
gerry56
gerry56 26.03.2020 aktualisiert um 12:44:27 Uhr
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
emeriks
emeriks 26.03.2020 um 13:47:57 Uhr
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
gerry56
gerry56 26.03.2020 um 22:16:10 Uhr
Goto Top
Es funktioniert ganz einfach nicht.
Die Fehlermeldung "Kompilierungsfehler..." bleibt
gerry56
gerry56 26.03.2020 um 23:07:45 Uhr
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.