Lista de validação de dados Excel com autocompletar VBA
Demonstrar como criar uma lista de validação de dados no Excel com o recurso de autocompletar Excel utilizando VBA.
Especialista em Excel
Lista de dados com autocompletar
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
Objetivo: Demonstrar como criar uma lista de validação de dados no Excel com o recurso de autocompletar, ou seja, ao serem digitadas as letras a lista seleciona os nomes que iniciam com aquelas letras na lista utilizando VBA.
Neste artigo você verá passo-a-passo como criar uma lista com validação de dados com o recurso autocompletar.
Caso não esteja familiarizado com o recurso de validação de dados veja este artigo: http://guiadoexcel.com.br/validacao-de-dados-excel.
Criando a lista
1. Crie uma lista de dados que serão selecionados. No nosso caso é uma lista de produtos.
2. Clique no local aonde serão inseridas as validações de dados com listas;
3. Clique na guia Dados->Validação de Dados;
4. Selecione a opção Permitir: Listas e em Fonte defina aonde está a sua lista de dados. A lista pode ser selecionada ou digitado o nome do intervalo, no nosso caso temos um intervalo nomeado Lista.
5. A nossa validação de dados já está pronta, você já consegue selecionar os itens na lista a partir da sua lista de validação, porém, ainda não temos o recurso autocompletar, que iremos inserir agora.
Recurso autocompletar
1. Clique na guia Desenvolvedor, para habilitá-la siga as instruções: http://guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet;
2. Clique no botão Modo de Design e no botão Inserir selecione a opção Caixa de Combinação (Controle ActiveX).
3. Desenhe uma caixa de combinação no Excel em qualquer lugar da planilha;
4. Clique no comboBox criada e na guia Desenvolvedor clique em Propriedades;
5. Na janela que segue altere a propriedade (Name) para TempCombo, conforme a imagem;
6. Clique nesta lista em Font e altere as suas propriedades de fonte e tamanho;
7. Altere a propriedade ListRows conforme a quantidade de itens a serem listados de uma vez, sem rolar a barra, por exemplo 8;
8. Feche a janela Propriedades e clique no botão Modo de Design na guia Desenvolvedor, desmarcando-o.
Inserindo o código VBA
1. Clique na guia Desenvolvedor e no botão Visual Basic;
2. Na árvore de itens do VBA selecione a planilha aonde está a lista de validação de dados e dê um duplo clique, abrindo a área do código;
3. Cole o seguinte código VBA na parte de código fonte da planilha:
Option Explicit
'Baseado em código da www.contextures.com
Private Sub TempCombo_KeyDown(ByVal _
KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
'Ocultar caixa de combinação e mover a próxima célula com Enter e Tab
Select Case KeyCode
Case 9
ActiveCell.Offset(0, 1).Activate
Case 13
ActiveCell.Offset(1, 0).Activate
Case Else
'Nada
End Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Dim wsList As Worksheet
Set ws = ActiveSheet
Set wsList = Sheets(Me.Name)
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.CutCopyMode Then
'Permite copiar e colar na planilha
GoTo errHandler
End If
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
.Top = 10
.Left = 10
.Width = 0
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 15
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate
'Abrir a lista suspensa automaticamente
Me.TempCombo.DropDown
End If
errHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
End Sub
3. Clique no botão Fechar do VBA, no canto superior direito, e retorne á pasta de trabalho do Excel.
Conclusão e testes
1. Clique sobre o local aonde há a validação de dados e verifique se a lista é apresentada ao clicar, em seguida digite algumas letras para verificar se a lista é filtrada automaticamente;
2. Se a lista estiver abrindo e filtrando automaticamente conforme é digitado você fez tudo certo e está funcionando corretamente;
3. Baixe o nosso exemplo clicando no botão Download ao final do artigo para verificar como funciona.
Lista de dados com autocompletar
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
Abraço
Marcos Rieper
Curso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

Planilha de Controle Financeiro no Excel
Tenha um controle bonito e completo do seu financeiro.
- Categorias e subcategorias já configuradas
- Planilhas separadas por tabela (configuração, lançamentos, resumo)
- Personalize com suas próprias categorias e ícones
Este conteúdo foi útil?
Continue lendo

Cadastro VBA Excel com Validação de Dados
Objetivo: Disponibilizar um cadastro VBA com as funcionalidades de inclusão, alteração, exclusão e validação de campos configurável. // Lomadee, uma nova espécie na web. A maior pl

Filtro ao Digitar Excel - Validação de Dados Lista
Como criar um filtro ao digitar no Excel utilizando validação de dados com lista, passo-a-passo e sem utilizar código VBA. Vídeo e download pronto.

Validação de dados com lista variável e tamanho variável no Excel
Como criar uma validação de dados com lista variável conforme a linha selecionada. Neste exemplo os estados e cidades brasileiras atualizados.











