Encore un problème d'heure sous VBA

Le
Philou36
Bonjour,

Grace à MichDenis, j'avance mais encore coincé avec le problème suivant :

Je boucle sur mes lignes et je cumule les heures. Je veux avoir un signal si
le total des heures dépasse 25 heures.
VingtCinqHeures = TimeValue("25:00") ne marche pas !
peut on eviter d'avoir 1.04166666666667 pour 25 heures ?
dans le code suivant CompteurHeures1 m'indique 4:30 à la place de 28:30

CompteurHeures = 0
While Cells(Ligne, 1)
HeureDébut = Cells(Ligne, 3)
HeureFin = Cells(Ligne, 4)
If HeureDébut < HeureFin Then CompteurHeures = CompteurHeures + HeureFin -
HeureDébut
JourSemaine = Cells(Ligne, 12)
Ligne = Ligne + 1
Wend
If CompteurHeures > 1.04166666666667 Then
CompteurHeures1 = Format(CompteurHeures, "hh:mm")
Phrase = Phrase & "Dépassement du plafond de 25 heures : " &
CompteurHeures1 & Chr(13)
End If
If Phrase <> "" Then MsgBox Phrase, , "Information"
End Sub

Un grand merci par avance pour votre aide

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
Modeste
Le #21509892
Bonsour®

"Philou36"
Je boucle sur mes lignes et je cumule les heures. Je veux avoir un signal
si le total des heures dépasse 25 heures.
VingtCinqHeures = TimeValue("25:00") ne marche pas !
peut on eviter d'avoir 1.04166666666667 pour 25 heures ?



VingtCinqHeures = 25/24
Calou
Le #21511192
On 7 avr, 00:05, "Modeste"
Bonsour®

"Philou36"

> Je boucle sur mes lignes et je cumule les heures. Je veux avoir un sign al
> si le total des heures dépasse 25 heures.
> VingtCinqHeures = TimeValue("25:00") ne marche pas !
> peut on eviter d'avoir 1.04166666666667 pour 25 heures ?

VingtCinqHeures = 25/24



Bonjour et merci pour ta réponse.
Par contre, comment ferais tu pour mon probleme de mise en forme des
heures pour ma variable CompteurHeures1 qui m'indique 4:30 la place de
28:30 ??

un grand merci par avance.

Bonne journée

Philippe
michdenis
Le #21512352
Les fonctions existantes en vba pour manouvrer avec les heures
TimeSerial(), TimeValue(), Hour(), Format() s'occupent toutes d'une durée
de moins de 24 heures (23:59:59)

Tu pourrais toujours additionner des heures et utiliser
une variable de type "String" et créer une chaîne de caractère en
utilisant la concaténation pour contenir le résultat. Cependant, tu
ferais face à un problème majeur...comment utiliser cette variable
pour effectuer des calculs ou transférer ce résultat vers une feuille
de calcul sinon faire le travail inverse et transformer cette chaîne
de caractère en une valeur numérique.



"Calou" :
On 7 avr, 00:05, "Modeste"
Bonsour®

"Philou36"

> Je boucle sur mes lignes et je cumule les heures. Je veux avoir un signal
> si le total des heures dépasse 25 heures.
> VingtCinqHeures = TimeValue("25:00") ne marche pas !
> peut on eviter d'avoir 1.04166666666667 pour 25 heures ?

VingtCinqHeures = 25/24



Bonjour et merci pour ta réponse.
Par contre, comment ferais tu pour mon probleme de mise en forme des
heures pour ma variable CompteurHeures1 qui m'indique 4:30 la place de
28:30 ??

un grand merci par avance.

Bonne journée

Philippe
Modeste
Le #21513902
Bonsour® "Philou36"

Par contre, comment ferais tu pour mon probleme de mise en forme des
heures pour ma variable CompteurHeures1 qui m'indique 4:30 la place de
28:30 ??



selon le cas (type de séparateur décimal) utiliser l'une des deux méthodes
ci-dessous
MsgBox Evaluate("=TEXT(" & Application.Substitute(CompteurHeures1, Chr(44),
Chr(46)) & ",""[h]:mm"")")

MsgBox Evaluate("=TEXT(" & CLng(CompteurHeures1) & ",""[h]:mm"")")
Publicité
Poster une réponse
Anonyme