Validar Datos con una Macro

Soy analista de sistemas pero no tengo idea de macros, y me están pidiendo una macro que traiga los datos de un excel, valide los datos y los copie a otro libro, hice la validación de datos, pero al copiar los datos la validación no funciona, solo funciona escribirlos, asi que necesito una macro que valide los datos de la planilla origen y los copie una vez validado a una planilla matriz, ayudenme por favor, de verdad estoy desesperada...

1 respuesta

Respuesta
1

No expones en tu pregunta de que validación se trata, si puedes explicate un poco más para tratar de ayudarte.

Disculpa, la planilla de destino debe tener 15 columnas, cada columna tiene distintos tipo de datos, la primera es fecha con formato dd-mmm, las tres columnas siguientes tienen listas desplegables por lo tanto no debería permitir ingresar datos distintos a los de la lista, todas las columnas deben tener datos, y las columnas con datos numéricos no pueden tener decimales, se entiende???

Soy nueva en esto...

Y necesitas una macro que valide esa información antes de pasarla a otro proceso. Lo de las columnas de destino no sabría como validarlas, ya que no se que proceso llevas, pero lo del formato y lo de quitar decimales eso si se puede con una macro.

La pregunta sobre los decimales sería si redondeas el valor que queda como entero o simplemente le quitas los decimales a tu listado

Si, los decimales se deben redondear, las otras columnas solo deben llevar la información de las listas desplegables la fecha con formato fecha dd-mmm, hice la validación con la herramienta validación de datos el problema es que si el usuario pega la información la validación no funciona, solo funciona al escribir los datos.

Gracias

Ahí si esta difícil, y será que podemos deshabilitar el copiado y pegado de esos archivos o se necesita que se pueda copiar y pegar.

Necesita copiar y pegar, los usuarios no se darán el trabajo de ingresarlos datos uno por uno, por eso debe validar los datos al pegarlos y verificar que estén todos correctos para poder guardarla.

En ese caso tocará hacer una macro para que se corra antes de guardar la info, yo te puedo guiar pero dado que no tengo tu archivo no podría dártelo con certeza, en todo caso empecemos:

Este es un ejemplo de validación de los datos de la columna A, de la hoja "Presentación", con los datos listados en la columna A de la hoja "Listas". Por cierto el listado debe tener un encabezado y empezar desde la linea 1:

La macro te avisa las filas que contienen valores que no encuentra en la lista de control. Pruébalas y me avisas.

Sub buscar()
Dim Comprobar, Contador
Dim Datos As Range
Comprobar = True: Contador = 1 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 65000 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
Sheets("Presentación").Select
valor = Range("A" & Contador).Value
If Range("A" & Contador).Value <> "" Then ' Si la condición es verdadera.
Set n = Worksheets("Lista").Cells.Find(what:=valor)
If n Is Nothing Then
fila = ActiveCell.Row
MsgBox "La fila " & fila & "contiene datos que no están en la lista de control"
Range("A:A").Find ("Enri")
fila = ActiveCell.Row
End Sub

Me falta solo una cosa, necesito que mientras el libro tenga círculos de datos inválidos no se pueda cerrar, o sea, que se cierre una vez que estén todas las celdas con los datos correctos y que no se puedan borrar los círculos sin haber ingresado el dato correcto.

Gracias

Para controlar ese evento debes colocar la macro en el thisworkbook y en lugar del Sub buscarv() colocas:

Private Sub Workbook_BeforeClose(Cancel As Boolean), y antes del

MsgBox "La fila " & fila & "contiene datos que no están en la lista de control"

colocas:

Cancel = True

De esta manera eliminas el cancel y el archivo no se cerrará mientras contenga errores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas