Estoy usando Excel 2010 y estoy tratando de configurar una regla que cambie el color de una celda en función de una fecha dentro de esa celda.
Por ejemplo, la celda puede contener Site meeting - 11.05.14
Me gustaría poder cambiar el color automáticamente si está a 2 semanas de distancia, 1 semana fuera, 2 días y expiró.
Idealmente, no quiero tener una celda separada con solo la fecha, así que posiblemente la fecha podría estar en los comentarios. Me doy cuenta de que estoy pidiendo mucho, pero espero que alguien tenga una solución.
Tengo una solución para esto, pero es difícil y no es lo que busco. Usando el formato condicional y la función = NOW puedo lograr los resultados pero usando dos celdas. Espero que haya una manera de decirle a Excel que ignore todo en una celda antes de un cierto símbolo. En este caso "-".
Googleing me ha llevado a VBA, que lamentablemente no tengo idea de cómo usarlo. Entonces, ¿alguien aquí puede ayudar? O al menos dame un empujón en la dirección correcta.
Esto hace lo que quieras
Sub WorkOutTime()
'see http://dmcritchie.mvps.org/excel/colors.htm for colour chart
dim columnToUse as string
columnToUse = "A" ' update this to the colum you want to use
Dim expired As Integer
expired = 3 'red
Dim twoDays As Integer
twoDays = 8 'blue
Dim sevenDays As Integer
sevenDays = 27 ' yellow
Dim fourteenDays As Integer
fourteenDays = 7 ' purple
Dim currentCell As Integer
currentCell = 1
Do While (True)
If (Range(columnToUse & currentCell).Value = "") Then
Exit Do
End If
Dim timeNow As Date
timeNow = Date
Dim willContinue As Boolean
willContinue = True
Dim dateDifference As Integer
dateDifference = dateDiff("d", timeNow, Range(columnToUse & currentCell).Value)
If dateDifference >= 14 And willContinue Then
Range(columnToUse & currentCell).Interior.ColorIndex = fourteenDays
willContinue = False
End If
If dateDifference <= 7 And dateDifference > 2 And willContinue Then
Range(columnToUse & currentCell).Interior.ColorIndex = sevenDays
End If
If dateDifference <= 2 And dateDifference >= 0 And willContinue Then
Range(columnToUse & currentCell).Interior.ColorIndex = twoDays
End If
If dateDifference < 0 And willContinue Then
Range(columnToUse & currentCell).Interior.ColorIndex = expired
End If
currentCell = currentCell + 1
Loop
End Sub

Entonces, en el barra de herramientas del desarrollador, haga clic en Insertar y haga clic en el botón. Arrastre la forma a la pantalla.
Haga clic en Aceptar
Haga clic derecho en el botón y asígnele el nombre WorkOutTime
Si no obtiene la pantalla VBa, haga clic en Visual Basic desde la cinta
Eliminar lo que está allí y pegar mi código.
Guardar como una hoja de trabajo habilitada para macros. Ejecutarlo
Tenga en cuenta que mi código solo funciona para artículos en la Columna A