Resaltar Diferencias Entre Dos Hojas
Tengo dos hojas de registros cada una tiene una columna donde se encuentra el key value(registros únicos). Quiero comparar la información de una hoja con la otra de acuerdo a ese registro y las filas para cada uno (las filas son las mismas con el mismo encabezado para cada hoja).
Actualmente tengo este código:
Sub Compara_Hoja1()
'Declaramos variables
Dim scadena As String, scadena_2 As String
Dim i As Long, j As Long, n As Long
Dim col As Long, fin As Long, final As Long, d As Long
Dim A As Long, x As Long, p As Long, col_1 As Long, col_2 As Long
'Trabajamos con la Hoja1
With Sheets(2)
fin = Application.CountA(.Range("A:A"))
final = Application.CountA(Sheets(3).Range("A:A"))
col_1 = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
col_2 = Sheets(3).Cells(1, Cells.Columns.Count).End(xlToLeft).Column
'Iniciamos primer loop recorriendo registros hoja1
For i = 2 To fin
'Componemos cadena con toda la fila hoja1
For d = 1 To col_1
scadena = scadena & .Cells(i, d).Value
Next d
'Iniciamos segundo loop buscando valor de scadena de hoja1 en hoja2
For j = 2 To final
'Componemos cadena de toda la fija hoja2
For A = 1 To col_2
scadena_2 = scadena_2 & Sheets(3).Cells(j, A).Value
Next A
'Si el ID existe en la hoja2 contamos
If .Cells(i, 1) = Sheets(3).Cells(j, 1) Then p = p + 1
'Si el ID es igual al de la hoja2 pero la cadena no es igual iniciamos un tercer loop
If .Cells(i, 1) = Sheets(3).Cells(j, 1) And scadena <> scadena_2 Then
'Recorremos toda la fila hasta encontrar la diferencia y la marcamos en rojo
For n = 1 To col_2
If .Cells(i, n) <> Sheets(3).Cells(j, n) Then .Cells(i, n).Interior.Color = vbRed
Next n
End If
'vaciamos valor de variable scadena_2
scadena_2 = vbNullString
Next j
'Si el ID no existe en hoja2 recorremos cadena y marcamos diferencias
If p = 0 Then
For x = 1 To col_2
If .Cells(i, x) <> Sheets(3).Cells(j, x) Then .Cells(i, x).Interior.Color = vbRed
Next x
End If
p = 0
scadena = vbNullString
Next i
End With
End Sub
El problema es que cuando una de las dos hojas a comparar tiene muchos registros simplemente se bloquea. Son aproximadamente 13000 registros para comparar entre sí.
Solo necesito saber las diferencias. Aquí un ejemplo mas claro:
Hoja 1
Columna A(Valor Clave) Columna B
9999 10
8000 10
Hoja 2
Columna A(Valor Clave) Columna B
8000 10
9999 12
Compararía los valores en las dos hojas y resaltaría el 12 como la diferencia.