VBA Lista desplegable (Validación de datos)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 22, 2022

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

 

Eliminar lista desplegable

Puede utilizar el método Validation.Delete para eliminar la lista desplegable de la celda. El siguiente código eliminaría la lista desplegable de la celda B7 en el ejemplo anterior:

Sub eliminarLista()

 Range("B7").Validation.Delete

End Sub

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro – A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

alt text

 

Aprenda Más!

 

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples