Como comparar dos archivos de excel a través de una macro

Les agradezco si me pueden ayudar en una macro que pueda hacer lo siguiente:
1. Que desde el archivo actual puede seleccionar el archivo con el que deseo comparar
2. Como cada columna esta ordenada de la misma forma en los dos archivos, requiero que para cada columna del archivo 1 a través de un buscarv busque si es dato esta en el archivo 2 y si no lo encuentra entonces que en la celda del archivo 1 se rellene con color verde
3. Por último que aparezca un mensaje en el que indique que ya se realizó la validación columna a columna para el archivo

1 Respuesta

Respuesta
4

Pon la siguiente macro en tu archivo1 y la ejecutas en el archivo1 en la hoja que quieras comparar.

Sub abrearchivo()
'Por.Dante Amor
    ruta = ThisWorkbook.Path
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione archivo de excel"
        .Filters.Clear
        .Filters.Add "Todos", "*.*"
        .Filters.Add "Archivo xls", "*.xls*"
        .FilterIndex = 2
        .AllowMultiSelect = False
        .InitialFileName = ruta
        '.Show
        If .Show Then
            Application.ScreenUpdating = False
            arch = .SelectedItems.Item(1)
            Set l2 = Workbooks.Open(arch)
            Set h2 = l2.ActiveSheet
            For j = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
                For i = 1 To h1.Cells(Rows.Count, j).End(xlUp).Row
                    Set b = h2.Columns(j).Find(h1.Cells(i, j), lookat:=xlWhole)
                    If b Is Nothing Then
                        h1.Cells(i, j).Interior.ColorIndex = 4
                    End If
                Next
            Next
            l2.Close False
        End If
        Application.ScreenUpdating = True
        MsgBox "ya se realizó la validación columna a columna para el archivo", vbInformation
    End With
End Sub

Si quieres poner la macro en un botón.

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: pinta
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Dante, mil gracias!!!

Era exactamente lo que estaba buscando.

Sigo la mayoría de tus respuestas y no sabía como aplicar el for en este caso. Eres el mejor!!..

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas