Como asignar una hora a una variable?

Me gustaria que me ayudaran con la siguiente cuestion que tengo.

Quiero determinar con una macro un turno especifico, dependiento de los horarios por ejemplo: si la hora en que hago una captura es entre 6:30 - 14:29 = T2, 14:30 - 21:29 = T3, cualquier otra hora = T1.

Eso lo soluciono en una hoja de calculo con la siguiente formula:

=+IF(AND(AR2>=horario!$A$1,AR2<horario!$B$1),2,IF(AND(AR2>=horario!$A$2,AR2<horario!$B$2),3,1))

en la hoja horario tengo los horarios de cada turno.

Pero en una macro lo quiero hacer de la siguiente forma:

Private Sub UserForm_Initialize()
Dim turno As Date
aux = WorksheetFunction.CountA(Range("A:A"))
Fecha = Format(Date, "mm/dd/yyyy")
Hora = Format(Time, "HH:mm")
celda = aux + 1
Dini = Time("06:30")
Dfin = Time("14:29")
Tini = Time("14:30")
Tfin = Time("21:59")
If Hora >= Dini And Hora < Dfin Then
    turno = 2
    Else
    If Hora >= Tini And Hora < Tfin Then
    turno = 3
    Else
    turno = 1
    End If
End If
Label5 = Fecha
Label7 = turno
'Label7.Caption = Sheets("SEG_AMB").Range("B2") 'Cells(celda, 2)
Cells(celda, 44) = Hora
Cells(celda, 1) = Fecha
End Sub

pero me da el error "Run-tim '13" Type match
Supongo que es por que estoy definiendo mal la hora en cada variable.

1 Respuesta

Respuesta
1

Buenos irónicamente unos minutos después llegue con la solución, efectivamente el problema es que estaba mal la forma en que asigaba el valor a cada variable:

Cambio lo siguiente:

Dini = Time("06:30")
Dfin = Time("14:29")
Tini = Time("14:30")
Tfin = Time("21:59")

por:

Dini = TimeValue("06:30")
Dfin = TimeValue("14:29")
Tini = TimeValue("14:30")
Tfin = TimeValue("21:59")

y el tipo de variable turno de:

Dim turno As Date

por:

Dim turno As Variant

Ya que Date me devuelve una fecha.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas