Como puedo hacer para que la hora de la caja de texto me muestre como hora y no con decimales

Tengo en la macro la caja de texto Hora de validación en la cual se coloca la hora cuando el Status de la entrega se encuentre Cerrada.

Lo que hice fue agregarle el código en el mismo excel de la hoja de PlantillaFija colocándole lo siguiente: Pero el inconveniente es que cuando paso el cursor por la columna Y estando con Status Pendiente le coloca la hora en la columna AA cuando no debería colocarlo y cuando se jala a la caja de texto lo muestra como decimales.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'PARA PEGAR LA HORA
If Not Intersect(Target, Range("Y:Y")) Is Nothing Then
If Cells(Target.Row, "AA") = "" Then
Application.EnableEvents = False
Cells(Target.Row, "AA") = Now
Application.EnableEvents = True
End If
End If
End Sub

La otra forma fue colocándole una condición en el mismo formulario para que cuando el status este "Entrega Pendiente" no muestre la hora sino solo en "Entrega Cerrada".

¿Cuál debería ser la manera mas optima en colocarse el código y que no genere lentitud al cargar la macro?

Dirigido para Dante Amor

Respuesta
1

No entiendo esto que comentas:

"La otra forma fue colocándole una condición en el mismo formulario para que cuando el status este "Entrega Pendiente" no muestre la hora sino solo en "Entrega Cerrada"."

Puedes explicarme con ejemplos paso a paso qué es lo que esperas que suceda.

En el último archivo que me enviaste no veo el formulario para mostrar la hora, podrías enviármelo.

Para mostrar el tiempo en un textbox puedes utilizar un formato:

TextBox1 = Format(Range("B4"), "hh:mm:ss")

Estimado Dante;

A inicio aplique la condición Si y ahora() en el mismo excel pero  me actualizaba toda la columna, e incluso le puse la condición en el ComboBox1  

If txtstatus.Text = "ENTREGA CERRADA" Then
Me.txthorarioFinalValidacion = Time
Else
Me.txthorarioFinalValidacion = ""
End If

Pero en fin nada..

Aquí paso a explicarle;

En el formulario tengo la caja de texto Horario de Validación la cual deberá colocar la hora cuando la caja de texto Status se encuentre como Entrega Cerrada de no estarlo quedara vació. Y luego la hora que quede registrado en la caja de texto Horade Validación se registre en la hoja de PlantillaFija de la columna AA.

Saludos;

Para poner la hora con formato quedó así:

             If txtstatus = "ENTREGA CERRADA" Then

                Me.txthorarioFinalValidacion = Format(Time, "hh:mm:ss")

            Else

                Me.txthorarioFinalValidacion = ""

            End If

            Me.txtobserva = Hoja2.Cells(fila, 26)

            'Me.txthorarioFinalValidacion = Hoja2.Cells(fila, 27)

Pero no entiendo en qué momento vas a poner la hora de txthorarioFinalValidacion 

en la columna AA

Lo que tienes que hacer, para pasar el dato del txthorarioFinalValidacion a una celda es:

Dim tiempo As Date

tiempo = txthorarioFinalValidacion 

Hoja2.Cells(numfila, "AA") = tiempo

Prueba si puedes adaptar el código, sólo falta poner la variable de numfila.

Si es lo que necesitas.

Muchas Gracias Dante!.. hice los cambios y y ahora si funciono.

Pero tengo otro inconveniente que no se dio antes con respecto a la actualización del detalle de información de las entregas.

Cuando los bultos de cada entrega se van actualizando esto debería reflejarse los cambios en automático en las cajas de texto, antes se actualizaban pero ahora ya no. o es que debería agregar algún dato en el combobox1_enter()

Le he paso por su correo la explicación más detallada.

Saludos;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas