Tenho uma macro que adiciona dados à lista de uma ComboBox/Caixa de combinação em uma planilha, fora de um diálogo. Coloquei para ativar a macro sempre que seleciono o Combobox, porém a listagem está se repetindo pelo fato de não atualizar, e sim, adicionar dados.
Creio que tenha duas saídas: ou a própria macro atualiza a listagem em vez de apenas adicionar, ou cria-se outra macro para limpar a listagem quando a combobox perder o foco. Entretando, não sei nenhuma das duas hehe.
Segue a macro:
Sub ProcurarNomes()
Dim Inc as Integer
Dim sItem as String
Dim oComboBox As Object
Dim oCurs As object
Dim LastRow&
Dim oCelula As Object, oCmbox As Object, oSheet As Object
oSheet = ThisComponent.Sheets.getByName("ALFA") 'Planilha em uso'
oForm = oSheet.DrawPage.Forms(0) '1° Formulário'
oCmbox = oForm.getByName("ProcurarNomes") 'Nome do combobox'
Combobox = ThisComponent.getCurrentController.getControl( oCmbox )
oCurs = oSheet.createCursor()
oCurs.gotoEndOfUsedArea(False)
LastRow = oCurs.getRangeAddress().EndRow + 1
For Inc = LastRow to 6 step -1
sItem = oSheet.getCellByPosition( 1,Inc ).String
oCombobox.additem( sItem,0 )
Next Inc
End Sub
Tentei usar oCombobox.Model.removeAllItems
mas quando rodo a primeira macro novamente, continua repetindo a listagem (ex: se a primeira macro for executada 4x, a listagem da ComboBox aparecerá repetida 4x).