Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como CREAR LISTA de VALIDACION al INSERTAR DATO en Celda en Excel VBA #534

crear validacion al insertar datos con macros de excel

CREAR LISTA DE VALIDACIÓN AL INSERTAR DATOS

En este post se muestra como al agregar un dato en una celda de Excel y crear automáticamente en otra celda una celda validada, es decir cuando se se ingrese un dato en una fila, automáticamente se va a crear una lista en una celda una lista de datos validos para ingresar en dicha celda.

Requieres aprender a manejar Excel, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

INSERTAR DATO Y CREAR VALIDACIÓN AUTOMÁTICA EN CELDA

Este ejemplo forma parte de la saga de ejemplos destinados a realizar un punto de venta en Excel, se muestra específicamente como quitar o eliminar un registro del Listbox donde se listan los productos que se van facturando.

Haciendo doble click en el Listbox se ejecuta una macro que elimina el ítem o registro seleccionado en el Listbox, cabe recordar que los items previo a llenar en el Listbox de Excel son consultados en la base de datos de Access vinculada, en dicha base de datos se guardan todos los registros del ejemplo denominado Punto de Venta en Excel.

Explicación del código para crear validación de datos en forma automática con macros

El código se encuentra en la hoja1 en Worksheet, evento Change, cuando se modifica algún dato en la Hoja1, verifica que se haya producido en la columna A y cualquier fila mayor a la fila 1, solo en dicho caso se ejecuta la macro, se usa el código:

If Target.Row > 1 And Target.Column = 1 Then

Determinado que el cambio se produjo en las celdas de la columna A, excepto la celda A1, se procede a crear un objeto con las hojas 1 y 3 y a determinar el rango donde se encuentran los datos para crear el listado de validación con macros de excel, recodemos que dichos datos están en la columna B de la Hoja3, el código usado es el siguiente:

Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja3»)
uf = b.Range(«B» & Rows.Count).End(xlUp).Row

En este caso el rango está determinado por la fila 2 y la última fila con datos determinada con la variable «uf», dicho rango se carga en la variable «valida» que será usada al momento de crear la lista de validación, el código es el siguiente:

valida = «=Hoja3!$B$2:$B$» & uf

Para agregar la lista de validación en la columna D, permitiendo ingresar solo las marcas de productos que surgen de la lista de validación, se utiliza el siguiente código:

With a.Cells(Target.Row, «D»).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=valida
.IgnoreBlank = True
.InCellDropdown = True
End With

Como se podrá observar la validación se agrega en el columna «D» y fila «Target.Row», es decir la fila donde esta posicionado actualmente o dicho de otra forma donde se está intentando cargar el registro.

La validación es agregada con este código:

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=valida

Si se observa en la sintaxis, donde está el argumento «Formula1», es ahí donde debe ir la formula para crear la lista de validación con macro, o mejor dicho el rango donde están los datos que integraran la lista de validación de datos en Excel.

Código VBA para crear una validación en celda al insertar un dato

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row > 1 And Target.Column = 1 Then
Application.ScreenUpdating = False
Set a = Sheets(«Hoja1»)
Set b = Sheets(«Hoja3»)
uf = b.Range(«B» & Rows.Count).End(xlUp).Row
valida = «=Hoja3!$B$2:$B$» & uf

With a.Cells(Target.Row, «D»).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=valida
.IgnoreBlank = True
.InCellDropdown = True
End With
End If
End Sub

Sub BORRA()
Sheets(«Hoja1»).Range(«D:D»).Validation.Delete
End Sub


Descarga el Libro Como Crear Validación de Datos en Automáticamente con Macros de Excel

Descarga desde acá el archivo usado como ejemplo en este post y en el vídeo explicativo, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes