Complementar macro que compara celdas en varias columnas.
Tengo una macro que compara cada una de las celdas en las columnas J+K con cada una de las celdas de las columnas O+P. Cuando encuentra estas coincidencias (J+K=O+P), copia la celda correspondiente de la columna M la pega en la celda coincidente de la columna R y colorea las celdas coincidente de color verde.
Sub comparar_columnas() Set datos = Sheets("hoja1").Range("a1").CurrentRegion With datos filas = .Rows.Count - 1 Set datos = .Rows(2).Resize(filas) Set lista1 = .Cells(1, 10).Resize(filas, 2) Set lista2 = .Cells(1, 15).Resize(filas, 2) Set lista3 = .Cells(1, 13).Resize(filas, 1) Set lista4 = .Cells(1, 18).Resize(filas, 1) Set h2 = Worksheets("hoja2") h2.Cells.Clear Set datos2 = h2.Range("a1").Resize(filas, 2) matriz = datos2 For i = 1 To filas cadena = Application.Transpose(Application.Transpose(lista1.Rows(i))) cadena2 = Application.Transpose(Application.Transpose(lista2.Rows(i))) matriz(i, 1) = Join(cadena, ",") matriz(i, 2) = Join(cadena2, ",") Next i h2.Range(datos2.Address) = matriz For j = 1 To filas cadena = datos2.Cells(j, 1) On Error Resume Next indice = WorksheetFunction.Match(cadena, datos2.Columns(2), 0) If Err.Number = 0 Then indice2 = WorksheetFunction.Match(cadena, datos2.Columns(1), 0) lista1.Rows(indice2).Interior.ColorIndex = 4 lista2.Rows(indice).Interior.ColorIndex = 4 lista4.Cells(indice, 1) = lista3.Cells(indice2, 1) End If On Error GoTo 0 Next j End With Erase matriz Set datos = Nothing: Set lista1 = Nothing: Set lista2 = Nothing Set lista3 = Nothing: Set lista4 = Nothing: Set h2 = Nothing End Sub
Me gustaría, completar esta macro añadiéndole código para que después de ejecutar lo expuesto anteriormente, comparase todas las celdas de la columna J solamente (no J+K) con las celdas de la columna O solamente (no O+P) y si son iguales, que copie el valor correspondiente de la celda en la columna M y lo pegue en la celda correspondiente de la columna R. Pero que no tenga en cuenta las celdas que ha comparado antes (las comparadas por el código que indico). Y las nuevas coincidencias, las coloree de amarillo (por ejemplo).
Intentaré resumirlo más.
Que después de lo que ya hace la macro, vuelva a comparar J y O y si son iguales, que pegue el valor de M en R excepto las celdas que el primer código ha coloreado de verde. Y las nuevas coincidencias, las coloree de amarillo (por ejemplo).
Esto, debe hacerlo con todas las filas de la hoja (entre 1000 y 5000).