Auto completar em Excel VBA
Especialista em Excel

Auto completar em Excel VBA
Objetivo: Disponibilizar um exemplo de como podemos fazer um auto completar para listas em Excel.
O recurso de auto completar no Excel é limitado ao preenchimento automático apenas quando a lista de palavras está acima da palavra que está sendo digitada atualmente.
Neste artigo é disponibilizado um exemplo de como utilizar o código VBA e o Excel para que possamos auto completar dados com o uso de um formulário e depois jogar este resultado diretamente na célula ativa do Excel.
Para tanto você pode pressionar o botão que coloquei no formulário, ou ainda melhor, utilizar o atalho CTRL+SHIFT+a que coloquei atribuído ao método que chama o formulário.
O código completo pode ser visto clicando na guia Desenvolvedor e clicando sobre o objeto do formulário.
'Digite aqui o intervalo a ser autocompletado
Private Const r As String = "A1:A100"
Private sInput As String
'Faz parar a pesquisa dos dados digitados
Dim flParar As Boolean
'Ao digitar deletar ou backspace o sistema limpa a variável de controle para pesquisar novamente
Private Sub txtInput_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Limpa a variável de controle
If (KeyCode = vbKeyBack) Or (KeyCode = vbKeyDelete) Then
flParar = True
Else
flParar = False
End If
If (KeyCode = 13) Then
ActiveCell.Value = UserForm1.txtInput.Text
UserForm1.txtInput.Value = vbNullString
UserForm1.Hide
End If
End Sub
'Faz a busca das palavras
Private Sub txtInput_Change()
Dim lPalavra As String
If flParar Then
flParar = False
Else
sInput = Left(Me.txtInput, Me.txtInput.SelStart)
lPalavra = GetFirstCloserWord(sInput)
If lPalavra & "" "" Then
flParar = True
Me.txtInput.Text = lPalavra
Me.txtInput.SelStart = Len(sInput)
Me.txtInput.SelLength = 999999
End If
End If
End Sub
'Seleciona a primeira letra
Private Function GetFirstCloserWord(ByVal Word As String) As String
Dim c As Range
For Each c In ActiveSheet.Range(r).Cells
If LCase(c.Value) Like LCase(Word & "*") Then
GetFirstCloserWord = c.Value
Exit Function
End If
Next c
Set c = Nothing
End Function
Veja como ficou o formulário:
Para utilizar este formulário você deve clicar com o botão direito sobre o formulário UserForm1 e em Exportar arquivo..., clique depois em Módulo1 e Exportar arquivo...
Feitas estas exportações você deve ir na guia Desenvolvedor com a sua planilha nova aberta e depois clique em qualquer objeto na guia Desenvolvedor e em importar conforme a imagem.
Agora altere o local aonde a lista dos dados estará ativa, o intervalo "A1:A100".
'Digite aqui o intervalo a ser autocompletado
Private Const r As String = "A1:A100"
Na planilha você pode atribuir o procedimento Botão1_Clique ao atalho que preferir no teclado clicando na Guia Desenvolvedor->Macros e selecionando o procedimento Botão1_Clique.
Abraço
Marcos Rieper
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90







