Tenho um Combobox com valores e quero obter a posição de um item. Seria uma uma função como .ListIndex do VBA Excel que faz referência direta a posição do item escolhido. Sei que é possível realizar essa operação atraves de um comando For, mas quero minimizar o tamanho do código.
Bom dia,
Quando você quer o índice (posição) do item na lista, o melhor é usar uma Listbox. É só desenhá-la e definir a propriedade Suspensa como Sim. Em seguida, no código acessar a propriedade SelectedItemPos conforme o exemplo:
Estou assumindo que o listbox “Caixa de listagem 1” está na Planilha1:
Sub Main
oDoc = ThisComponent
oControlador = oDoc.CurrentController
oForm = oDoc.Sheets.getByName("Planilha1").DrawPage.Forms(0)
oListBox = oForm.getByName("Caixa de listagem 1")
oListBoxView = oControlador.getControl(oListBox)
nPos = oListBoxView.SelectedItemPos
msgbox "Índice (posição): " & nPos,,"ListBox"
End Sub
Atte,
O problema e que o listbox não me dá a aparência desejada. Essa ideia do Listbox é boa quero com o Combobox. Grato
@Amaral, o que você quer dizer por aparência desejada? No LibreOffice, o listbox e o combobox podem ser bastante similares em aparência. Veja .
Sua ideia é ótima, mas eu quero digitar digitar, como no Combobox do Excel. A lista suspensa não possibilita digitar. O objetivo é digitar e identificar se determinado valor pertence ou não ao Combobox. Caso pertença, as informações, dependente deste Combobox, serão preenchidas em caso de não pertencer um botão dará a opção de inserir o item que não consta. Eu estou fazendo isso em uma Caixa de Diálogo BASIC.