LISTAS DE TEXTOS

Este tutorial demostrará cómo utilizar la Validación de Datos para trabajar con listas desplegables en Excel utilizando VBA.

La Validación de Datos de Excel le permite limitar los valores que pueden introducirse en una  celda o rango. Puede limitar las entradas a enteros positivos, texto, fechas y mucho más. En este tutorial, vamos a ver cómo crear una lista desplegable de validación de datos en una celda utilizando VBA..

muestra validacion de celda

Nota: Una alternativa a la lista desplegable de validación de datos es un ListBox object. ListBoxes pueden añadirse a las hojas de cálculo de Excel. Los ListBox pueden desencadenar macros que se ejecutan cada vez que se cambia el valor de un ListBox. Los ListBox también se utilizan en Formularios.

Creación de una lista desplegable con VBA

Tenemos el texto Fruta en la celda A1, y vamos a crear una lista desplegable en la celda A2, con cinco entradas.

rango intervalo de datos previa

Utilizaremos el método Validation.Add y especificaremos que el parámetro Type es xlValidateList. Puedes añadir los elementos específicos que quieras en tu lista usando el parámetro Formula1.

El siguiente código creará una lista desplegable de validación de datos en la celda A2:

Sub lista_desplegable_en_VBA()

Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Naranja, Manzana, Mango, Pera, Maracuya"

End Sub

El resultado es:

lista desplegable en VBA

 

Rellenar una lista desplegable a partir de un rango con nombre en VBA

Puedes utilizar rango con nombre que contiene los elementos, para rellenar una lista desplegable en VBA. Tenemos el rango denominado Animales que se muestra a continuación:

rango intervalo de datos

 

Tenemos que establecer el parámetro Fórmula1 igual al rango nombrado. El siguiente código creará una lista desplegable de validación de datos en la celda B7 basada en los elementos del rango nombrado:

Sub rellenar_desde_rango()

Range("B7").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Animales"

End Sub

El resultado es:

rango intervalo de datos resultado

 

Comentarios