Codifique ou programe uma lista de validação de dados - Exemplos de código VBA

Índice

Este tutorial demonstrará como usar a Validação de Dados para trabalhar com listas suspensas no Excel usando VBA.

A Validação de Dados do Excel permite que você limite 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 para uma lista suspensa de validação de dados é um objeto ListBox. ListBoxes podem ser adicionados a planilhas do Excel. ListBoxes podem acionar macros que são executadas sempre que um valor de ListBox é alterado. ListBoxes também são usados ​​em Userforms do VBA.

Criando 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:

123456 Sub DropDownListinVBA ()Intervalo ("A2"). Validation.Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, _Fórmula1: = "Laranja, Maçã, Manga, Pêra, Pêssego"End Sub

O resultado é:

Preencher uma lista suspensa de um intervalo nomeado no VBA

Você pode usar um intervalo nomeado contendo os itens para preencher uma lista suspensa no VBA. Temos a faixa nomeada Animais mostrados abaixo:

Temos que 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:

123456 Sub PopulateFromANamedRange ()Intervalo ("A7"). Validation.Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, _Fórmula1: = "= 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:

12345 Sub RemoveDropDownList ()Intervalo ("A7"). Validation.DeleteEnd Sub
wave wave wave wave wave