Kombinationfeld mit Liste verknüpfen Combobox
Moderator: Moderatoren
Kombinationfeld mit Liste verknüpfen Combobox
Hallo an Alle,
ich suche schon den ganzen Tag -aber ich finde keine direkte Lösung:
In einem Dialog habe ich eine Combobox. Ich weiß nicht wie ich diese mit einem Bereich verknüpfe.
Ich arbeite in Tabelle1. Dort rufe ich den Dialog auf. In der Combobox soll der Bereich Tabelle2.C4:C1000 stehen.
Wenn möglich doppelte Einträge rauslassen und alphabetisch.
Wie mache ich das? Ich habe keine Ahnung, da in den Eigenschaften des Kombinationsfeldes keine Verknüpfungsmöglichkeit ist, komme ich nicht weiter. Ich muss wohl ein Makro dem Ereignis <Beim Auslösen> hinterlegen(?) aber welches? ?
Danke für Hilfe
ich suche schon den ganzen Tag -aber ich finde keine direkte Lösung:
In einem Dialog habe ich eine Combobox. Ich weiß nicht wie ich diese mit einem Bereich verknüpfe.
Ich arbeite in Tabelle1. Dort rufe ich den Dialog auf. In der Combobox soll der Bereich Tabelle2.C4:C1000 stehen.
Wenn möglich doppelte Einträge rauslassen und alphabetisch.
Wie mache ich das? Ich habe keine Ahnung, da in den Eigenschaften des Kombinationsfeldes keine Verknüpfungsmöglichkeit ist, komme ich nicht weiter. Ich muss wohl ein Makro dem Ereignis <Beim Auslösen> hinterlegen(?) aber welches? ?
Danke für Hilfe
Grüße aus Niedersachsen,
Achimgr
Re: Kombinationfeld mit Liste verknüpfen Combobox
Hallo Archimgr!
Du hast recht mit der Annahme, dass im Dialog eine ComboBox per Makro mit Daten gefüllt werden muss.
Für deinen Fall könnte das Makro wie folgt aussehen. Mangels einer Testdatei konnte ich es allerdings nicht testen.
Die Daten sollten natürlich schon alphabetisch vorliegen, wenn nicht, vorher sortieren. Dann kannst du relativ leicht auch doppelte Einträge rausfiltern.
Gruß
Charly
Du hast recht mit der Annahme, dass im Dialog eine ComboBox per Makro mit Daten gefüllt werden muss.
Für deinen Fall könnte das Makro wie folgt aussehen. Mangels einer Testdatei konnte ich es allerdings nicht testen.
Code: Alles auswählen
Sub ComboBoxfuellen()
Dim Liste(0)
oCB = oDialog.getControl("NameDerComboBox")
Tab = Doc.Sheets.getbyName("Tabelle2")
For I = 3 to 999
Zelle = Tab.getCellbyPosition(2,I)
Daten = Zelle.string
If I > 0 then
redim preserve Liste(I)
end if
Liste(I) = Daten
next
oCB.addItems(Liste(),0)
end sub
Gruß
Charly
Re: Kombinationfeld mit Liste verknüpfen Combobox
Hallo Charly
Ein kleiner Verbesserungsvorschlag, weil ich mich gerade mit einenem ähnlichen Problem beschäftigt habe, der 'for..next'-Block lässt sich schöner mit folgendem darstellen:
Der Tabellenbereich ist ein 2dimensionaler Datenarray (zeilen*spalte) der nur in die 1dimensionale Liste übertragen wird.
Gruß Karo
Ein kleiner Verbesserungsvorschlag, weil ich mich gerade mit einenem ähnlichen Problem beschäftigt habe, der 'for..next'-Block lässt sich schöner mit folgendem darstellen:
Code: Alles auswählen
...
abereich() = tab.getcellrangebyname("C4:C1000").getdataarray
dim Liste(ubound(abereich))
for I = 0 to ubound(abereich)
Liste(I) = abereich(I)(0)
next
...
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Kombinationfeld mit Liste verknüpfen Combobox
Danke Karolus!
Das muss ich mir fürs nächste mal merken.
Gruß
Charly
Das muss ich mir fürs nächste mal merken.
Gruß
Charly
Re: Kombinationfeld mit Liste verknüpfen Combobox
Hallo Charly
danke für deine Hilfe. Aber irgendwas habe ich falsch gemacht.
Ich habe den Code in ein neues Module2 kopiert, Comboboxname geändert und der Combobox das Makro "bei Fokuserhalt" hinterlegt. Der Dialog ist auch "Dialog2"
Nun heißt es beim aufrufen des Dialogs:
"BASIC Laufzeitfehler
Objektvariable nicht belegt"
Markiert im Code ist dies:
> oCB = oDialog.getControl("ComboBox1")
Dann erscheint der Dialog mit der Combobox und diese ist - Spannung! ............ - leer. Autsch.
Was ist da falsch? Ich habe bei "... oDialog" mal ne "2" drangehängt - war auch nix.
Gruß Achim
danke für deine Hilfe. Aber irgendwas habe ich falsch gemacht.
Ich habe den Code in ein neues Module2 kopiert, Comboboxname geändert und der Combobox das Makro "bei Fokuserhalt" hinterlegt. Der Dialog ist auch "Dialog2"
Nun heißt es beim aufrufen des Dialogs:
"BASIC Laufzeitfehler
Objektvariable nicht belegt"
Markiert im Code ist dies:
> oCB = oDialog.getControl("ComboBox1")
Dann erscheint der Dialog mit der Combobox und diese ist - Spannung! ............ - leer. Autsch.
Was ist da falsch? Ich habe bei "... oDialog" mal ne "2" drangehängt - war auch nix.
Gruß Achim
Grüße aus Niedersachsen,
Achimgr
Re: Kombinationfeld mit Liste verknüpfen Combobox
Hallo Achim!
Mehr kann ich, ohne deine Datei zu kennen auch nicht sagen.
Gruß
Charly
Das besagt der Variablen "oDialog" ist zu diesem Zeitpunkt nicht das Objekt "Dialog" zugewiesen. Das kann zwei Ursachen haben.achimgr hat geschrieben: "BASIC Laufzeitfehler
Objektvariable nicht belegt"
Markiert im Code ist dies:
> oCB = oDialog.getControl("ComboBox1")
Du schreibst dein Dialog heißt "Dialog2". Dann darfst du natürlich weder oDialog noch oDialog2 nehmen, sondern wirklich nur den von dir gewählten Namen. Das gilt natürlich auch für den Namen der Combobox.achimgr hat geschrieben: "oDialog" mal ne "2" drangehängt - war auch nix
Damit die, für den Dialog stehende Variable, in allen Subs gültig ist, muss sie außerhalb einer SUB deklariert sein. Wenn du das Teilprogramm in einem anderen Modul hast, als den Start-Dialog-Sub, muss deine Variable sogar als Public oder Global deklariert sein, damit sie auch im andern Modul wirksam wird.achimgr hat geschrieben: Ich habe den Code in ein neues Module2 kopiert
Mehr kann ich, ohne deine Datei zu kennen auch nicht sagen.
Gruß
Charly
Re: Kombinationfeld mit Liste verknüpfen Combobox
Hallo Achim!
Ich habe mal aus einem größeren Projekt, die Teile, die eine Combobox betreffen, auf eine neue Datei übertragen.
Da kannst du sehen, wie sowas ausschauen muss.
Gruß
Charly
Ich habe mal aus einem größeren Projekt, die Teile, die eine Combobox betreffen, auf eine neue Datei übertragen.
Da kannst du sehen, wie sowas ausschauen muss.
Gruß
Charly
- Dateianhänge
-
- Beispiel_Combobox.ods
- (17.6 KiB) 150-mal heruntergeladen
Re: Kombinationfeld mit Liste verknüpfen Combobox
Danke Charly,
ich muss mich da noch durchkämpfen um alle Zusammenhänge zu verstehen, aber das ist Klasse.
Vielen Dank!
ich muss mich da noch durchkämpfen um alle Zusammenhänge zu verstehen, aber das ist Klasse.
Vielen Dank!
Grüße aus Niedersachsen,
Achimgr