Vba Si hora actual esta dentro de franja horaria

¿Cómo andan? Tengo una tarea que hacer que no me sale. Cuando el usuario del excel que estoy realizando pasa por el form donde coloca usuario y contraseña obtengo con el procedimiento que voy a poner a continuación la hora de ese momento y a partir de ahí de acuerdo a esa hora si esta dentro de las 5am y las 1:30pm seria Turno Mañana, si esta dentro de las 1:31 pm y las 9:40pm seria Turno Tarde y si esta entre las 9:41pm y las 4:59am seria turno noche. Lo intenté hacer con If pero no me da bola cuando pregunto si es menor. El procedimiento para extraer la hora que hice funciona y es el siguiente:

Sub extrae_hora()
     Dim ahora As String, inicial As Byte, hora As String
     ahora = Now
     inicial = InStr(ahora, " ")
     hora = Right$(ahora, Len(ahora) - inicial)
     MsgBox TimeValue(hora)
End Sub

1 Respuesta

Respuesta
1

Ahí pude hacerlo, esta es la respuesta:

Sub extrae_hora()
    Dim ahora As String, inicial As Byte, hora As String
    ahora = Now
    inicial = InStr(ahora, " ")
    hora = Right$(ahora, Len(ahora) - inicial)
 If TimeValue(hora) >= TimeValue(#5:00:00 AM#) And TimeValue(hora) <=                  TimeValue(#1:30:59 PM#) Then
MsgBox "turno mañana"
ElseIf TimeValue(hora) >= TimeValue(#1:31:00 PM#) And TimeValue(hora) <= TimeValue(#9:40:59 PM#) Then
MsgBox "turno tarde"
ElseIf TimeValue(hora) >= TimeValue(#9:41:00 PM#) And TimeValue(hora) <= TimeValue(#11:59:59 PM#) Then
MsgBox "turno noche"
ElseIf TimeValue(hora) >= TimeValue(#12:00:00 AM#) And TimeValue(hora) <= TimeValue(#4:59:59 AM#) Then
MsgBox "turno noche"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas