Función vba para cambiar color celdas

Te agradecería mucho me indiques como hacer una fórmula vba para cambiar el color de las celdas de una columna a partir de los datos de dos columnas adyacentes, donde una de ellas solo puede aparecer vacía o el valor "X" y la otra una fecha que se debe comparar con la fecha actual.

2 respuestas

Respuesta
1
¿Tiene qué ser por medio de código VBA o puede ser con Formato condicional?
Se me ocurre que podes solucionarlo fácilmente con esto último.
Si la col B tendrá valores POR o vacíos y la col C fechas, seleccioná el rango de la col donde quieras asignar color (por ej, A) y desde menú Formato, Formato Condicional, optá por Fórmula (en lugar de Valor de celda)
En el cuadro ingresá una fórmula similar a esta (ajústala a tus rangos y condiciones):
=Y(B2="X";C2=HOY())
Asigná un formato. Esto hará que en la fila donde estas 2 condiciones se cumplan, se asigne el formato en la celda de la col, por ej: A.
Saludos
Elsa
Más Trucos y Soluciones Excel desde:
http://es.geocities.com/lacibelesdepunilla/manuales
Respuesta
1
a), perdona la tardanza pero he estado hospitalizado. En cuanto a tu consulta, aquí te dejo un pedacito de código para que lo adaptes a tus necesidades, lo que hace es seleccionar las celdas negativas y ponerlas en rojo, pero como te digo, lo puedes modificar según tus necesidades.
Sub SelectiveColor2()
' Hacer el fondo celda rojo si el valor es negativo
Dim FormulaCells As Range
Dim ConstantCells As Range
Dim cell As Range
Const REDINDEX = 3
' Ignorar errores
On Error Resume Next
Application.ScreenUpdating = False
' Crear subconjuntos de la selección original
Set FormulaCells = Selection.SpecialCells _
(xlFormulas, xlNumbers)
Set ConstantCells = Selection.SpecialCells _
(xlConstants, xlNumbers)
' Procesar las celdas de fórmula
If Not FormulaCells Is Nothing Then
For Each cell In FormulaCells
If cell.Value < 0 Then _
cell.Font.ColorIndex = REDINDEX
Next cell
End If
' Procesar las celdas constantes
If Not ConstantCells Is Nothing Then
For Each cell In ConstantCells
If cell.Value < 0 Then
cell.Interior.ColorIndex = REDINDEX
Else
cell.Interior.ColorIndex = xlNone
End If
Next cell
End If
End Sub
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas