Jump to content

Comparar 2 columnas de hojas diferentes y remarcar diferencias


Recommended Posts

Buenas tardes @Antoni y demás usuarios,

Referente a su aportación del EXCEL Comparar dos hojas, simplemente, excelente, espectacular, inigualable y mis más sinceras felicitaciones.
Con su permiso la parte de "lectura\traslado" de archivos Excel  es excelente y lo he añadido a un mini proyecto nuevo que me han solicitado en el trabajo. (Y creo que lo utilizaré en más ocasiones).

El formulario de momento queda así, (Obra suya al 99% por supuesto).

image.thumb.png.6a0965e9ee0e952cc88a3353da1ceaf2.png


Lo único que añadiré, a parte de colores, es un botón nuevo a su formulario que ejecute una macro que lo que necesito y pretendo es que:

Busque en la columna B2 de la Hoja 2 hasta el último dato " en bucle/loop"  las entradas que no existan en la columna B de la hoja1 y coloreando de color rojo las referencias que encuentre que no existen en la hoja 1 columna b:b

Los archivos no tienen que tener la misma cantidad de datos ni estar en el mismo orden, los datos de las columna B son únicos, como si fuera una key, y solo pretendo que si en la hoja2 columna b hay algún dato que no exista en la columna b de la hoja1 me sombree la celda de color rojo, no sé si me explico.

Usted me podría ayudar?

Gracias por adelantado, un saludo.

Link to comment
Share on other sites

Creo que he encontrado una solución. 

El problema que encuentro es la comparación de columnas en diferentes hojas. Si las columnas están en la misma hoja creo saber cómo hacerlo. Así que mañana intentaré hacer una cosa que creo funcionará. Crearé una nueva hoja que permanecerá oculta en la que se pegaran los datos de las columnas que necesito, busque las diferencias y copie y pegue el resultado en la columna de la hoja2 substituyendo los datos. 

Lo tengo en la cabeza, no sé si será una chapucilla pero si funciona cuelgo el archivo Excel por si le sirve a alguien. 

Link to comment
Share on other sites

Buenos días, lo que pensé ayer no termina de funcionar.

Adjunto el archivo por si lo queréis y podéis ver pero creo que no termina de funcionar por el código que he utilizado en la parte de 'Buscamos duplicados entre las columnas A y B de la hoja Resultado y la forma de colorear no está bien programada.

No entiendo el motivo pero copia la columna con las celdas sombreadas  pero la pega en la siguiente hoja sin el color de las celdas, solo los valores sin el color de fondo y como podéis comprobar utilizo Sheets("Mes2").Range("B2").PasteSpecial xlPasteAll que en teoría tendría que pegarlo tal como está la celda.

El error se encuentra aquí y no doy con la solución:

Private Sub CommandButton2_Click()

'Copiamos las columnas B de hoja(mes1) y hoja(mes2) en la hoja Resultado
Sheets("Mes1").Select
Range("B2", Range("B2").End(xlDown)).Copy: Sheets("Resultado").Range("A1").PasteSpecial xlPasteValues
Sheets("Mes2").Select
Range("B2", Range("B2").End(xlDown)).Copy: Sheets("Resultado").Range("B1").PasteSpecial xlPasteValues

Sheets("Resultado").Select
Worksheets("Resultado").Columns("A:B").AutoFit

'Buscamos duplicados entre las columnas A y B de la hoja Resultado
Sheets("Resultado").Select
Columns("A:B").Select
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With

'copiamos la columna B de la hoja Resultado en la hoja Mes2
Sheets("Resultado").Select
Range("B1", Range("B1").End(xlDown)).Copy
Sheets("Mes2").Range("B2").PasteSpecial xlPasteAll

Unload Me
Sheets("Mes2").Select


End Sub

 

 

Gracias.

DiferenciasEntreColumnas.xlsm

Link to comment
Share on other sites

Yo sigo investigando y contestándome solo :)

Al final lo saco ya veras!!!!!!!!!

Al parecer, es complicado el copiado y pegado de celdas con formato condicional, pero he encontrado un truco chapucero pero efectivo y consigo lo que necesito.

He añadido el siguiente código y funciona!!!!

Sub CompararCeldas()

Sheets("Resultado").Select
Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B2").Select
    Sheets("Resultado").Range("B2").AutoFilter Field:=2, Criteria1:=RGB(255, _
        199, 206), Operator:=xlFilterCellColor
    Range(Selection, Selection.End(xlDown)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 10066431
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    ActiveSheet.ShowAllData
    Columns("B:B").Select
    Selection.Copy
    Range("C1").Select
    ActiveSheet.Paste
    
    Application.CutCopyMode = False
    
    Selection.AutoFilter
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Columns("A:B").Select
    Selection.Delete Shift:=xlToLeft
    Range("D8").Select
    Columns("A:A").EntireColumn.AutoFit
    
End Sub

Si lo termino mañana lo subo aquí mismo funcionando por si le puede ser de utilidad a alguien.

Un saludo.

Link to comment
Share on other sites

Buenas tardes chicos,

Ya lo he hecho funcionar, tarda un poco al pulsar el botón Ejecutar Comparación que supongo que será por lo poco "depurada" que está la macro pero es hasta donde llego a base de leer y copiar y pegar :) he observado que ocupa mas de 2Mb y no es normal, supongo que arrastra algún error que lo hace ir ampliando conforme se usa.

Os dejo el archivo por si alguien lo necesita, se que es un poco raro pero quien sabe? a lo mejor le va bien a alguien.

Un saludo.

DiferenciasEntreColumnas.7z

Link to comment
Share on other sites

Buenas tardes a todos,

Adjunto última actualización, ahora si que está superado mi "reto". 

Ya no hay una tercera hoja oculta ni formatos condicionales con los problemas que traen ni nada por el estilo, y tal como lee los archivos Excel ya remarca las diferencias entre un archivo y otro. 

Adjunto corrección por si lo necesitáis.

Un saludo.

DiferenciasEntreColumnas v2.0.xlsm

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Privacy Policy