Skip to content

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