Auto completar em Excel VBA

MR
Marcos Rieper

Especialista em Excel

13 de outubro de 2012 Atualizado 08 de julho de 2026 3 min de leitura
Auto completar em Excel VBA

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.

Download — baixe aqui: AutocompletarExcel

Preencha seus dados para receber o link de download no seu e-mail.

Abraço

Marcos Rieper

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

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

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado