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

Añade tu respuesta

Haz clic para o