Te anexo la siguiente macro, sigue las siguientes indicaciones para que funcione la macro:
- Deberás tener tus 2 libros abiertos.
- En la macro cambia "libroA" y "libroB" por los nombres de tus libros.
- Cambia en la macro "hoja1" por el nombre de la hoja a comparar.
- Guarda la macro en tu "libroA"
- Crea una hoja en tu "libroA" puedes ponerle el nombre que quieras.
- Cambia en la macro "hoja3" por el nombre de la nueva hoja que creaste.
Ejecuta la macro y te pondrá en la "hoja3" el resultado, cuando haya una diferencia entre el "libroA" y el "libroB" te pondrá un mensaje en la "hoja3" en la misma celda en donde haya una diferencia y te pondrá el dato o la fórmula del "libroA".
Sub comparar()
'Por.DAM
Set h1 = Workbooks("libroA").Sheets("Hoja1")
Set h2 = Workbooks("libroB").Sheets("Hoja1")
Set h3 = Workbooks("libroA").Sheets("Hoja3")
h3.Cells.Clear
For Each c In h1.UsedRange
If c.HasArray Then
a1 = c.Formula
d = c.Address
a2 = h2.Range(d).Formula
If a1 <> a2 Then
h3.Range(d) = "formula diferente: " & a1
Else
If c.Value <> h2.Range(d).Value Then
h3.Range(d) = "resultado de fórmula diferente: " & c
End If
End If
ElseIf c.HasFormula Then
a1 = c.Formula
d = c.Address
a2 = h2.Range(d).Formula
If a1 <> a2 Then
h3.Range(d) = "formula diferente: " & a1
Else
If c.Value <> h2.Range(d).Value Then
h3.Range(d) = "resultado de fórmula diferente: " & c
End If
End If
Else
a1 = c.Value
d = c.Address
a2 = h2.Range(d).Value
If a1 <> a2 Then
h3.Range(d) = "dato diferente: " & a1
End If
End If
Next
MsgBox "Comparación terminada", vbInformation
End Sub
Saludos.Dante
Si es lo que necesitas no olvides valorar la respuesta.