Macro para Comparar algunas columnas de dos hojas distintas en excel

Estoy comenzando a usar Excel y necesito hacer una planilla que en la Hoja 1 realice una macro la cual compara algunos campos de la hoja 2 con la hoja 3, y si los datos son correctos en las dos hojas que los pinte de cierto color. Queria saber si me pueden ayudar!

2 Respuestas

Respuesta
2

Este es un ejemplo de lo que quieres la macro busca en las hojas 2 y 3 el numero 47 y los colorea de de verde

y esta es la macro

Sub PONER_ESTADO()
Set HA = Worksheets("ALUMNO")
Set HC = Worksheets("CONFIGURACION")
Set ALUMNOS = HA.Range("A2").CurrentRegion
NOTA_APROB = HC.Range("G3")
With ALUMNOS
    FILAS = .Rows.Count
    For I = 2 To FILAS
        CALIFICACION = .Cells(I, 4) < NOTA_APROB
        If CALIFICACION Then
            .Cells(I, 6) = "DESAPROBADO"
        Else
            .Cells(I, 6) = "APROBADO"
        End If
    Next I
End With
Set ALUMNOS = Nothing: Set HA = Nothing: Set HC = Nothing
End Sub
Sub COMPARAR_COLUMNAS()
Set h2 = Worksheets("HOJA2")
Set h3 = Worksheets("HOJA3")
Set tabla2 = h2.Range("A1").CurrentRegion
Set tabla3 = h3.Range("A1").CurrentRegion
CRITERIO = 47
With WorksheetFunction
    CUENTA2 = .CountIf(tabla2, CRITERIO)
    CUENTA3 = .CountIf(tabla3, CRITERIO)
End With
With tabla2
For I = 1 To CUENTA2
    If I = 1 Then Set busca = .Find(CRITERIO)
    If I > 1 Then Set busca = .FindNext(busca)
    CELDA = busca.Address
    h2.Range(CELDA).Interior.ColorIndex = 4
Next I
End With
With tabla3
For I = 1 To CUENTA3
    If I = 1 Then Set busca = .Find(CRITERIO)
    If I > 1 Then Set busca = .FindNext(busca)
    CELDA = busca.Address
    h3.Range(CELDA).Interior.ColorIndex = 4
Next I
End With
Set h2 = Nothing: Set h3 = Nothing
Set tabla2 = Nothing: Set tabla3 = Nothing
Set busca = Nothing
End Sub

Muchas Gracias James Bond! Me sirvió mucho, otra consulta, ¿cómo podría hacer para copiar en la hoja 3 los registros que no tienen coincidencia?. Espero me puedas ayudar!

Saludos!

Gabriel

Perdón quise poner Hoja 1 en vez de Hoja 3.

Esa es otra pregunta diferente y tienes que abrir una nueva consulta

Respuesta
1

No entiendo ¿Cuál es tu duda? ¿Cómo podrías realizarlo?

Hola María gracias por responder. Exacto no se como realizarlo, te cuento que soy Programador de C y PHP pero necesito hacer algo rápido como solución y se me ocurrió una macro en Excel el tema es que mis conocimientos en Excel son muy pobres

Entiendo, para comparar los datos de la hoja 2 y 3 debes de ponerlo en una fórmula de modo a que lo realice en la hoja 1... Según mis conocimientos la fórmula seria

  • =SI(A2=B2; "Coinciden";"No coinciden")

En este caso te puse A2=B2 pero si quieres comparar una gran cantidad de datos en hojas diferentes tendrías que poner 

    •=SI(HOJA 2: A2;D12=HOJA 3: A2;D12; "Coinciden";"No coinciden")

Ahorita te digo sobre el color

Gracias María! Una duda, si yo quisiera copiar los datos que no coinciden entre las hojas 2 y 3 y copiarlos en la Hoja 1, para tener solo en la hoja 1 los registros que no coinciden. Gracias !

¿Osea quieres copiar los datos que no coinciden de la hoja 2 y 3 a la 1? ¿Quieres formar una tabla?

Hola María buenos días, exactamente, me gustaría formar una tabla con los registros que no coinciden. Espero me puedas ayudar.

Saludos!

Por supuesto! ¿Tus datos de qué son? ¿Ya llevas algún avance?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas