Como Preencher Dados da Planilha na ListBox com VBA? Que o Excel e a ferramenta mais usada no mundo disso não temos dúvida com relação ao seu potencial nas empresas e nas residencias. Com o uso do VBA(Visual Basic for Application) podemos incrementar em nossos projetos ainda mais recursos. Nesse artigo estarei explicando com exemplos práticos de como preencher uma ListBox. Mais daí você pode estar se perguntando e o Listview? Calma estarei falando um pouco dos recursos e das limitações se e que seria uma limitação do Listview.
Qual a diferença do ListBox para o Listview?
Listando os pós e contra de cada um de maneira bem resumida para facilitar o entendimento. Quando usamos o ListBox ao invés do Listview temos algumas vantagens com relação a ambos. O Listview e bem mais fácil de carregar as informações da planilha na minha opinião.
O ListBox e relativamente tranquilo, mas se faz necessário usar um cabeçalho para as informações a parte com as Label.
Algumas Vantagens e Desvantagem do Listview e ListBox.
A desvantagem do ListView e a velha burocracia da MScom, que é a DLL da Listview. Desde as versões do Excel a Microsoft nunca se atentou nesse quesito tornando necessário a adição manual desse suplemento do Excel. No ListBox não temos essa situação, se você enviar o seu projeto para quem quer que seja ele não terá essa dificuldade em visualizar os dados caso não tenha essa DLL. Quando olhamos para as duas ferramentas vemos que são úteis e que alguns detalhes tornam a preferência de uso de cada uma delas.
Como Preencher Dados da Planilha na ListBox com VBA?
Bom pessoal resumir bastante o assunto em relação as diferenças entre as duas ferramentas. Espere que tenha ficado claro o por que uso sempre em meus projetos o ListBox em vez de Listview. No nosso site tem um artigo que explica com exemplos práticos de como preencher uma Listview. Nesse artigo estarei explicando com exemplos práticos de como preencher uma ListBox com dados da planilha.
Vamos ao nosso exemplo prático de como preencher uma ListBox com dados da planilha usando códigos VBA. Inicia o seu Excel independente da versão e pressione Alt+F11 para abrir o editor de VBA. Caso seu guia desenvolvedor não esteja habilitado segue abaixo as instruções.
Habilitando a Guia Desenvolvedor do Excel.
Ao iniciar o Excel siga os passos a passos que estarão sendo mostrado nas imagens logo abaixo.
1º Passo – Clica no menu Arquivo e aguarde a segunda instrução.
2º Passo – Clica no menu Opções e aguarde a terceira instrução.
3º Passo – Clica no menu Opções e aguarde a terceira instrução.
Após clicar em opções vai aparecer essa tela, agora clicar em Personalizar Faixa de Opções e vai mostrar ao lado um sinal de + e uma caixinha e o nome Desenvolvedor. Se essa caixinha estiver desmarcada marque ela novamente e clica em OK.
Pronto nosso guia desenvolvedor já está habilitado agora vamos ao nosso exemplo do artigo.
Preenchendo a ListBox com Dados da Planilha.
Ante de tudo e necessário que já tenha criado a base dados que nada mais e as informações que vai alimentar a ListBox.
Após ter criado a base de dados vamos abri o Editor de Códigos(VBE) que é onde vamos montar nossa estrutura.
Como Preencher Dados da Planilha na ListBox com VBA?
O primeiro passo depois de termo criado a nossa base de dados que vai alimentar o nosso formulário e começar a criar os objetos vamos a eles. Com o formulário criado adicione os objetos exatamente como está na imagem. Caso ache melhor pode adicionar uma Label apenas para os títulos ao invés de criar para cada um uma Label, isso facilita na hora de formatar fontes e cores etc. Sonhando que você tenha criado todos os objetos e controles e editado seu formulário e está pronto para programar o código.
De um duplo clique no seu formulário e altere o evento dele para UserForm_Initialize(), vai estar UserForm_Click(). Agora e só começar a digitar os códigos como está na imagem, você pode copiar e fazer as adequações. Mais se você está aprendendo ainda recomendo fortemente que digite assim vai ganhar habilidade e aprender mais rápido.
'COMANDO PARA CARREGAR DADOS DENTRO DA LISTBOX Private Sub UserForm_Initialize() Me.ListBox1.ControlTipText = "Para deletar o item selecionado de um duplo clique" Dim Linha As Integer Dim Coluna As Integer Dim My_List() With Planilha1 'A Declaração RedDim e usada para dimensionar ou redimensionar uma matrix dinâmica que já foi declarada por usar um instrução 'Private, Public ou Dim parenteses vazio (sem subinscrito de dimensão) Linha = 2 ReDim My_List(2 To .UsedRange.Rows.Count, 1 To .UsedRange.Columns.Count) Me.ListBox1.ColumnCount = .UsedRange.Columns.Count For Linha = 2 To .UsedRange.Rows.Count Me.ListBox1.AddItem For Coluna = 1 To .UsedRange.Columns.Count My_List(Linha, Coluna) = .Cells(Linha, Coluna).Value Next Coluna Next Linha Me.ListBox1.List = My_List Me.TxtBuscar.SetFocus End With End Sub
Após digitado todos os códigos vamos testar a nossa ferramenta para ver se realmente está funcionando. Para que apareça aquela mensagem ao passar o mouse vamos incrementar um método que retornar a mensagem que for digitada dentro de aspas.
'COMANDO PARA CARREGAR DADOS DENTRO DA LISTBOX Private Sub UserForm_Initialize() Me.ListBox1.ControlTipText = "Para deletar o item selecionado de um duplo clique"
Esse comando retorna a mensagem que for digitada ao passar o mouse. Usamos o Me para chamar um objeto ou método e um maneira de facilitar na hora de programar.
Vela abaixo os nossos códigos funcionaram corretamente, agora daremos início a uma outra etapa que e a exclusão dos dados da ListBox.
Excluindo Dados da Planilha e da ListBox com Condição.
Nesse procedimento vamos adotar algumas medidas de precauções na hora que for executado a nossa rotina. Faremos o uso da condicional IF(SE) que será acionado todas as vezes que clicarmos para excluir uma informação da ListBox. Para incrementar esse código de um clique duplo dentro da ListBox.
Declare a variável que pode ser definido por você, eu costumo escolher nomes que tem haver com o que a rotina vai executar. Aqui usando o IF eu falo para a rotina que toda vez que eu clicar e dizer sim que ela exclua os dados da minha ListBox e da planilha.
Option Explicit 'Deleta dados da ListBox e da Planilha da Base de Dados Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim DeletarDados DeletarDados = Me.ListBox1.ListIndex + 2 If MsgBox("Deseja excluir o item selecionado?", vbExclamation + vbYesNo, "Excel Smart") = vbYes Then Rows(DeletarDados).Delete MsgBox ("Item excluido com sucesso."), vbInformation, "Excel Smart" End If End Sub
A clicar veja a ação da rotina com a condicional que foi incrementa para que não excluísse diretamente os dados sem que você quisesse. A mensagem e personalizada e fica ao seu critério colocar o que quiser, sempre colocamos o padrão que é a que condiz com a ação. Nessa rotina perceba que não usamos o vbInformation mais sim o vbExclamation, que da um sinal se alerta.
Pronto basta somente isso e já vai está sendo excluído as informações da ListBox e da Planilha.
Após termos confirmado nossa rotina para excluir as informações forma excluída com sucesso e agora sim usamos o vbInformation para retornar uma informação na tela. Veja na planilha que o item do código 0004 já não existe mais após clicarmos para excluir ou seja concluímos que nossa rotina está funcionado perfeitamente.
Criando um Controle para Chamar o Formulário na Tela.
Agora vamos criar um botão para chamar nosso formulário na tela sem ter que precisar ficar abrindo o VBA toas as vezes que for visualizar as informações.
Vai na guia Inserir, Ilustrações, Formas e clicar no retângulo de cantos chanfrados exatamente como está circulado com o quadrado vermelho. Assim que inserir escreva Consultar Dados ou Abri Formulário fica ao seu critério na opção editar dados dentro do quadrado inserido. Vamos agora criar uma macro, ou seja, uma rotina para atribuir no nosso botão para que quando clicar ele chamar o formulário.
Option Explicit Public Sub AbriForm() UserForm1.Show End Sub
Como Preencher Dados da Planilha na ListBox com VBA.
Insere um novo modulo que é onde codificamos o nosso código e em seguida cria a rotina AbrirForm o nome e muito genérico e como as variáveis e de sua escolha. Vamos atribuir ao botão que nós criamos mais atrás um pouco para usar em nossa planilha.
Como Preencher Dados da Planilha na ListBox com VBA?
Clica com o botão direito do mouse e em seguida clique em Atribuir macro… vai abri uma janela com todas as macros criadas e vamos escolher a que demos o nome de AbrirForm, por isso a importância de darmos nomes a cada rotinas.
Nessa janela e onde mostra todas as macros que foram criadas, como nesse caso aqui só temos uma rotina criada vamos escolher ela. Basta clicar nela para ficar selecionada e depois clicar em OK. Agora já podemos clicar em nosso botão que ele vai chamar nosso formulário.
Como Preencher Dados da Planilha na ListBox com VBA.
Bom pessoal nesse artigo era basicamente isso que eu queria passar para vocês, duvidas deixa nos comentários logo abaixo. Estarei disponibilizado essa planilha para download.
Como Preencher Dados da Planilha na ListBox com VBA?
Fique atento estrei trazendo a próxima etapa que é a de consultar as informações quando for digitado na nossa TextBox(Caixa de Texto). Vamos criar uma rotina para quando começar a digitar ela buscar de acordo com o que estiver sendo escrito dentro da caixa de texto.
Veja mais em nosso site…
Planilhas para a gestão do seu negócio em Excel
Gerar orçamento em Excel e salvar em PDF
Planilha simulador de parcelamento em Excel
Como controlar recebimentos em cartões de crédito
A Importância do Fluxo de Caixa nas Empresas
Sistema Controle de Contas a Pagar e Receber
Planilha agenda de contato corporativo em Excel
Planilha para Controlar de Dízimos e Ofertas em Excel
Planilhas em Excel para Abertura de Empresa
Como Usar a função PROCV (VLOOKUP) do Excel
Macro para salvar cadastro de clientes Excel VBA
Como calcular o lucro em porcentagem no Excel
Copiar dados entre planilhas do Excel usando uma macro
Planilha em Excel para Cálculo de Horas Extras Grátis
Dicas para Ajudá-lo a Dominar o Excel no Trabalho Rapidamente
Baixar Planilha de Exemplo.
Como Preencher Dados da Planilha na ListBox com VBA