Comparar celdas y si son iguales, pegar valor en celda vacía.

2 envíos / 0 nuevos
Último envío
gonsyto
Imagen de gonsyto
Offline
última acción: Hace 4 años 9 meses
alta: 20/07/2019 - 08:38
Puntos: 35
Comparar celdas y si son iguales, pegar valor en celda vacía.

Saludos. Si me pueden ayudar les estaría muy agradecido.

En una hoja excel, tengo unos valores en la columna AA y otros en la columna C que están incompletos (celdas en blanco).

Necesitaria una macro que compare los valores de todas las celdas de la columna AA y cuando encuentre coincidencias, copie el valor correspondiente de su celda en la columna C en la celda en blanco.

En la imagen del ejemplo,  AA/16 es igual AA/17, entonces debería copiar el valor C/16=1900 y pegarlo en C/17 celda en blanco. Y le ponga color a la celda para diferenciarla.

AA/22 es igual AA/23 entonces, debería copiar el valor C/22=1900 en C/23. Y le ponga color a la celda para diferenciarla.

AA/24 es igual AA/25-26-27 entonces, debería copiar el valor C/24=7200 en C/25-26-27. Y le ponga color a la celda para diferenciarla.

Gracias por su ayuda.

AdjuntoTamaño
Image icon rellenar_celdas_19-07-2019.png11.58 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 18 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
entiendo que tienes qeu hacer

entiendo que tienes qeu hacer varias cosas

Lo primero es recorrer la columna C en busca de celdas en blanco. Lo puedes hacer con un bucle que vaya cambiando la fila por ejemplo y compruebe si la celda está vacía

If IsEmpty(TuCeldaEnColumnaC.Value) Then ...

Cuando encuentre una celda en blanco tendrás que ver si el valor de la columna AA apareció antes, eso quiere decir, que debería estar en las filas anteriores a la actual. para encontrar la posición de la coincidencia puedes utilizar la función coincidir de la hoja de cálculo, que en VBA es Worksheetfunction.MATCH

filaanteriorcoincidente=Application.Worksheetfunction.Match(valorenlacolumnaAAdelafilaactual,rangodesdelafila1hastalafilaactualmenos1,coincidenciaexacta)

si no encuentra el valor generará un error, con lo que tendrás que añadir un tratamiento de errores para ese caso.

si lo encuentra, tendrás ya la fila de la que tomar el valor de la columna C y ponerlo en la fila actual

TuCeldaEnColumnaC.Value = CeldaencolumnaCdelafilaencontrada.Value

 

y por último quieres ponerle color a la celda

Tucelda.Interior.Color=...

 

 

 

------
Ya sé Excel, pero necesito más.