Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Format Spécial pour les Heures

14 réponses
Avatar
bartez
Bonjour,

j'ai une macro qui comptabilise des heures et minutes.
Quand la variable est suppérieure à 24 heures, les jours sont incrémentés et
les heures retombent à zéro.

Existe-t-il un format pour avoir directement les heures sous la forme de
54:35 pour 54heures 35mn

Voici la ligne de code que j'utilise actuellement.
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption) "hh:mm")

Merci de votre aide
Philippe

10 réponses

1 2
Avatar
FxM
Bonsoir,

Non testé :
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption),
"hh:mm")

@+
FxM

Bonjour,

j'ai une macro qui comptabilise des heures et minutes.
Quand la variable est suppérieure à 24 heures, les jours sont incrémentés et
les heures retombent à zéro.

Existe-t-il un format pour avoir directement les heures sous la forme de
54:35 pour 54heures 35mn

Voici la ligne de code que j'utilise actuellement.
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption) "hh:mm")

Merci de votre aide
Philippe




Avatar
bartez
Merci mais ça ne marche pas, c'est exactement ce que j'utilise en ce moment.
Ca ne me donne que les 24 premières heures

@+ Philippe

"FxM" a écrit dans le message de news:

Bonsoir,

Non testé :
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption),
"hh:mm")

@+
FxM

Bonjour,

j'ai une macro qui comptabilise des heures et minutes.
Quand la variable est suppérieure à 24 heures, les jours sont incrémentés
et les heures retombent à zéro.

Existe-t-il un format pour avoir directement les heures sous la forme de
54:35 pour 54heures 35mn

Voici la ligne de code que j'utilise actuellement.
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption)
"hh:mm")

Merci de votre aide
Philippe




Avatar
michdenis
Bonjour Bartez,

La fonction format ne permet pas un affichage dépassant 24 hres.

Cependant tu peux utiliser ce type de bidouille... il doit y en avoir d'autres ...


Dim A As Date, B As Integer, C As Date
A = TimeValue("8:00:00") + TimeValue("20:00:01") + TimeValue("23:00:01")
B = A Mod 24
C = A - B
MsgBox ((B * 24) + Format(C, "HH")) & ":" & Format(C, "MM:SS")


Salutations!




"bartez" a écrit dans le message de news:
Bonjour,

j'ai une macro qui comptabilise des heures et minutes.
Quand la variable est suppérieure à 24 heures, les jours sont incrémentés et
les heures retombent à zéro.

Existe-t-il un format pour avoir directement les heures sous la forme de
54:35 pour 54heures 35mn

Voici la ligne de code que j'utilise actuellement.
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption) "hh:mm")

Merci de votre aide
Philippe
Avatar
Modeste
bartez wrote:
Existe-t-il un format pour avoir directement les heures sous la forme
de 54:35 pour 54heures 35mn



Total= TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption)
MsgBox Evaluate("=TEXT(" & Application.Substitute(Total, ",", ".") &
",""[h]:mm:ss"")")

;o)))


--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
michdenis
Semble-t-il que cette bidouille serait plus exacte :

'------------------------------
Dim A As Date, B As Integer, C As Date, T As String
A = TimeValue("8:00:00") + TimeValue("20:10:51") + TimeValue("23:00:09")
B = A Mod 24
C = A - B
T = Right(C, 6)
MsgBox ((B * 24) + Format(C, "HH")) & T
'------------------------------


Salutations!




"michdenis" a écrit dans le message de news:
Bonjour Bartez,

La fonction format ne permet pas un affichage dépassant 24 hres.

Cependant tu peux utiliser ce type de bidouille... il doit y en avoir d'autres ...


Dim A As Date, B As Integer, C As Date
A = TimeValue("8:00:00") + TimeValue("20:00:01") + TimeValue("23:00:01")
B = A Mod 24
C = A - B
MsgBox ((B * 24) + Format(C, "HH")) & ":" & Format(C, "MM:SS")


Salutations!




"bartez" a écrit dans le message de news:
Bonjour,

j'ai une macro qui comptabilise des heures et minutes.
Quand la variable est suppérieure à 24 heures, les jours sont incrémentés et
les heures retombent à zéro.

Existe-t-il un format pour avoir directement les heures sous la forme de
54:35 pour 54heures 35mn

Voici la ligne de code que j'utilise actuellement.
Total= Format(TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption) "hh:mm")

Merci de votre aide
Philippe
Avatar
michdenis
Bonjour Modeste,

As-tu vraiment testé ton approche ?

A = TimeValue("8:00:00") + TimeValue("20:59:51") + TimeValue("23:00:09")
MsgBox Evaluate("=TEXT(" & Application.Substitute(A, ",", ".") & ",""[h]:mm:ss"")")


Pour simplifier la vie à l'ami Bartez, il y a ceci :

Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")


Ah ! Ces formules de feuille de calcul ! ;-))


Salutations!





"Modeste" a écrit dans le message de news:
bartez wrote:
Existe-t-il un format pour avoir directement les heures sous la forme
de 54:35 pour 54heures 35mn



Total= TimeValue(Durée1.Caption) + TimeValue(Durée2.Caption)
MsgBox Evaluate("=TEXT(" & Application.Substitute(Total, ",", ".") &
",""[h]:mm:ss"")")

;o)))


--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
Modeste
Bonsour® "Michel" ;o)))
As-tu vraiment testé ton approche ?
Pour simplifier la vie à l'ami Bartez, il y a ceci :
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")


;o))) la solution précédente m'avait été proposée par LL (11 jan 2000 10:00)
http://minilien.com/?lgZfCANsm3

car comme tu le sais ??? les formules de feuilles de calculs utilisées en
VBA ne comprennent que l'anglais
et dans le cas présent, le format exigé de la Valeur A ou Total dans
l'exemple précédent est un format US
separateur décimal "."
ex : 0.456464
voila l'explication du Substitute ....
ce qui explique que dans ton cas (cgocable.ca) ce Substitute soit
superfetatoire ;o)))

et notre ami Bartez (philippe.blancon=Chauve sourit (;-))) utilisateur
free.fr
se sert fort probablement d'un EXCEL FR .....
;o)))

@+

--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
michdenis
Bonjour Modeste,

Voici mes observations : Version Excel 2003
Ma version est française et j'utilise le séparateur décimal suivant : ","

quand j'utilise cette ligne :
A = TimeValue("8:00:00") + TimeValue("20:59:51") + TimeValue("23:00:09")

A prend la forme suivante, d'où mon interrogation sur Substitute()
01-01-1900 04:00:00

Si j'applique la formule de LL, ça plante !
MsgBox Evaluate("=TEXT(" & Application.Substitute(A, ",", ".") & ",""[h]:mm:ss"")")

Celle-ci fonctionne :
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")

Par ailleurs, si je transforme la variable A en Cdbl(),
A = cdbl(a)
A = 2,166666667
La formule de LL fonctionne très bien ! Ainsi que la mienne !

Conclusion : Il y a quelque chose que je n'ai pas compris dans tes explications... ou excel a peut être des comportements différents
selon les versions ! ;-)


Salutations!






"Modeste" a écrit dans le message de news: u5w$
Bonsour® "Michel" ;o)))
As-tu vraiment testé ton approche ?
Pour simplifier la vie à l'ami Bartez, il y a ceci :
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")


;o))) la solution précédente m'avait été proposée par LL (11 jan 2000 10:00)
http://minilien.com/?lgZfCANsm3

car comme tu le sais ??? les formules de feuilles de calculs utilisées en
VBA ne comprennent que l'anglais
et dans le cas présent, le format exigé de la Valeur A ou Total dans
l'exemple précédent est un format US
separateur décimal "."
ex : 0.456464
voila l'explication du Substitute ....
ce qui explique que dans ton cas (cgocable.ca) ce Substitute soit
superfetatoire ;o)))

et notre ami Bartez (philippe.blancon=Chauve sourit (;-))) utilisateur
free.fr
se sert fort probablement d'un EXCEL FR .....
;o)))

@+

--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
bartez
Bonsoir !

Ne vous fachez pas à cause de moi !!!!
Je viens de tester les 2 façons de faire et chez moi tout fonctionne
corectement :o)

je vais retenir pour le moment la plus facile à mettre en place chez moi.
soit celle-ci
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")

Merci à tous de votre aide !

Philippe

"michdenis" a écrit dans le message de news:

Bonjour Modeste,

Voici mes observations : Version Excel 2003
Ma version est française et j'utilise le séparateur décimal suivant : ","

quand j'utilise cette ligne :
A = TimeValue("8:00:00") + TimeValue("20:59:51") + TimeValue("23:00:09")

A prend la forme suivante, d'où mon interrogation sur Substitute()
01-01-1900 04:00:00

Si j'applique la formule de LL, ça plante !
MsgBox Evaluate("=TEXT(" & Application.Substitute(A, ",", ".") &
",""[h]:mm:ss"")")

Celle-ci fonctionne :
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")

Par ailleurs, si je transforme la variable A en Cdbl(),
A = cdbl(a)
A = 2,166666667
La formule de LL fonctionne très bien ! Ainsi que la mienne !

Conclusion : Il y a quelque chose que je n'ai pas compris dans tes
explications... ou excel a peut être des comportements différents
selon les versions ! ;-)


Salutations!






"Modeste" a écrit dans le message de news:
u5w$
Bonsour® "Michel" ;o)))
As-tu vraiment testé ton approche ?
Pour simplifier la vie à l'ami Bartez, il y a ceci :
Msgbox Application.WorksheetFunction.Text(A, "[h]:mm:ss")


;o))) la solution précédente m'avait été proposée par LL (11 jan 2000
10:00)
http://minilien.com/?lgZfCANsm3

car comme tu le sais ??? les formules de feuilles de calculs utilisées en
VBA ne comprennent que l'anglais
et dans le cas présent, le format exigé de la Valeur A ou Total dans
l'exemple précédent est un format US
separateur décimal "."
ex : 0.456464
voila l'explication du Substitute ....
ce qui explique que dans ton cas (cgocable.ca) ce Substitute soit
superfetatoire ;o)))

et notre ami Bartez (philippe.blancon=Chauve sourit (;-))) utilisateur
free.fr
se sert fort probablement d'un EXCEL FR .....
;o)))

@+

--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042






Avatar
Modeste
Bonsour® Denis
Conclusion : Il y a quelque chose que je n'ai pas compris dans tes
explications...


tu as tout a fait raison, je pensais avoir l'explication de ces
comportements bizarre
mais aprés avoir fait divers tests j'en perds mon latin !!!
exemple :

Sub macro2()
Worksheets(1).Select
' calcul = variable locale à la macro
calcul = 6 * TimeValue("8:15:00")
[A1] = calcul
letexte$ = "6 fois 8h15 --> Regardez la cellule A1 : est-ce que A1 = calcul
?? "

MsgBox letexte$ & Chr(10) & "A1 : " & [A1] & Chr(10) & " calcul : " & calcul
End Sub

:-(((
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

1 2