-
Hola a todos.
Tengo dudas, agradeceré la atención y ayuda.
Ejemplo de lo que se me pide:
--Un trabajador labora de 7:00 a.m. a 3:00 p.m.
--Hoy entró a laborar a las 6:50:26 a.m. y salió a las 4:36:56 p.m.
--Debo capturar en 1 textbox la hora de entrada / en otro textbox la hora de salida (con segundos incluídos). Después de esto un comandbutton (calcular) y otros 3 textbox que me deben arrojar el total de tiempo laborado en horas / minutos / segundos...
En el ejemplo de 6:50:26 a.m. a 4:36:56 p.m., se entiende que el trabajador laboró:
9 Horas, 46 Minutos, 30 Segundos
Gracias.
-
Hola, creo que ya se habia tratado esto hace tiempo AQUI.
Leiste mi ultimo post? tienes alguna duda concreta?
Saludos
-
Agradezco tus observaciones, pero realmente no es igual...
Estoy de acuerdo que mi duda anterior es bastante similar pero en la primera, yo capturaba un número x de segundos y se convertían a HH/MM/SS, en ésta nueva discusión deseo capturar tiempo (no, números) algo así: 12:36:27, y que visual me diga si laboré mis 8 horas promedio o me excedí y quiero que si me excedí, quede corto o el tiempo que haya laborado me muestre en formato de HH/MM/SS
Como expongo anteriormente, soy principiante.
En la práctica de segundos utilicé MOD
Ahora en ésta nueva necesito el adddate y el mod pero no sé como hacerlo.
-
Tienes razon spaghetti, es muy similar, pero de hecho este puede ser mas facil, no creo que sea necesario el adddate, con la funcion timevalue se puede hacer facilmente, mira este ejemplo que hice e intenta adaptarlo: Código:
Private Sub Form_Load()
* *Dim horaentrada As Variant
* *Dim horasalida As Variant
* *Dim tiempotrabajado As Variant
* *horaentrada = Format("9:00:00", "hh:mm:ss")
* *horasalida = Format("16:30:20", "hh:mm:ss")
* *MsgBox "Trabajaste " & Format(TimeValue(horasalida) - TimeValue(horaentrada), "hh:mm:ss") & " horas"
End Sub
Saludos
-
Hola rob1104, tu código me ha ayudado mucho, en verdad te lo agradezco.
Desgraciadamente aún no logro crear lo que yo deseo:
Si sigo tu ejemplo, cada que necesite calcular otros horarios debo ingresar a la ventana de código y modificar "9:00:00" y "16:30:20"
Deseo hacerlo más visual, necesito 6 textbox, 3 para el horario de entrada (1 para HH, 2 para MM, 3 para SS) y 3 para el horario de salida (1 para HH, 2 para MM, 3 para SS). Cuando de clic en el botón "calcular" me muestre en una Label la diferencia de tiempo tal y como tu lo hiciste en tu MsgBox.
Aún sigo investigando por Internet, pero espero recibir más ayuda en este foro, muchas gracias.
Private Sub Form_Load()
Dim horaentrada As Variant
Dim horasalida As Variant
Dim tiempotrabajado As Variant
horaentrada = Format("9:00:00", "hh:mm:ss")
horasalida = Format("16:30:20", "hh:mm:ss")
MsgBox "Trabajaste " & Format(TimeValue(horasalida) - TimeValue(horaentrada), "hh:mm:ss") & " horas"
End Sub
-
De hecho parte de tu código me ha servido mucho, el problema que tengo es como (con que función o algo por el estilo) hacer para que los textbox me reconozcan la fecha (Recordemos que son 3 textbox para cada parte de la fecha) y después puedan unirla (recordemos que si en 3 textbox capturaremos HH,MM y SS, la fecha queda partida en tres) para que se muestre en un label...
-
He resuelto mi problema de una forma demasiado sencilla (aunque para mí ha sido muy complicado).
Me falta un sólo detalle, mismo que no descansaré hasta encontrarlo.
Tan sólo necesité:
3 Textbox
3 CommandButton
3 Label
El código es el siguiente:
Option Explicit
Private Sub Command1_Click()
'Se declara una variable como cadena de caractéres
Dim Diferencia As String
'CDate reconoce literales de fecha y literales de hora así como 'números que están dentro del intervalo de fechas aceptables.
Diferencia = CDate(CDate(Text1.Text) - CDate(Text2.Text))
End Sub
Private Sub Command2_Click()
Text1.Text = Empty
Text2.Text = Empty
Text3.Text = Empty
Text1.SetFocus
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Alguna vez (alguién de este foro) me dijeron que era bueno publicar la respuesta para compartirla y que sirviera de referencia a otros usuarios.
A pesar de mi "éxito", necesito que mis textbox tengan el formato de hora...pór ejemplo: si capturo 154523 el textbox lo convierta a 15:45:23, estoy usando la propiedad DataFormat pero aún así debo capturar mis números con puntos (15:45:23), si no los capturo así, cuando calculo me arroja un resultado: 24/05/1965 (me regresa una fecha)...
También, cuando capturo con puntos (15:45:23) me arroja, efectivamente, el tiempo laborado en HH:MM:SS tal como lo quiero, pero el pequeño detalle es que me aparece a.m. o p.m.
Gracias rob1104.
-
Hasta este post he logrado que en tiempo total laborado ya no me aparezca a.m. y p.m. y lo hice de la manera más sencilla que hay: límite la propiedad MaxLength a 8 caracteres (1h 2h, 3:, 4M 5M, 6:, 7S 8S)
Sigo informando...