Comparar datos es excel

Hola expertos, tengo una pregunta.
Existe la posibilidad de crear una macro o una fórmula en excel, ¿qué me compare las columnas A de 2 libros y me de un informe de los datos que le falta a uno de los libros?

1 respuesta

Respuesta
1
Necesito algunas aclaraciones para ayudarte:
-¿Existen celdas vacías en la col A de cualquiera de los dos Libros?
-¿El informe te parece que lo muestre en una hoja de uno de los libros?
-Para que no trabajes me das el nombre de los dos libros y así la macro o la pasas a uno de los libros (ya te diré).
Aclarame y te hago la macro, otra cosa más o menos dime el número de filas que tengo que comparar, no importa pero por hacerte una idea del tiempo que tardará en ejecutarse la macro.
Hola experto mira, tengo 2 bases de datos de empresas en una tengo 3600 clientes y en la otra 480, lo que necesito es comparar el nit de las 2 bases de datos que están en la columna A de cada libro y que me muestre que clientes le faltan a la base de datos que tiene 480 clientes... gracias
No me dices si puede haber celdas vacías espero que no me pongo con la macro
No tiene celdas vacías ninguna de los 2 bases de datos...
Abres los dos libros pero teniendo activo el LIbro donde están los 3600 clientes pulsas en Alt+F11 insertas un módulo y pegas este código cambia en la macro el nombre de los libros por los tuyos, siendo Libro2.xls el nombre de tu libro con 3600 clientes y Libro1.xls el de 480 clientes:
Sub Comparar()
Dim micelda As String
Dim valor As Integer
Dim r As Range
Range("A1").Select
Do While ActiveCell.Value <> ""
micelda = ActiveCell.Address
valor = ActiveCell.Value
Windows("Libro1.xls").Activate
Range("A1").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Set r = Selection.Find(What:=valor, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If r Is Nothing Then
Windows("Libro2.xls").Activate
Range("B1").Select
If ActiveCell.Value = "" Then
ActiveCell.Value = valor
Else
Range("B65536").Select
ActiveCell.End(xlUp).Offset(1, 0).Select
ActiveCell.Value = valor
End If
End If
Windows("Libro2.xls").Activate
Range(micelda).Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Todos los clientes que no encuentre en los 480 que sí estén en los 3600 te los pondrá en la col B del Libro de 3600, no me dijiste nada de donde llevarte el informe y ahí te lo he puesto.
Hola experto la cambie y cuando la ejecuto me sale el error:
'Se ha producido el error el '13' en tiempo de ejecución:
No coinciden los tipos y me selecciona cuando depuro
Valor = Activecell.value
Hola ya lo arregle puse valor as string pero la ejecuto y solo me pasa un nit, se supone que la diferencia es de 2000 clientes por lo menos... me pasa el primer nit... yo cree una hoja llamada reporte y me pone los datos ahí... gracias experto por tu colaboración
Hola experto ya mire bn y funciona perfectamente, ¿hay forma de que los datos me los pase a una hoja de los 480 clientes que se llama Reporte... ah y que no solo pase el nit si no toda la información que va desde la columna A hasta la O... si es posible? Gracias
Me pediste que pasara la col A, he tenido que inventar tu archivo desconociendo el tipo de datos que tienes (de ahí el error) ahora quieres que te pase todo un rango pero es que desconozco como están los datos, cuantos son y el espacio que ocupan.
Para poder trabajar y que después de una petición me hagas otra debería de tener por lo menos el archivo para no trabajar a ciegas y varias veces.
Si estas por la labor de enviarme tu archivo con las explicaciones me lo dices y te pongo un correo donde enviarlo.
Dale dame un correo y te la pongo... ah de todas formas mil gracias porque esta funciona perfectamente
El correo es [email protected] pero si ya te funciona explicame.
Ya te envié el archivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas