Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Heures > 24h dans le label d'un userform

  • Initiateur de la discussion Initiateur de la discussion Matjul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Matjul

XLDnaute Occasionnel
Bonjour a tous,
Je souhaiterai connaitre le format à utiliser pourfaire apparaitre dans un label d'un userform la somme des heures travailées soit un nombre suppérieur a 24h. J'ai essayé [hh]:NN mais ça ne fonctionne pas.

Merci pour votre aide
 
Re : Heures > 24h dans le label d'un userform

Bonjour Matjul

Fonction personalisée à integrer dans un module :

Function formatheure(gw As Date) As String
gw = Range("I3").Value
formatheure = CStr((Int(gw) * 24) + Hour(gw)) & ":" & Minute(gw) & ":" & Second(gw)
End Function

pour l'utiliser : le nombre d'heure se trouve en A1

label1.caption = formatheure(range("A1").value)
 
Re : Heures > 24h dans le label d'un userform

re:

à mon avis non, les dates et les heures, en VBA, sont toutes les deux sotckées dans des variables Date

1 jour = 1, 1 heure = 1/24, 12 heures = 0,5 et 36h = 1,5.

J'imagine, selon ton 2eme post, que tu veux faire afficher le nombre d'heures travaillées ou supplémentaires, c'est facile sur le tableur, en VBA, c'est plus complexe.

Existe t il un format pour cela, je n'en sais rien, mais une fois que la fonction personalisée est en place, plus besoin de chercher..............

cette fonction est utilisable à chaque fois, pas besoin de la modifier
 
Re : Heures > 24h dans le label d'un userform

re:

la premiere fonction etait un peu à l'arrache, je viens d'en faire une plus complete

Code:
Function formatheure(gw As Date, gwformat As String) As String
    formatheure = gwformat
    Dim i As Integer
    i = InStr(gwformat, "[HH]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr((Int(gw) * 24) + Hour(gw)) & Mid(gwformat, i + 4): GoTo suite
    i = InStr(gwformat, "[H]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr((Int(gw) * 24) + Hour(gw)) & Mid(gwformat, i + 3): GoTo suite
    i = InStr(gwformat, "HH"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Hour(gw)) & Mid(gwformat, i + 2): GoTo suite
    i = InStr(gwformat, "H"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Hour(gw)) & Mid(gwformat, i + 1): GoTo suite
suite:
    i = InStr(gwformat, "[MM]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(((Int(gw) * 24) + Hour(gw) * 60) + Minute(gw)) & Mid(gwformat, i + 4): GoTo suite1
    i = InStr(gwformat, "[M]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(((Int(gw) * 24) + Hour(gw) * 60) + Minute(gw)) & Mid(gwformat, i + 3): GoTo suite1
    i = InStr(gwformat, "MM"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Minute(gw)) & Mid(gwformat, i + 2): GoTo suite1
    i = InStr(gwformat, "M"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Minute(gw)) & Mid(gwformat, i + 1): GoTo suite1
suite1:
    i = InStr(gwformat, "[SS]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(((((Int(gw) * 24) + Hour(gw) * 60) + Minute(gw)) * 60) + Second(gw)) & Mid(gwformat, i + 4): GoTo suite2
    i = InStr(gwformat, "[S]"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(((((Int(gw) * 24) + Hour(gw) * 60) + Minute(gw)) * 60) + Second(gw)) & Mid(gwformat, i + 3): GoTo suite2
    i = InStr(gwformat, "SS"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Second(gw)) & Mid(gwformat, i + 2): GoTo suite2
    i = InStr(gwformat, "S"): If i > 0 Then gwformat = Left(gwformat, i - 1) & CStr(Second(gw)) & Mid(gwformat, i + 1): GoTo suite2
suite2:
    formatheure = gwformat
End Function

utilisable dans le tableur : en A1 format heure
en b1 : =formatheure(C2;"il y a : [H] Heures, MM Minutes, SS secondes")

en vba :

label1.value = formatheure(range("A1"),"il y a : [H] Heures, MM Minutes, SS secondes")

Precisions : il n'est pas obligatoire de mettre tous les parametres
exemple : formatheure(Range("A1"),"Vous avez : [H] heures et MM Minutes supplémentaires")


Bon week end
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
118
Affichages
3 K
Réponses
10
Affichages
290
Réponses
8
Affichages
563
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…