Colocar en una celda una letra o color y que en otra me aparezca la hora actual

Quiero que en una celda me aparezca la hora actual automáticamente si en otra celda pongo una letra o color.
Ejemplo: En la celda C5 colocó una "X" y en la celda C6 me aparezca la hora actual automáticamente. El trabajo para ingreso de personal en una lista de empleados

1 Respuesta

Respuesta
1

Puedes usar una formula como la siguiente:

=IF(C5="X",NOW(),"")

La formula la pegarías en C6.

Ten en cuenta que debes dar click derecho en la celda C6 y formatear la celda para que tenga el formato de HORA.

No es posible hacer esto con el color usando una formula, Excel no permite condicionar una celda basada en su color.

Pero lo puedes lograr con VBA, aunque también tiene su limitación hasta donde yo sé, tal vez alguien conoce otra forma. El problema es que en VBA no hay una función dedicada a capturar el cambio de color de una celda, y el evento Change solo captura los datos entrados, no el color interior.

Para ello, habría que hacer una validación al salir de la celda, y se puede hacer con el siguiente código. (Debes pegarlo en el modulo de la hoja):

Option Explicit
Public OldCell As String
Public NewCell As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If NewCell = "" Then NewCell = ActiveCell.Address
OldCell = NewCell
NewCell = ActiveCell.Address
If Range(OldCell).Address = "$C$5" Then
    If Range(OldCell).Interior.ColorIndex = 3 Then
    Range("C6").Value = Format(Now(), "hh:mm:ss AM/PM")
    Else
    Range("C6").Value = ""
    End If
End If
End Sub

El codigo chequea la celda C5 al salir de ella, y mira si el color es rojo. La posicion del color rojo en Excel es 3

Range(OldCell).Interior.ColorIndex = 3

Puedes leer mas cobre la paleta de colores de excel aqui: Paleta de colores de Excel

Sustituyendo el 3, o incluso el tipo de código, puedes usar el color que quieras.

Andy M.

PD: en el caso de VBA no es necesario formatear la celda, ya que se le indica el formato directamente en el código con la línea Format(Now(), "hh:mm:ss AM/PM")

¡Gracias! Muchísimas gracias Andy Machín voy a intentar con lo primero, con la fórmula. Lo ocupo ya que tengo que poner hora por hora de ingreso a muchas personas conforme a su llegada y creo que esto me facilita muchísimo mi trabajo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas