Macro para comparar dos columnas de archivos diferentes

Estimada Elsa

Como siempre solicitando tu ayuda sigo con mi archivo enorme poco a poco lo estoy procesando ahora tengo que comparar dos columnas que están en diferentes archivos y poner el resultado en una columna adyacente del ultimo archivo, enn este ejemplo el archivo de origen se llama archivo status la columna a comparar es la F ( tipo servicio ) la tengo que comparar con la columna F del archivo ventas, si estos valores son iguales tengo que poner el resultado que tiene el archivo status columna H en la columna I del archivo ventas ( con firma, sin firma etc )

Cabe señalar que nunca se cuantas filas tiene el archivo pueden ser diferentes en ambos archivos el ejercicio seria ideal si no tuviera que abrir el archivo de origen

Agradeciendo de antemano tu ayuda y paciencia te mando un cordial saludo, gracias por todos los consejos y ayuda que me brindas

Te mando los links

https://www.dropbox.com/s/vt9ytdu9it4dskr/ARCHIVO%20STATUS.xlsx

https://www.dropbox.com/s/8mz16qinn82kwtw/ARCHIVO%20VENTAS.xls

1 respuesta

Respuesta
1

Ya descargué tus libros, seguramente el lunes me ocuparé. No finalices aún.

Mientras te invito a descargar la demo de la Guia Nº 1, porque el ejemplo allí desarrollado es bastante apropiado para tu caso y quizás puedas adaptarlo.

Gracias Elsa esperare tu amable respuesta, entre a ver la guía esta excelente

Un abrazo

Raul Carmona

No es posible comparar las 2 col F... las 2 tablas tienen datos repetidos.

Es decir que si en LibroStatus hay 2 registros 1111 no sabré cuál de los 2 col H tomar.

Suponiendo que siempre tendrán el mismo valor... nos encontramos que el libro Ventas también tiene valores repetidos.

Asi, en col F hay varios registros con 1111 y no sabré a cuál de ellos colocar el valor de H ...

Por favor aclara el proceso un poco más.

Sdos

Elsa

Hola Elsa

tienes razón cuando lo hago con el buscarv siempre tomo el primero que encuentre esa es la razón por la cual el archivo de status siempre es mas grande que el archivo ventas

A nos ser que antes de procesarlos quite lo repetidos

pls que me recomiendas ??

Gracias Amiga

Saludos

Raùl Carmona

Estimada Elsa

Elimine los doctos duplicados en ambos archivos crees que asi se pueda ??

te mando los links nuevos

https://www.dropbox.com/s/vt9ytdu9it4dskr/ARCHIVO%20STATUS.xlsx

https://www.dropbox.com/s/8mz16qinn82kwtw/ARCHIVO%20VENTAS.xls

Saludos

Raúl Carmona

Bien, entonces es posible con una macro o con una fórmula en col I, esto último respondiendo a tu opción de NO abrir el 2do libro.

La fórmula sería algo así:

=SI(ESERROR(BUSCARV(F2;'C:\Users\[ARCHIVO STATUS.xlsx]INFORME STATUS'!$F$1:$H$300;3;FALSO));"";BUSCARV(F2;'C:\Users\[ARCHIVO STATUS.xlsx]INFORME STATUS'!$F$1:$H$300;3;FALSO))

Es decir que si no coinciden dejará la celda vacía y sino colocará el texto de la col H.

Esta fórmula indica como fin de rango 300 pero podes ampliarlo más allá de lo que ocupe en total.

Para la macro necesitas abrir el libro. Te la dejo considerando que el libro ya está abierto. Se coloca en un módulo del Editor del libro Ventas que es el más pequeño (*) . Ajustá los detalles de nombres y mensajes, probalo y comentame.

Sub comparaTablas()
'x Elsamatilde
'compara cada registro col F del libro más pequeño (Ventas)
'con datos col F del libro Status.
'Si coinciden coloca el valor de col H en col I
libro2 = "ARCHIVO STATUS.xlsx"
Range("F2").Select
'recorre la col F hasta encontrar celda vacía
While ActiveCell.Value <> ""
'busco el dato en libro2
On Error GoTo sinLibro
Set busco = Workbooks(libro2).Sheets(1).Range("F:F").Find(ActiveCell, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then
ActiveCell.Offset(0, 3) = busco.Offset(0, 2)
End If
'paso a la fila sgte
ActiveCell.Offset(1, 0).Select
On Error GoTo 0
Wend
MsgBox "Fin del proceso"
Exit Sub
sinLibro:
MsgBox "El libro STATUS no se encuentra abierto.", , "PROCESO CANCELADO"
End Sub

Hay muchos detalles aún a considerar: si debe abrir el libro o ya estará abierto, si debe cerrarlo al finalizar, cuál es el libro más pequeño, etc.

Podés ejecutarlo con un atajo de teclado o un botón colocado en la hoja Informe (estos temas podés leerlos desde la sección Macros de mi sitio)

Mi Querida Elsa

Excelente solución he estado practicando y ambas opciones funcionan de maravilla

Como siempre agradezco tu ayuda entre a tu sitio y hay muchas cosas interesantes ya empece a juntar para adquirir algunas

Te mando un abrazo

Raúl Carmona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas