Problème d'heure sous VBA

Le
Philou36
Bonjour,

J'ai encore 2 problèmes avec les heures sous VBA.

1°) Je dois savoir l'heure saisie est inféreure à 17h30. Pour cela en début
de procédure j'ai saisie : "Public Const DixSeptHeuresTrente =
0.729166666666667"
et si je saisie 17:30, mon test :
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
HeureFi = Format(HeureFin, "hh:mm")
Phrase = Phrase & Cells(Ligne, 1) & " de " & HeureDeb & " à " & HeureFi
& " : Heure de Début antérieure à 17h30 " & Chr(13)
End If
eh bien si l'heure de début est égale à 17h30 j'ai le message :
17/04/2010 de 17:30 à 23:00 : Heure de Début antérieure à 17h30

comprenez vous quelque chose ? HeureDébut est égale à DixSeptHeureTrante
donc il doit pas passer dans le test !!

2°) Je voudrais qu'il m'affiche un nombre d'heures supérieur à 25 heures.
Pour cela j'ai mis HeureFi = Format(HeureFin, "[h]:mm") mais ca ne marche
pas non plus.

Un grand merci pour votre aide.

Bonnes fêtes de Pâques

Philippe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21494012
Bonjour,

Un petit exemple :

Ces variables peuvent aussi être défini avec le type "Date
Dim HeureDébut As Double
Dim DixSeptHeures As Double
Dim DixSeptHeuresTrente As Double

Lorsqu'elles sont définies "As Double" si tu passes le curseur
au-dessus des variables, c'est un nombre décimal qui est
généré, si tu définis les variables "As Date", les variables
auront un format du type "17:30:00" le même format court
qui se trouve dans le panneau de configuration de Windows.

Tu choisis le type selon tes préférences.

Public Const DixSeptHeuresTrente = 0.729166666666667
'-------------------------------------------
Sub test()
Dim JourSemaine As Integer
Dim HeureDébut As Double
Dim DixSeptHeures As Double
Dim DixSeptHeuresTrente As Double

DixSeptHeuresTrente = TimeValue("17:30")
HeureDébut = TimeValue("17:40")
DixSeptHeures = TimeValue("19:00")
JourSemaine = 2

If HeureDébut > DixSeptHeuresTrente And _
HeureDébut < DixSeptHeures And _
JourSemaine <> 1 Then
Range("A1").NumberFormat = "H:MM"
Range("A1").Value = HeureDébut
Range("A2").NumberFormat = "H:M"
Range("A2").Value = DixSeptHeuresTrente
End If

End Sub
'-------------------------------------------




"Philou36" Of#
Bonjour,

J'ai encore 2 problèmes avec les heures sous VBA.

1°) Je dois savoir l'heure saisie est inféreure à 17h30. Pour cela en début
de procédure j'ai saisie : "Public Const DixSeptHeuresTrente 0.729166666666667"
et si je saisie 17:30, mon test :
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
HeureFi = Format(HeureFin, "hh:mm")
Phrase = Phrase & Cells(Ligne, 1) & " de " & HeureDeb & " à " & HeureFi
& " : Heure de Début antérieure à 17h30 " & Chr(13)
End If
eh bien si l'heure de début est égale à 17h30 j'ai le message :
17/04/2010 de 17:30 à 23:00 : Heure de Début antérieure à 17h30

comprenez vous quelque chose ? HeureDébut est égale à DixSeptHeureTrante
donc il doit pas passer dans le test !!

2°) Je voudrais qu'il m'affiche un nombre d'heures supérieur à 25 heures.
Pour cela j'ai mis HeureFi = Format(HeureFin, "[h]:mm") mais ca ne marche
pas non plus.

Un grand merci pour votre aide.

Bonnes fêtes de Pâques

Philippe
Philou36
Le #21499282
Bonjour

Un grand merci pour toutes ces précisions.
J'etudie tout cela
Mille mercis
Philippe
"michdenis"
Bonjour,

Un petit exemple :

Ces variables peuvent aussi être défini avec le type "Date
Dim HeureDébut As Double
Dim DixSeptHeures As Double
Dim DixSeptHeuresTrente As Double

Lorsqu'elles sont définies "As Double" si tu passes le curseur
au-dessus des variables, c'est un nombre décimal qui est
généré, si tu définis les variables "As Date", les variables
auront un format du type "17:30:00" le même format court
qui se trouve dans le panneau de configuration de Windows.

Tu choisis le type selon tes préférences.

Public Const DixSeptHeuresTrente = 0.729166666666667
'-------------------------------------------
Sub test()
Dim JourSemaine As Integer
Dim HeureDébut As Double
Dim DixSeptHeures As Double
Dim DixSeptHeuresTrente As Double

DixSeptHeuresTrente = TimeValue("17:30")
HeureDébut = TimeValue("17:40")
DixSeptHeures = TimeValue("19:00")
JourSemaine = 2

If HeureDébut > DixSeptHeuresTrente And _
HeureDébut < DixSeptHeures And _
JourSemaine <> 1 Then
Range("A1").NumberFormat = "H:MM"
Range("A1").Value = HeureDébut
Range("A2").NumberFormat = "H:M"
Range("A2").Value = DixSeptHeuresTrente
End If

End Sub
'-------------------------------------------




"Philou36" Of#
Bonjour,

J'ai encore 2 problèmes avec les heures sous VBA.

1°) Je dois savoir l'heure saisie est inféreure à 17h30. Pour cela en
début
de procédure j'ai saisie : "Public Const DixSeptHeuresTrente > 0.729166666666667"
et si je saisie 17:30, mon test :
If HeureDébut < DixSeptHeuresTrente And HeureDébut > SeptHeures And
JourSemaine <> 1 Then
HeureDeb = Format(HeureDébut, "hh:mm")
HeureFi = Format(HeureFin, "hh:mm")
Phrase = Phrase & Cells(Ligne, 1) & " de " & HeureDeb & " à " & HeureFi
& " : Heure de Début antérieure à 17h30 " & Chr(13)
End If
eh bien si l'heure de début est égale à 17h30 j'ai le message :
17/04/2010 de 17:30 à 23:00 : Heure de Début antérieure à 17h30

comprenez vous quelque chose ? HeureDébut est égale à DixSeptHeureTrante
donc il doit pas passer dans le test !!

2°) Je voudrais qu'il m'affiche un nombre d'heures supérieur à 25 heures.
Pour cela j'ai mis HeureFi = Format(HeureFin, "[h]:mm") mais ca ne marche
pas non plus.

Un grand merci pour votre aide.

Bonnes fêtes de Pâques

Philippe


Publicité
Poster une réponse
Anonyme