
Ok, tengo una hoja de cálculo grande (por lo que no quiero tener que configurar el color de cada celda de forma individual o manual) y tengo muchas celdas copiando otras celdas. Entonces, por ejemplo, tengo las celdas N9, N 3, N80, N117, etc. =IF(N$931="","",N$931), por lo que si hay algo en N931, se copia en N9 y compañía; de lo contrario, es blanco. Me gustaría tener la posibilidad de hacer que cualquier color de fondo que configuré en N931 sea automáticamente el mismo color de fondo que en N9. ¿Cómo haré esto?
¡Salud! jon
Respuesta1
Debido a que no puedes establecer un color de celda basado en el color de otra celda usando formato condicional o cualquier otra técnica de interfaz, tendrás que usar VBA.
Suponiendo que sus datos, con colores, están en la fila N y comienzan en la fila 500. También supongamos que su primera celda para copiar es N1 y hace referencia a N500 como =if(N500="", "", N500)
. Suponiendo además que copiaría esa fórmula a N499; el VBA se vería así:
Sub copyValuesAndFormats()
Dim intRow As Integer
Dim rngCopy As Range
Dim rngPaste As Range
'Loop from Rows 1 through 499
For intRow = 1 To 499
'Set the copy and paste range
'CHANGE THE SHEET TO MATCH YOURS
Set rngCopy = Sheet3.Range("N" & intRow + 499)
Set rngPaste = Sheet3.Range("N" & intRow)
'Test to see if rows 500+ have a value
If rngCopy.Value <> "" Then
'Since it has a value, copy the value and color
rngPaste.Value = rngCopy.Value
rngPaste.Interior.Color = rngCopy.Interior.Color
'If you wish to copy the color of the font as well, uncomment the next line
'rngPaste.Font.Color = rngCopy.Font.Color
End If
Next intRow
End sub
Si usa esto, entonces no se necesitan fórmulas en N1:N499. Este código los eliminará de todos modos.