Auto completar em Excel VBA
Como realizar a complementação de dados em Excel, fazendo com que os dados que vão sendo digitados sejam pesquisados em uma lista determinada.
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.
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
Abraço
Marcos Rieper
Este conteúdo foi útil?
Continue lendo

Como Criar Suplementos VBA no Excel
Criar um suplemento VBA no Excel é uma das formas mais poderosas de transformar suas automações em ferramentas profissionais e reutilizáveis.

Número por Extenso no Excel
Como escrever o número por extenso no Excel com fórmulas e VBA. Passo-a-passo tutorial e download gratuito de planilha com exemplo.

Suplemento Excel Gratuito - Guia do Excel
Como instalar um suplemento no Excel e também como instalar o suplemento gratuito do Guia do Excel. Recursos para te dar mais agilidade.




