Combobox in anderem Worksheet auffüllen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kilo_echo
Beiträge: 2
Registriert: So, 31.03.2013 00:09

Combobox in anderem Worksheet auffüllen

Beitrag von kilo_echo »

Hallo Experten,

Ich habe wirklich schon viele Artikel zum Thema Combobox Füllen in Calc Basic gelesen, aber keiner konnte mir den entscheidenden Tipp geben, was ich falsch mache.
Mein Problem hat einen etwas anderen Aspekt als in allen gefundenen Artikeln...

Das folgende möchte ich erreichen (vereinfachtes Basic Makro in Calc):
Beim Betätigen einer Schaltfläche soll ein einzelnes Element einer Combobox hinzugefügt werden.
Dies ist mein Code, der durch die Schaltfläche ausgelöst wird:

Code: Alles auswählen

Sub ButtonPush
mySheet1 = thisComponent.Sheets.getByName("Sheet1")
myComboControl = mySheet1.DrawPage.Forms.GetByName("MyForm").getByName("Combo1")
myController = thisComponent.GetCurrentController()
myCombo = myController.getControl(myComboControl)    'Hier tritt der Fehler auf
myCombo.additem("Entry",0)
end sub	
Der funktioniert auch wunderbar, solange die auslösende Schaltfläche auf dem selben Worksheet ist wie die zu füllende Combobox.
Wenn diese aber auf verschiedenen Sheets liegen, bekomme ich die Fehlermeldung com.sun.star.container.NoSuchElementException in der im Code gekennzeichneten Zeile.

Was mache ich falsch? Sachdienliche Hinweise sind absolut willkommen.

Danke
KE
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Combobox in anderem Worksheet auffüllen

Beitrag von F3K Total »

Hi,
ich denke, du solltest vielleicht zwischenzeitlich kurz das aktive Tabellenblatt wechseln, ala:

Code: Alles auswählen

Sub ButtonPush
    mySheet1 = thisComponent.Sheets.getByName("Sheet1")
    myComboControl = mySheet1.DrawPage.Forms.GetByName("MyForm").getByName("Combo1")
    myController = thisComponent.GetCurrentController()
    mycurrentsheet = myController.activesheet
    myController.activesheet = mySheet1
    myCombo = myController.getControl(myComboControl)    'Hier tritt der Fehler auf
    myCombo.additem("Entry",0)
    myController.activesheet = mycurrentsheet
end sub

Gruß R
kilo_echo
Beiträge: 2
Registriert: So, 31.03.2013 00:09

Re: Combobox in anderem Worksheet auffüllen

Beitrag von kilo_echo »

Hallo R,

wow, so einfach, aber man muss erst mal draufkommen...
Herzlichen Dank für den Griff unter die Arme. Genau das, was ich gesucht habe.

Gruss
Kai
Antworten