Macro para comparar hojas con un checkbox
Necesito una macro para comparar los datos de dos hojas y que actualize en una los datos faltantes. Lo malo es que algunos datos están organisados en otras columna, también asignarle a un botón la macro que cuando corra revisé que la checkbox este activo o desactivo dependiendo si la hoja contra la que voy a comparar (All PTNs) este actualizada, empecé con una macro que encontré en este sitio web pero cuando llega a la parte de "If CheckBox2.Value =True Then " me marca "Run-time error '424' Object requerid". También me gustaría si pudieran mejorar cuando actualize en la hoja que llevo el control (Matriz)
Columnas: All PTN, Matriz (la columna J del "All PTNs es la columna R de "Matiz". Etc)
| A,A | B,B | C,C | D,F | E,Q | J,R | K,E | L,G | M,H |
Sub Macro PTNs()
Set h1 = Sheets("Matriz")
Set h2 = Sheets("All PTNs")
h2.Activate
Set r = h1.Range("A:U")
col = "A"
col2 = "B"
col3 = "C"
col4 = "D"
col6 = "F"
col10 = "J"
col11 = "K"
col12 = "L"
col13 = "M"
cuenta = 0
If CheckBox2.Value = True Then
For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
Set b = r.Find(Cells(i, col))
Set c = Cells(i, col)
If b Is Nothing Then
' MsgBox "No lo encontre"
Cells(i, col).Interior.ColorIndex = 6
h1.Activate
Range("A1").Activate
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.Value = h2.Range(col & i).Value
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = h2.Range(col2 & i).Value
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = h2.Range(col3 & i).Value
ActiveCell.Offset(0, 3).Range("A1").Select
ActiveCell.Value = h2.Range(col4 & i).Value
ActiveCell.Offset(0, 11).Range("A1").Select
ActiveCell.Value = h2.Range(col6 & i).Value
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = h2.Range(col10 & i).Value
ActiveCell.Offset(0, -13).Range("A1").Select
ActiveCell.Value = h2.Range(col11 & i).Value
ActiveCell.Offset(0, 2).Range("A1").Select
ActiveCell.Value = h2.Range(col12 & i).Value
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = h2.Range(col13 & i).Value
cuenta = cuenta + 1
h2.Activate
Else
If b = c Then
Set bb = r.Find(Cells(i, col2))
Set cc = Cells(i, col2)
If bb Is Nothing Then
'Rutina para pegar como la de Arriba
Else
If bb = cc Then
MsgBox "Si lo encontre"
End If
End If
End If
End If
Next
MsgBox "Total de PTNs Faltantes = " & cuenta
Else
If CheckBox2.Value = False Then MsgBox "No esta actualizado la hoja All PTNs"
End If
End Sub