Ranges variáveis para ComboBox e ListBox

O primeiro passo é a criação de um range, para depois inserir os objetos de ComboBox e Listbox, para que, assim, possa colocar os dados da tabela criada.(...)

Autor: Hildebrando Rodrigues

Caixa de Combinação e Caixa de Listagem são objetos muito utilizados em formulários VBA. Ambos apresentam listas de opções de uma determinada tabela para que o usuário possa selecionar uma ou mais opções e utilizar o resultado em uma infinidade de soluções.

Criando um ComboBox e um ListBox

A inserção de dados nestes objetos é efetuada da mesma forma. Primeiro deve-se criar uma área de dados na planilha. Em seguida, deve-se nomear esta área
Após criar e nomear o range, vamos agora criar os objetos ComboBox e ListBox para receber os dados da tabela criada. Ative o VBA e insira um Userform. Dentro deste formulário, insira um ComboBox, um ListBox e um CommandButton
Depois de criar os objetos combo e listagem, é hora de acrescentar o range de dados em cada um. O primeiro que iremos alimentar é o objeto combo. Para realizar esta tarefa, basta clicar sobre o objeto e digitar o nome do range de planilha no campo RowSource da janela de Propriedades.
Vamos verificar se o combo está funcionando adequadamente. Para efetuar este teste, pressione a tecla F5 do seu teclado para ativar o formulário. Quando ele estiver ativo na tela, clique sobre o combo e verá os nomes dos estados.
Para que os nomes dos estados apareçam no listbox, repita a mesma sequência utilizada para alimentar o combo.
Ou seja, selecione o objeto ListBox no formulário VBA e digite o nome do range de planilha no campo RowSource na janela de propriedades. Ao ativar o formulário (pressionando a tecla F5) verá os nomes dos estados listados no objeto.
Como vimos, os nomes dos estados são listados tanto no combo como na caixa de listagem. Porém, imagine se na tabela da planilha são inseridos os nomes dos estados da região Sul? Obviamente não seria nada produtivo repetir todo o procedimento para alimentar os objetos. Para evitar este problema, vamos tornar o range variável.
Vamos aproveitar e treinar a utilização de variáveis públicas. Insira dois novos módulos. Por questão de organização (lembre-se que você é um programador organizado), nomeie estes módulos. O primeiro deverá se chamar mdl_Vars para receber as variáveis públicas. O segundo deverá se chamar mdl_Rotinas, para receber a rotina que tornará o range variável.
No módulo de variáveis públicas, crie a variável Limite. Esta variável deverá ser declarada como Byte.
Para tornar a nossa rotina funcional, faça com que ela seja ativada na abertura do formulário. Insira o nome da rotina no evento Initialize do formulário.
Ao disparar um duplo clique no corpo do formulário, imediatamente será aberta a rotina no evento padrão deste objeto. Ou seja, o evento click. Ative o menu de eventos e selecione o evento Initialize.
No evento que se abrirá no módulo, basta apenas digitar o nome da rotina para que esta seja ativada na inicialização do formulário.
Concluído este processo, ao inserir ou eliminar nomes de estados na tabela, tanto o combo como a caixa de listagem reproduzirão fielmente os dados da tabela.
Curtiu o post? Deixe seu comentários nos contando se o conteúdo foi relevante para você ou caos tenha ficado alguma dúvida!

Deixe o seu comentário!

Não perca nenhum post!