VBA ComboBox

ComboBoxes permite que os usuários selecionem uma opção em uma lista do menu suspenso. ComboBoxes podem ser criados em UserForms VBA ou com uma planilha do Excel. Neste tutorial, você aprenderá como criar e manipular ComboBoxes em VBA e em planilhas do Excel.

Se você quiser aprender como criar uma caixa de listagem, clique aqui: Caixa de listagem VBA

Se você quiser aprender como criar uma caixa de seleção, clique aqui: Caixa de seleção VBA

Crie uma ComboBox na planilha do Excel

Para inserir uma ComboBox na planilha, você precisa ir para o Guia do desenvolvedor, clique Inserir e em Controles ActiveX escolha Caixa combo:

Imagem 1. Insira uma ComboBox na Planilha

Ao selecionar a ComboBox que inseriu, você pode clicar em Propriedades debaixo de Guia do desenvolvedor:

Imagem 2. Altere as propriedades do ComboBox

Aqui você pode definir diferentes propriedades do ComboBox. Para começar, mudamos o atributo Nome para cmbComboBox. Agora, podemos usar o ComboBox com este nome no código VBA.

Preencher uma ComboBox no código VBA

Primeiro, precisamos preencher o ComboBox com valores. Na maioria dos casos, uma ComboBox precisa ser preenchida quando a pasta de trabalho é aberta. Por conta disso, precisamos colocar um código para preencher o ComboBox no objeto Livro de exercícios, procedimento Abrir. Este procedimento é executado sempre que um usuário abre a pasta de trabalho. Aqui está o código:

123456789 Com Sheet1.cmbComboBox.Adicionar item "John".Adicionar item "Michael".Adicionar item "Jennifer".Adicionar item "Lilly".Adicionar item "Robert"Terminar com

Ao clicar no menu suspenso, você terá 5 nomes para escolher (John, Michael, Jennifer, Lilly e Robert):

Imagem 3. Preencha o ComboBox em VBA

Preencher uma ComboBox a partir de um intervalo de células

Outra forma possível de preencher uma ComboBox é permitir que um usuário faça isso. Uma ComboBox pode ser vinculada ao intervalo de células. Nessa abordagem, toda vez que um usuário inserir um novo valor no intervalo de células, o ComboBox será atualizado com esse valor.

Se você quiser habilitar isso, você deve ir para o Propriedades da ComboBox e definir o atributo ListFillRange para o intervalo de células (no nosso caso E2: E5):

Imagem 4. Preencha a ComboBox a partir do intervalo de células

Vinculamos nosso ComboBox ao intervalo E2: E5, onde colocamos os nomes que desejamos (Nathan, Harry, George, Roberta). Como resultado, o ComboBox agora é preenchido com estes nomes:

Imagem 5. ComboBox preenchido a partir do intervalo de células

Obtenha um item selecionado de uma ComboBox no VBA

O objetivo de um ComboBox é permitir a escolha do usuário. Para recuperar uma escolha do usuário, você precisa usar este código:

123 Dim strSelectedItem As VariantstrSelectedItem = Folha1.cmbComboBox.Value

A seleção de usuários está no atributo Valor do Sheet1.cmbComboBox objeto. Este valor é atribuído à variável strSelectedItem:

Imagem 6. Obtenha um valor selecionado da ComboBox em VBA

Nós selecionamos Julia no ComboBox e execute o procedimento. Como você pode ver na Imagem 5, o valor do strSelectedItem é Julia, que é o valor que selecionamos. Agora você pode processar essa variável mais adiante no código.

Limpar uma ComboBox

Se você deseja limpar uma ComboBox no VBA, você precisa usar Claro método de Sheet1.lstComboBox objeto. Isso excluirá todos os itens da ComboBox. Aqui está o código:

1 Sheet1.cmbComboBox.Clear

Quando executamos o código, obtemos o ComboBox vazio:

Imagem 7. Limpe o ComboBox

Use uma ComboBox em um formulário de usuário

Como mencionamos, o Combobox é mais frequentemente usado em Userforms. Para explicar como você pode fazer isso, primeiro inseriremos um formulário de usuário. No editor VBA, clique com o botão direito no nome do módulo, clique em Inserir e escolher UserForm:

Imagem 8. Insira um formulário de usuário

Para exibir os controles de inserção, você precisa habilitar o Caixa de ferramentas. Para fazer isso, clique noCaixa de ferramentas ícone na barra de ferramentas. Depois disso, você terá as janelas com todos os controles disponíveis. Você pode clicar em Caixa combo para criá-lo no formulário do usuário.

Imagem 9. Insira uma ComboBox no formulário do usuário

Vamos nomear o ComboBox cmbComboBox. Para preenchê-lo com valores, precisamos colocar o seguinte código no método Inicializar do objeto UserForm:

12345678910111213 Sub UserForm_Initialize privado ()Com UserForm1.cmbComboBox.Adicionar item "John".Adicionar item "Michael".Adicionar item "Jennifer".Adicionar item "Lilly".Adicionar item "Robert"Terminar comEnd Sub

Este código é acionado sempre que um usuário executa o Userform e preenche o Combobox com estes 5 nomes:

Imagem 10. O ComboBox com valores no formulário do usuário

Se você deseja obter o valor selecionado do ComboBox, você precisa usar a mesma lógica para o Combobox em uma planilha, que é explicada anteriormente neste artigo.

wave wave wave wave wave