Al oprimir Enter capturar la hora actual en una celda.

Tengo que hacer una macro para una planilla excel que al ingresar un dato numérico en la celda A10 y al momento de hacer enter me capture la hora "hh:mm" (formato 24 hs) en la celda I10 y asi sucesivamente, si pongo un dato en la celda A11 capture la hora en la I11.

1 respuesta

Respuesta
1

Entrá al Editor (con Alt+F11), seleccioná desde el panel a tu izquierda con doble clic el objeto HOJA donde vas a hacer este control, y allí copiá esta macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'controlamos lo que se ingresa en col 1 (A)
If Target.Column <> 1 Then Exit Sub
'si el dato es numérico se coloca fecha en col I
If Not IsNumeric(Target) Then Exit Sub
Target.Offset(0, 8) = Format(Now(), "hh:mm")
End Sub

PD) Te recuerdo que en este foro hay que FINALIZAR las consultas, de lo contrario quedarás bloqueado x un tiempo y además los expertos solo hacemos excepción con 1 cerrada... no acumules otra

Mil disculpas puse la celda A10 y en realidad es D10 igualmente cambie las posiciones y quedo algo asi:

Private Sub Worksheet_Change(ByVal Target As Range)

'x Elsamatilde 'controlamos lo que se ingresa en col 4 (D)

If Target.Column <> 4 Then Exit Sub

'si el dato es numérico se coloca fecha en col I

If Not IsNumeric(Target) Then Exit Sub Target.Offset(0, 5) = Format(Now(), "hh:mm")

End Sub

Elsa ahora necesito agregar una posición en la macro que al borrar el dato numérico ingresado en col 4 me borre la hora en col I, ya que he observado que al borrar el dato numérico no se me borra la hora.

Desde el comentario hasta el End Sub debe quedar así:

'si el dato es numérico se coloca fecha en col I
If Target = "" Then
Target.Offset(0, 5) = ""
ElseIf IsNumeric(Target) Then
Target.Offset(0, 5) = Format(Now(), "hh:mm")
End If
End Sub




Añade tu respuesta

Haz clic para o

Más respuestas relacionadas