VBA ComboBox - Como criar e usar ComboBox no VBA?

Excel VBA ComboBox

ComboBox é o recurso de formulário do usuário no VBA , eles são diferentes das caixas de texto, pois as caixas de texto são usadas para conter apenas texto e permitimos ao usuário inserir qualquer tipo de dados, mas usando caixas de combinação limitamos o usuário para o tipo de resposta que desejamos portanto, os dados estão em ordem, é semelhante à validação de dados de lista no Excel.

ComboBox pode ser comparado a uma lista suspensa no excel, em planilhas. Usamos a validação de dados para fornecer uma lista suspensa, mas no VBA, há um recurso de formulário de usuário onde é usado para fornecer uma lista suspensa em qualquer formulário de usuário, mas se quisermos usar uma caixa de combinação no Excel, podemos também acesse-o na seção do desenvolvedor, onde podemos criar caixas de combinação para células individuais ou múltiplas.

A caixa de combinação é muito semelhante à lista suspensa que temos em uma planilha do Excel; com a caixa de combinação, podemos armazenar valores pré-determinados para que os usuários façam a seleção na lista disponível na caixa de combinação. A caixa de combinação geralmente é usada junto com os formulários do usuário como parte da obtenção de informações dos usuários.

Os formulários do usuário são úteis, mas ter outras ferramentas no formulário do usuário é o que o torna tão especial. Uma das ferramentas que costumamos usar como ferramenta para o formulário do usuário é o “ComboBox”.

2 maneiras principais de criar uma ComboBox VBA

# 1 - Usando a codificação direta

Primeiro, veremos como usar a caixa de combinação com a planilha. Abra qualquer uma das planilhas na pasta de trabalho do Excel, vá para a guia Desenvolvedor e, nessa guia, temos uma ferramenta chamada “Inserir”. Clique aqui e, abaixo dele, temos duas opções Active X Controls & Form Controls no Excel.

Em “Controles Active X”, escolha “Caixa de combinação”.

Agora você pode desenhar este objeto em qualquer uma das planilhas.

Clique com o botão direito na caixa de combinação e escolha a opção “Propriedades”.

Quando você escolhe propriedades, ele abre uma lista enorme de propriedades de uma caixa de combinação.

Para esta caixa de combinação, vamos dar uma lista de nomes de departamentos, então altere a propriedade do nome da caixa de combinação para “DeptComboBox”.

Agora, esta caixa de combinação será chamada de “DeptComboBox”. Precisamos fornecer nomes de departamentos pré-determinados, então aqui eu tenho uma lista de nomes de departamentos.

Agora precisamos adicionar esses valores à lista da caixa de combinação. Podemos fazer isso de duas maneiras, por meio da codificação ou do gerenciador de nomes.

Dê um clique duplo no Combobox e ele o levará ao procedimento de macro do VBA.

Mas precisamos ver esses nomes de departamento quando a pasta de trabalho for aberta, então clique duas vezes em “Esta pasta de trabalho”.

Na lista suspensa, escolha “Pasta de trabalho”.

Nas opções, escolha “Abrir”.

Agora ele criará um espaço em branco como o abaixo.

Dentro desta macro, insira o código abaixo.

Código:

Private Sub Workbook_Open () With Worksheets ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operações" .AddItem "Auditoria" .AddItem "Atendimento ao cliente" End With End Sub

Ok, agora salve e feche a pasta de trabalho. Quando você reabre a pasta de trabalho, podemos ver os nomes dos departamentos nela.

# 2 - Usando UserForm

Outra forma de adicionar valores ao ComboBox é usando o formulário do usuário. Primeiro, dê um nome às células como “Departamento”.

Vá para o Editor do Visual Basic e insira o Formulário do Usuário a partir da opção INSERT.

Agora o novo formulário do usuário foi criado.

Ao lado do formulário do usuário, podemos ver “Caixa de ferramentas” desta caixa de ferramentas, podemos inserir “Caixa de combinação”.

Now the combo box is embedded in the user form. In this method, to open the properties option, select the combo box and press the F4 key to open the properties window.

Scroll down the properties tab and choose “Row Source.”

For this “Row Source,” enter the name that we had given to department name cells.

Now this combo box holds the reference of the name “Department.”

Now run the user form by using the run button.

Now we can see a list of department names in the combo box on the user form.

Practically user form is associated with a combo box, text box, and many other tools. We will create a simple data entry user form with a text box & combo box.

Create a user form like the below.

Create two Command Buttons.

Double click on the “SUBMIT” button it will open up below macro.

Inside this macro, add the below code.

Code:

Private Sub CommandButton1_Click () Dim LR As Long LR = Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Cells (LR, 1) .Value = TextBox1.Value Cells (LR, 2) .Value = ComboBox1 .Value End Sub

Agora clique duas vezes no botão “CANCELAR” e adicione o código abaixo.

Agora, na planilha, crie um modelo como o abaixo.

Agora execute o formulário do usuário, e ele será aberto assim.

Insira o nome do funcionário e selecione o nome do departamento na lista de combinação.

Clique no botão ENVIAR e veja a mágica.

Recebemos os valores inseridos no formato de tabela que criamos.

Coisas para lembrar

  • COMBO BOX também tem suas próprias propriedades.
  • Adicionar valores à lista ocorre de duas maneiras. Uma é uma forma de codificação e outra é uma referência de nome de intervalo.
  • O COMBO BOX geralmente faz parte do formulário do usuário.

Artigos interessantes...