VBA – Lista Suspensa (Validação de Dados)
In this Article
Este tutorial demonstrará como usar a validação de dados para trabalhar com listas suspensas no Excel usando o VBA.
A validação de dados do Excel permite limitar os valores que podem ser inseridos em uma célula ou intervalo. Você pode limitar as entradas a números inteiros positivos, texto, datas e muito mais. Neste tutorial, veremos como criar uma lista suspensa de validação de dados em uma célula usando o VBA.
Observação: uma alternativa à lista suspensa de validação de dados é um objeto ListBox. As ListBoxes podem ser adicionadas às planilhas do Excel. Os ListBoxes podem acionar macros que são executadas sempre que um valor do ListBox é alterado. As ListBoxes também são usadas em formulários de usuário VBA.
Criação de uma Lista Suspensa Usando VBA
Temos o texto Fruta na célula A1 e vamos criar uma lista suspensa na célula A2, com cinco entradas.
Usaremos o método Validation.Add e especificaremos que o parâmetro Type é xlValidateList. Você pode adicionar os itens específicos que deseja em sua lista usando o parâmetro Formula1.
O código a seguir criará uma lista suspensa de validação de dados na célula A2:
Sub ListaSuspensaEmVBA()
Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Laranja,Maçã,Manga,Pera,Pêssego"
End Sub
O resultado é:
Preencher uma Lista Suspensa a Partir de um Intervalo Nomeado no VBA
Você pode usar um intervalo nomeado contendo os itens para preencher uma lista suspensa no VBA. Temos o intervalo nomeado Animais mostrado abaixo:
Precisamos definir o parâmetro Formula1 igual ao intervalo nomeado. O código a seguir criará uma lista suspensa de validação de dados na célula A7 com base nos itens do intervalo nomeado:
Sub PreencherDeIntervaloNomeado()
Range("A7").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Animais"
End Sub
O resultado é:
Removendo a Lista Suspensa
Você pode usar o método Validation.Delete para remover a lista suspensa da célula. O código a seguir removeria a lista suspensa da célula A7 no exemplo acima:
Sub RemoverListaSuspensa()
Range("A7").Validation.Delete
End Sub
Codificação VBA facilitada
Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!