Resaltar valores repetidos de dos hojas

Quisiera saber donde tengo el error en el siguiente código con el que pretendo hacer una búsqueda en dos hojas para encontrar los valores que coincidan y resaltarlos en un color para después filtrar si me lo puedes modificar para extraer los renglones e insertarlos en una tercera hoja

Dim resultado As Double
Sheets("filtro1").Activate
For Each celda In Range(col & 2 & ":" & col & 7435) 'Range("h52:h54")
celda.Select
ubica = celda.Address
ubica_mun = "$F" & Mid(ubica, 3)
If celda.Value = Null Or celda.Value = "" Then
GoTo salto
End If
Sheets("DETALLE").Activate
For Each celda2 In Range(coldetalle & 2 & ":" & coldetalle & 27206) 'Range("h52:h54")
celda2.Select
ubicaDETALLE = celda2.Address
ubica_munDETALLE = "$B" & Mid(ubicaDETALLE, 3)
If celda2.Value = Null Or celda2.Value = "" Then
GoTo salto1
End If
If celda2.Value = Sheets("filtro1").Range(ubica).Value And Sheets("filtro1").Range(ubica_mun).Value = Sheets("DETALLE").Range(ubica_munDETALLE).Value Then
Sheets("filtro1").Range(ubica).Interior.ColorIndex = 6
celda2.Interior.ColorIndex = 6
'celda2.Row.Interior.ColorIndex = 6
End If
salto1:
Next
salto:
Next

End Sub

Al hacer la depuración paso por paso encuentra el primer registro que coincide con los criterios y lo resalta pero al dejar correr la macro sin depuración me da el error de que falta un objeto y al revisar la inspección la variable celda2. Value se encuentra vacia posiblemente porque llega al final del renglon

¿Cómo puedo modificar el ciclo for para que haga la bsqueda sin tener que definir el rango?

¿Cómo resalto el renglón completo en un color?

¿O cómo extraer el renglón completo encontrado a una tercera hoja?

1 Respuesta

Respuesta
1

H  o l  a :

Te anexo una nueva macro. No es recomendable utilizar la instrucción GoTo, no es práctico para el flujo del programa, y mucho menos dentro de un ciclo, es muy complicado darle seguimiento. Debes buscar la forma de estructurar tu código para no utilizar el GoTo.

Por lo que pude entender comparas las columnas H y F de la hoja "filtro1", contra las columnas H y B de la hoja "detalle", cambia las columnas en la macro si es necesario.

Crea una hoja llamada "Resultado" en esa hoja se copiarán los registros duplicados.

Sub BuscaRepetidos()
'Por.Dante Amor
    Set h1 = Sheets("filtro1")
    Set h2 = Sheets("DETALLE")
    Set h3 = Sheets("Resultado")
    '
    h3.Cells.Clear
    h1.Rows(1).Copy h3.Rows(1)
    'coumnas de la hoja 1
    co1 = "H"
    co2 = "F"
    'columnas de la hoja 2
    cd1 = "H"
    cd2 = "B"
    '
    k = 2
    u = h1.Range(co1 & Rows.Count).End(xlUp).Row
    For i = 2 To h1.Range(co1 & Rows.Count).End(xlUp).Row
        For j = 2 To h2.Range(co2 & Rows.Count).End(xlUp).Row
            If h1.Cells(i, co1) = h2.Cells(j, cd1) And _
               h1.Cells(i, co2) = h2.Cells(j, cd2) Then
                h1.Rows(i).Interior.ColorIndex = 6
                h2.Rows(j).Interior.ColorIndex = 6
                h1.Rows(i).Copy h3.Rows(k)
                k = k + 1
                Exit For
            End If
        Next
    Next
    MsgBox "Fin"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas