Seite 1 von 1
Selektion aus Listbox Makro starten
Verfasst: Sa, 10.03.2007 00:22
von turtle47
Hallo Zusammen,
habe mal wieder ein Problem.
Mit folgendem Code rufe ich in einem Dialog bei einer Auswahl aus einer Listbox andere Makros auf:
Code: Alles auswählen
Sub StartDialog1
DialogLibraries.LoadLibrary("Extras")
oForm = DialogLibraries.Extras.Dialog1
oDialog = createUnoDialog(DialogLibraries.Extras.Dialog1)
oDialog.execute
end sub
Sub MeinMakro
BasicLibraries.LoadLibrary("Extras")
inhalt = oDialog.GetControl("ListBox1")
Select Case inhalt.selectedItem
Case "Erster Eintrag"
Makro1
Case "Zweiter Eintrag"
Makro2
End Select
End Sub
Das funktioniert einwandfrei.
Wie muss der Code lauten wenn sich die Listbox sich nicht in einem Dialog befindet
sondern sich direkt in einem Tabellenblatt befindet.
Habe bei meiner Suche nur Beispiele gefunden die mir Ergebnisse in Verbindung
mit Dialogen angezeigt haben.
Vielen Dank im Vorraus.
Jürgen
Verfasst: Sa, 10.03.2007 09:05
von Toxitom
Hey Jürgen,
na ja, im Grunde so ähnlich
Wenn sich die Listbox direkt im Dokument befindet, ist sie immer Teil eines Formulars. Also musst du Sie zuerst so erhalten (Bsp Calc, Tabelle1, 1. Formular):
Code: Alles auswählen
oCtr = thisComponent.sheets.getByName("Tabelle1").drawpage.forms(0).getByName("Listbox1")
Die Listbox selbst hat jetzt diverse Eigenschaften, unter anderem die "SelectedItems", immer als Array (Short). Auf der anderen Seite gibt es die StringItemList - als Array. Diese listet die Inhalte der Listbox auf. Aus beiden kombiniert erhälst du die gewählten Einträge:
Code: Alles auswählen
dim aListe()
dim aSelektion()
aListe = oCtl.stringItemList 'die Liste der Einträge
aSelektion = oCtl.selectedItems 'die Liste (positionen) der gewählten Einträge
msgbox aListe(aSelection(0)) ' erster gewählter eintrag
Na ja, und der Rest ist dann wie gehabt...
Gruss Thomas
Verfasst: Sa, 10.03.2007 12:54
von turtle47
Hi Thomas
ersmal Danke für die Ausführungen bekomme das aber trotzdem nicht hin.
Irgendwie stehe ich mit den Objektvariablen auf Kriegsfuss.
Wähle ich jetzt einen Eintrag in der Listbox dann kommt an folgender Stelle:
eine Fehlermeldung.
Obektvariable nicht gefunden
Habe es mal so versucht zuzuweisen:
Leider ohne Erfolg.
Kann es sein das die Listbox1 nicht gefunden wird?
Freue mich auf Antwort.
Viele Grüße
Jürgen
Verfasst: Sa, 10.03.2007 13:30
von Karolus
Hallo Jürgen
Evtl. liegt daran das ein 'r' eben kein 'l' ist:
(falls du den Code von Thomas etwas zu unkritisch übernommen hast):
Code:
oCtr =
aListe = oCtl......
falls nicht, entschuldige die dumme Antwort, falls doch - sowas passiert mir auch immer wieder .
Gruß Karo
Verfasst: Sa, 10.03.2007 14:19
von turtle47
Hallo Karolus,
Du hast Recht gehabt.
Evtl. liegt daran das ein 'r' eben kein 'l' ist:
Wer lesen kann ist eben klar im Vorteil.
sowas passiert mir auch immer wieder
Wo gehobelt wird da fallen Späne.
Thomas schrieb:
Na ja, und der Rest ist dann wie gehabt...
Code: Alles auswählen
.
.
.
aListe = oCtr.stringItemList 'die Liste der Einträge
aSelektion = oCtr.selectedItems 'die Liste (positionen) der gewählten Einträge
aListe(aSelection()) ' erster gewählter eintrag
inhalt = oCtr.aSelection("Listbox1")
Select Case inhalt.selectedItem
Case "Test"
Makro1
Case "Hallo"
Makro2
End Select
End Sub
Kommt aber wieder eine Fehlermeldung an der Stelle:
Eigenschaft oder Methode nicht gefunden.
Was ist nun schon wieder los?
Viel Grüße
Jürgen
Verfasst: Sa, 10.03.2007 16:11
von Toxitom
Hey Jürgen,
erst mal sorry für die "Buchstaben-Missmatch", passiert im schnellen Tippen
Zum Code:
Was soll das denn sein?
Also, zurück: Mein Code sollte dir den ersten gewählten eintrag in einer Msgbox anzeigen lassen, den kannst du dann natürlich auch in eine Varaible packen - und mit der weiterarbeiten....
Es müsste dan so aussehen:
Code: Alles auswählen
dim aListe()
dim aSelektion()
aListe = oCtl.stringItemList 'die Liste der Einträge
aSelektion = oCtl.selectedItems 'die Liste (positionen) der gewählten Einträge
sInhalt = aListe(aSelection(0)) ' erster gewählter eintrag
Select Case sInhalt
Case "Test"
Makro1
Case "Hallo"
Makro2
End Select
Viele Grüße
Thomas
Verfasst: Sa, 10.03.2007 17:49
von turtle47
Hi Thomas,
das mit dem Verstaben buchwechseln ist doch kein Problem.
Zum Code:
"mea culpa".
Irgendwann verstehe auch
ich es.
Aber das wird wohl noch ne ganze Weile dauern.
An beide vielen Dank und schönes Restwochenende.
Jürgen