Como Preencher um ComboBox com VBA
Vamos aprender através desse artigo um passo a passo completo de como preencher um ComboBox no Excel (Caixa de Combinação) com VBA.
Embora, semelhante com a Validação de Dados suspensa, através da ComboBox podemos automatizar essas informações.
Em resumo, vamos destacar as formas mais utilizadas.
Como preencher um ComboBox com .RowSource
A maneira mais fácil que encontramos para isso é através da propriedade .RowSource, conforme abaixo:
- Crie um novo formulário através do seu Visual Basic.
- Através desse formulário insira uma ComboBox.
- Clique sobre seu ComboBox e acesse o seu módulo.
- Insira o código VBA abaixo.
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Plan1!A1:A10"
End Sub
Em resumo, com o código acima, vamos trazer todos os dados da Plan1 com seleção de A1:A10 dentro de nossa Caixa de Combinação.
Através do UserForm_Initialize toda vez que acessarmos o formulário nossa ComboBox será atualizada.
Utilizando: Loop Do Until
Em segundo lugar, para substituir código anterior, podemos utilizar laço de repetição.
Private Sub UserForm_Initialize()
linha = 2
Do Until Sheets("Plan1").Cells(linha, 1) = ""
ComboBox1.AddItem Sheets("Plan1").Cells(linha, 1)
linha = linha + 1
Loop
End Sub
No entanto, considero esse código de loop mais completo para inserir em nossa ComboBox visto que ele confere as linhas em branco.
Em resumo, através da ferramenta Do Until ele vai percorrer todas as linhas enquanto a condição estiver verdadeira.
For Each (Sem duplicidade)
Por último, temos a alternativa mais completa em termos de benefício, pois além de preencher a ComboBox, remove as duplicadas.
Private Sub UserForm_Initialize()
Dim ul As Integer, colect As New Collection
Dim Value As Variant, a As Variant
On Error Resume Next
'localiza a última linha da coluna 1
ul = Cells(Rows.Count, 1).End(xlUp).Row
a = Sheets("Plan1").Range("B2:B" & ul).Value
For Each Value In temp
If Len(Value) > 0 Then colect.Add Value, CStr(Value)
Next Value
For Each Value In area
'Insere itens no ComboBox
ComboBox1.AddItem Value
Next Value
Set colect = Nothing
End Sub
Portanto, concluímos aqui nossas 3 melhores formas de preencher um ComboBox no Excel.
Se você tem, ou conhece alguma outra maneira de preencher o ComboBox deixe aqui nos comentários.