"Fabien" a écrit dans le message de news:Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OunSHYK7IHA.3260@TK2MSFTNGP03.phx.gbl...
Fabien a écrit :
JeanYves a écrit :
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY
"Fabien" a écrit dans le message de news:Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou 'heure de
jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne fontionne
pas si la plage est située sur 2 jours comme 23:00 à 05:00 par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou 'heure de
jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne fontionne
pas si la plage est située sur 2 jours comme 23:00 à 05:00 par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou 'heure de
jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne fontionne
pas si la plage est située sur 2 jours comme 23:00 à 05:00 par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir
avant minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
JeanYves a écrit :
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir
avant minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir
avant minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00
par exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Fabien a écrit :
JeanYves a écrit :
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
"Fabien" a écrit dans le message de news:Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OunSHYK7IHA.3260@TK2MSFTNGP03.phx.gbl...
Fabien a écrit :
JeanYves a écrit :
Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY
"Fabien" a écrit dans le message de news:Fabien a écrit :JeanYves a écrit :Bonjour,
Je voudrais déterminer si je suis dans la plage 'Heure de nuit' ou
'heure de jour' en fonction de l'heure courante de l'ordinateur.
Ce que j'ai fait :
MyTime = Time
Debug.Print "Heure Courante " & MyTime
Select Case MyTime
Case Is > HDebut
Debug.Print "Heure de nuit le soir"
Case Is < HFin
Debug.Print "Heure de nuit le matin"
Case Else
Debug.Print "Heure de jour"
End Select
(HDebut et HFin proviennent d'une table parramètres)
Mon problème :
Cela fonctionne bien tant que l'heure de début est située le soir avant
minuit et si l'heure de fin est située le matin aprés minuit.
Si la plage change et devient par exemple 01:00 à 05:00 cela ne ne
fonctionnera pas.
L'idée est de faire 'Case HDebut to HFin' mais dans ce cas cela ne
fontionne pas si la plage est située sur 2 jours comme 23:00 à 05:00 par
exemple
Avez vous l'astuce ? D'avance merci
J-Yves
Salut J-Yves
Avec quelque chose comme
Public Function test_plage(hdeb As String, hfin As String, Htest As
String) As Boolean
'Retourne Vrai si dans la plage
Dim Hdebnum, HfinNum, HtestNum As Double
Hdebnum = convert_tps_centieme(hdeb)
HfinNum = convert_tps_centieme(hfin)
HtestNum = convert_tps_centieme(Htest)
If Hdebnum > HfinNum Then
test_plage = HtestNum >= Hdebnum Or HtestNum <= HfinNum
Else
test_plage = HtestNum >= Hdebnum And HtestNum <= HfinNum
End If
End Function
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1) * 5 / 3) / 100
End Function
A tester bien sur ;-)
@+
Oups , c'est ok si les heures sont au format hh:mm ou h:mm
Time retournant du hh:mm:ss soit on tronque
MyTime=left(MyTime,len(MyTime)-3)
Soit
Public Function convert_tps_centieme(H As String) As Double
convert_tps_centieme = Left(H, InStr(1, H, ":") - 1) + (Mid(H,
InStr(1, H, ":") + 1, 2) * 5 / 3) / 100
End Function
Merci mais j'obtiens ces résultats qui ne sont pas systématiquement bon
HTest 11:59:32 - Debut 01:00:01 - Fin 08:00:00
TestNum 11,9833333333333 - DebNum 1 - FinNum 8
Cas Hors plage
Ok
HTest 11:58:50 - Debut 23:00:01 - Fin 08:00:00
TestNum 11,9666666666667 - DebNum 23 - FinNum 8
Cas Dans la plage
Pas bon
HTest 01:56:58 - Debut 23:00:01 - Fin 08:00:00
TestNum 1,93333333333333 - DebNum 23 - FinNum 8
Cas DAns la plage
Ok
HTest 01:55:47 - Debut 01:00:01 - Fin 08:00:00
TestNum 1,91666666666667 - DebNum 1 - FinNum 8
Cas Hors plage
Pas bon
@+
JY