Lista suspensa com autocompletar: Aprenda a criar

A lista suspensa, também conhecida como lista de validação de dados é um recurso muito utilizado no Excel para o preenchimento de formulários e que acaba facilitando muito a vida dos usuários.

No entanto, quando se tem uma lista muito grande, pode ser difícil encontrar a informação desejada. É o caso, por exemplo, de uma cadastro com centenas de nomes, onde o usuário tem a necessidade de usar cuidadosamente a barra de rolagem da lista para encontrar a informação desejada.

Neste caso, como podemos observar, seria muito mais fácil se pudessemos digitar a informação, utilizando o recurso de lista suspensa com autocompletar, o que por padrão não existe no Excel.

Mas pensando nisso, nos separamos um tutorial prático para que você possa implementar a função autocompletar em suas listas suspensas sem grandes dificuldades. Acompanhe os detalhes a seguir e veja como é fácil.

Saiba como criar uma Lista suspensa com Autocompletar no Excel

Criando a lista suspensa

O primeiro passo para criar uma lista suspensa com autocompletar, é simplesmente criar a lista suspensa em si. Como este artigo tem o foco no recurso de autocompletar, deduzimos que você já saiba criá-la e desta forma, não iremos entrar em detalhes. No entanto, se você tiver dúvidas sobre como criar uma lista de validação de dados, basta assistir a vídeo-aula que temos neste link.

Abaixo temos um exemplo de uma lista suspensa criada com os meses do ano para melhor compreensão do exemplo.

Lista suspensa com autocompletar

Recurso Autocompletar

Com a lista suspensa já criada, agora iremos criar o recurso de autocompletar. Para isto siga os seguintes passos:

Passo 1: Acesse a guia Desenvolvedor > Inserir > Caixa de Combinação

Observação: Caso o seu Excel não possua a guia Desenvolvedor habilitada, confira neste artigo o passo a passo de como habilitá-la.

Criar Lista suspensa com autocompletar

Passo 2: Desenhe a Caixa de Combinação em qualquer local na sua planilha.

criando suspensa com autocompletar

Passo 3: Clique com o botão direito sobre a Caixa de Combinação e escolha a opção Propriedades.

Caixa de combinação lista suspensa

Passo 4: Será aberta uma nova janela. Neste caso, basta alterar o nome da Caixa de Combinação para “TempCombo” conforme mostrado abaixo. Se você quiser, poderá colocar outro nome, no entanto, deverá alterá-lo também no código que será passado a seguir.

Lista suspensa com autocompletar como criar

Feche a janela de Propriedades.

Passo 5: Acesse a guia Desenvolver > Visual Basic.

Como criar Lista suspensa com autocompletar

Será aberta uma nova janela conforme mostra a imagem abaixo. Na árvore de itens do VBA selecione a planilha onde está a lista de validação de dados e dê um duplo clique, abrindo a área do código.

Lista Suspensa automática

Passo 6: Copie o código mostrado abaixo e cole na área do código.

Option Explicit
 
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

Passo 7: Após colar o código, feche a janela e acesse a guia Desenvolvedor e desmarque a opção Modo Design. Apague a Caixa de Controle criada inicialmente.

Agora observe que sua lista suspensa possui o recurso de autocompletar no qual irá facilitar suas buscas quando houver listas com grande quantidade de itens.

Autocompletar lista suspensa Excel

Importante: Ao salvar a sua planilha, é fundamental que você salve com a opção “Pasta de Trabalho Habilitada para Macro do Excel“. Desta forma, você evita que os códigos sejam perdidos.

Pasta de Trabalho Habilitada para Macro

Créditos do código: Guia do Excel

Ficou com alguma dúvida para criar uma lista suspensa com Autocompletar? Deixe seu comentário abaixo:

  • Patricia Sorato

    simplesmente perfeita a explicação ! muito obrigada !

  • Vanessa

    Simplesmente perfeito!

  • Ariana Gonçalves

    Maravilhoso, funcionou perfeitamente! Muito obrigada!!

    • Admin

      Olá Ariana, que bom que o artigo lhe ajudou!!
      Continue acompanhando mais dicas e novidades em nosso site 🙂

  • Dan Guimarães

    Simplesmente PERFEITO! Tutorial step by step que atende desde o mais leigo até o esquecido. Parabéns!

    • Admin

      Obrigado pelo feedback Dan!
      Continue acompanhando e participando.
      Abraço,
      Equipe Excel Easy