Como criar formulários interativos no Excel VBA com controles ActiveX

Tipos de controles ActiveX e como usá-los

No Excel VBA, ActiveX Controls são usados para melhorar a interatividade e a automação em planilhas. Aqui estão alguns dos controles mais usados e como usá-los.

1. Caixa de texto

O Text Box permite que os usuários insiram ou exibam texto em uma UserForm ou planilha do Excel. Com VBA, podemos definir o conteúdo do Text Box, preenchendo os dados automaticamente ou recebendo informações dos usuários.

Como criar uma caixa de texto no Excel VBA

  1. Abra o Excel e ative a  guia Developer.
  2. Selecione Developer > Insert > Text Box (ActiveX Controls).
  3. Clique e arraste para criar um Text Box na planilha.
  4. Para adicionar um código VBA, clique com o botão direito do mouse em Text Box e selecione View Code.

Exemplo de código VBA para preencher automaticamente caixas de texto

O código a seguir preencherá automaticamente o Text Box com texto quando ele for executado:

TextBox1.Text “Data imported successfully”

2. Caixa de listagem

List Box é um elemento de controle que serve para exibir uma lista de seleções, permitindo que o usuário selecione um ou mais itens. Isso é especialmente útil em formulários de entrada de dados ou para navegação entre páginas em aplicativos que usam Excel VBA.

Como adicionar dados a uma caixa de listagem no Excel VBA

  1. Abra a  guia Developer no Excel.
  2. Selecione Insert > List Box (ActiveX Controls).
  3. Clique e arraste para colocar o List Box na planilha.
  4. Clique com o botão direito do mouse em List Box > Properties.

Exemplo de código VBA para adicionar itens à caixa de listagem

Use o seguinte código VBA para adicionar vários nomes de cidades ao List Box:

With Sheet1.ListBox1
     .AddItem    “Jakarta”
     .AddItem “Surabaya”
     .AddItem “Bandung”
End With

Este código pode ser colocado em Workbook_Open caso para que os dados sejam carregados automaticamente quando o arquivo for aberto.

Conectando caixas de listagem com células no Excel

Para exibir os itens selecionados do List Box para uma célula específica, execute as seguintes etapas:

  1. Clique com o botão direito do mouse em List Box e selecione Properties.
  2. Localize a propriedade LinkedCell e insira o endereço da célula (exemplo: D3).
  3. Agora, sempre que o usuário selecionar um item no List Box, o valor aparecerá na célula D3.

Se você quiser recuperar o valor selecionado usando VBA, use o seguinte código:

Range(“D3”).Value =  ListBox1.Value

3. Caixa de combinação

Combo Box é um controle ActiveX no Excel VBA que serve como uma lista de opções que podem ser puxadas para baixo. Os usuários podem selecionar um único item da lista ou digitar seu texto. Um Combo Box é frequentemente usado em formulários de entrada para minimizar erros ao inserir dados, pois os usuários só podem escolher entre as opções fornecidas.

Como adicionar dados dinâmicos a uma caixa de combinação

Para adicionar um Combo Box a uma planilha, siga estas etapas:

  1. Abra o Excel e certifique-se  de que a guia Developer esteja ativada.
  2. Clique em Developer > Insert > Combo Box (ActiveX Controls).
  3. Clique e arraste para desenhar Combo Box na planilha.
  4. Clique com o botão direito do mouse em Combo Box e selecione Properties.

Exemplo de código VBA para adicionar itens a uma caixa de combinação dinamicamente

Use o código a seguir para adicionar itens ao Combo Box automaticamente quando a pasta de trabalho for aberta ou o botão for clicado:

ComboBox.Add  Item “Option 1”
ComboBox1.Add Item “Option 2”
ComboBox1.Add Item “Option 3”

Conectando caixas de combinação com células no Excel

Para salvar o valor selecionado no Combo Box em uma célula específica, execute as seguintes etapas:

  1. Clique com o botão direito do mouse em Combo Box e selecione Properties.
  2. Localize a propriedade LinkedCell e insira o endereço da célula (por exemplo, D3).
  3. Agora, sempre que o usuário selecionar um item no Combo Box, esse valor aparecerá na célula D3.

Como alternativa, use o seguinte código VBA para salvar o valor da opção na célula:

Range(“D3”).Value  ComboBox1.Value

Últimos artigos