Kombinationfeld mit Liste verknüpfen Combobox

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Kombinationfeld mit Liste verknüpfen Combobox

Re: Kombinationfeld mit Liste verknüpfen Combobox

von achimgr » Do, 26.03.2009 16:25

Danke Charly,
ich muss mich da noch durchkämpfen um alle Zusammenhänge zu verstehen, aber das ist Klasse.
Vielen Dank!

Re: Kombinationfeld mit Liste verknüpfen Combobox

von Charly » Mi, 18.03.2009 10:11

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
Dateianhänge
Beispiel_Combobox.ods
(17.6 KiB) 150-mal heruntergeladen

Re: Kombinationfeld mit Liste verknüpfen Combobox

von Charly » Mi, 18.03.2009 07:57

Hallo Achim!
achimgr hat geschrieben: "BASIC Laufzeitfehler
Objektvariable nicht belegt"
Markiert im Code ist dies:
> oCB = oDialog.getControl("ComboBox1")
Das besagt der Variablen "oDialog" ist zu diesem Zeitpunkt nicht das Objekt "Dialog" zugewiesen. Das kann zwei Ursachen haben.
achimgr hat geschrieben: "oDialog" mal ne "2" drangehängt - war auch nix
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: Ich habe den Code in ein neues Module2 kopiert
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.

Mehr kann ich, ohne deine Datei zu kennen auch nicht sagen.

Gruß
Charly

Re: Kombinationfeld mit Liste verknüpfen Combobox

von achimgr » Di, 17.03.2009 20:52

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

Re: Kombinationfeld mit Liste verknüpfen Combobox

von Charly » Mo, 16.03.2009 19:29

Danke Karolus!

Das muss ich mir fürs nächste mal merken.

Gruß
Charly

Re: Kombinationfeld mit Liste verknüpfen Combobox

von Karolus » Mo, 16.03.2009 17:20

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:

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
...
Der Tabellenbereich ist ein 2dimensionaler Datenarray (zeilen*spalte) der nur in die 1dimensionale Liste übertragen wird.

Gruß Karo

Re: Kombinationfeld mit Liste verknüpfen Combobox

von Charly » Mo, 16.03.2009 07:43

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.

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
Die Daten sollten natürlich schon alphabetisch vorliegen, wenn nicht, vorher sortieren. Dann kannst du relativ leicht auch doppelte Einträge rausfiltern.
Gruß
Charly

Kombinationfeld mit Liste verknüpfen Combobox

von achimgr » Fr, 13.03.2009 17:20

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

Nach oben