ich suche nun schon wer weiß wie lange in den verschiedensten Internetseiten und Dokumenten nach einer Lösung für mein Problem.
Ich lese die Namen der vorhandenen Sheets und möchte diese als Liste einer Combobox in einem Dialog übergeben. Die Namen werden zwar gelesen, aber die Combobox erhält nichts. Nur "ctl.setText("XX") funktioniert. Hier der Code:
Code: Alles auswählen
Sub Main
Dim oDocument As Object, oSheet As Object, oCell As Object, dlg As Object, ctl As Object
Dim iStartdatum As Date, iEndedatum As Date, iStartzeit As Date, iEndezeit As Date, iSumme As Currency
Dim sSelektion As String
Dim iSheets As Integer, i As Integer, oTmpObject As Object
Dim sTmp As String
oDocument=ThisComponent
iSheets=oDocument.Sheets.count
DialogLibraries.LoadLibrary("Standard")
dlg = CreateUnoDialog(DialogLibraries.Standard.Auswahldialog)
ctl = dlg.getControl("cbSheets")
ctl.removeItems(0, iSheets)
For i = 0 to iSheets-1
oTmpObject=oDocument.Sheets(i)
ctl.addItem(oTmpObject.Name, i)
Next i
Select Case dlg.Execute()
Case 0
'abbruch
Case 1
'ok
End Select
End Sub
EDIT: Jetzt bin ich schon weiter. Ich hatte im Dialogeditor die Eigenschaft "Nur lesen" auf "ja" gesetzt. Ich habe das auf "nein" geändert und nun wird die Liste auch gefüllt. Nun muss ich noch herausfinden, wie ich die Kombobox nach dem Befüllen auf Readonly setzen muss und wie ich vorher oder nachher das erste Element selektiere.
Seufzende Grüße