[Excel] Auto completar e Lista automática - Planilha de promoções
Especialista em Excel

[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções
Leia neste artigo como fazer um auto completar e selecionar os dados de uma lista de validação dando muito mais praticidade e velocidade na seleção de dados. O exemplo utilizado é na construção de uma planilha promoções.

Há algum tempo criamos o artigo Lista de validação de dados Excel com auto completar VBA, porém não tinha o vídeo e também o autocompletar era chamado sempre que se clicava em uma lista de validação.
Neste artigo você verá como fazer uma macro que seja apenas chamada quando você precisar á partir de um atalho em VBA.
Como criar a validação de dados com auto completar
Criar a lista base da consulta de dados
- Crie uma lista com os dados á partir da qual deseja selecionar o item;
- Esta lista pode conter os dados apenas que serão selecionados ou já ser uma tabela como no nosso exemplo, no qual temos uma planilha de pauta de promoções;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-48a1249a7c.webp)
- No nosso exemplo é uma lista produtos que serão selecionados para a pauta de promoções, no caso serão selecionados portanto somente alguns;
Criar a lista de dados
- Clique na sua planilha que contém os dados e clique em Fórmulas, Gerenciador de Nomes e inclua o intervalo;
- Usaremos uma fórmula para fazer uma lista que ao incluir registros ela já se ajuste, mas poderia ser apenas selecionados os itens, o problema é que não há um auto-incremento neste caso, ou seja, a lista não se auto-ajusta;
- Para resolver o ajuste da altura da lista você pode criar uma tabela e na validação de dados selecionar a coluna dos produtos na tabela;
- Outra forma é utilizando uma fórmula de DESLOC, como a fórmula utilizada foi: =DESLOC('Lista de produtos'!$B$2;;;CONT.VALORES('Lista de produtos'!$B:$B)-1;1); Se quiser aprender como funciona a fórmula DESLOC de forma definitiva veja este artigo DESLOC Excel - Aprenda de uma vez por todas
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 2](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-2-8615129275.webp)
Criar a validação de dados
- Clique no local aonde serão inseridas as validações de dados com listas;
- Clique na guia Dados->Validação de Dados;
- 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 Produtos;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 3](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-3-dc8a91624b.webp)
- 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.
Criando Auto completar Excel
- 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;
- Clique no botão Modo de Design e no botão Inserir selecione a opção Caixa de Combinação (Controle ActiveX)
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 4](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-4-1c943f59f5.webp)
- Desenhe uma caixa de combinação no Excel em qualquer lugar da planilha;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 6](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-6-4cfcc0235e.webp)
- Na janela que segue altere a propriedade (Name) para TempCombo, conforme a imagem;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 7](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-7-42658987d0.webp)
- Clique nesta lista em Font e altere as suas propriedades de fonte e tamanho;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 8](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-8-97e73c111d.webp)
- Altere a propriedade ListRows conforme a quantidade de itens a serem listados de uma vez, sem rolar a barra, por exemplo 8;
- Feche a janela Propriedades e clique no botão Modo de Design na guia Desenvolvedor, desmarcando-o.
Inserir código VBA para listar os dados e para o auto completar
- Clique na guia Desenvolvedor e no botão Visual Basic;
- 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;
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 9](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-9-518795fbf3.webp)
- Cole o seguinte código fonte na planilha aonde você irá utilizar a sua validação com listar e auto completar
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 cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
Set cboTemp = ws.OLEObjects("TempCombo")
cboTemp.Visible = False
End Sub
Public Sub lsChamarAutoPreencher()
Dim lRng As Range
Set lRng = ActiveCell
lsComboAutoPreencher lRng
End Sub
Private Sub lsComboAutoPreencher(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
4. Clique no botão Fechar do VBA, no canto superior direito, e retorne á pasta de trabalho do Excel.
5. Clique na guia Desenvolvedor e no botão Macros, depois selecione a macro lsChamarAutoPreencher que necessariamente deve estar com o nome da planilha em que quiser incluir a validação de dados com auto completar e autolistar dados.
![[Excel] Auto completar e selecionar em Lista de validação - Planilha de promoções 10](/uploads/excel-auto-completar-e-selecionar-em-lista-de-validacao-planilha-de-promocoes-10-289e0a7d80.webp)
Faça o download do arquivo abaixo do exemplo criado no vídeo deste artigo.
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





