diviser des heures en VBA

  • Initiateur de la discussion Initiateur de la discussion dev_co
  • 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 !

dev_co

XLDnaute Occasionnel
Bonjour
J'aimerai savoir s'il est possible en VBA de diviser des heures je n'ai pas trouvé mes exemples sur des sites
j'explique :
J'ai un temps T=40:00 qui sera issu d'une cellule ; ensuite je voudrai diviser par 16:00
Et là je ne sais pas mettre T/16:00 ou écrire D=16:00 , "16:00" ..ou etc ?
pour les DIM ce sont des Double ou variante ou ???
j'avais l'idée par Modulo 16 ... mais je ne sais pas du tout
Merci
 
Bonjour.
Oui, vous pouvez diviser une durée par 16.
il faut seulement savoir deux chose:
1) — Seul le format de la cellule est responsable de ce qu'elle y apparait hh:mm
2) — Elle est en l'unité de temps d'Excel qui est le jour.
Peut être vous faut il en fait la multiplier par 1.5 si ce que vous vouler trouver c'est le nombre de paquets de 16 heures qu'elle contient.

Le type de donnée Double convient.
 
Dernière édition:
Non, faites X = T * 1.5
16:00 c'est 16 / 24
Si vous voulez diviser par un nombre d'heures variable NbH, multipliez la aussi par 24
X = T * 24 / NbH
Si votre nombre d'heures est entier vous pouvez aussi utiliser X = T / TimeSerial(NbH, 0, 0)
Si vous l'avez en String de forme hh:mm vous pouvez le convertir en durée en jours par TimeValue
 
Dernière édition:
Bon , mais si c'est 13:00h ou autre ?
ex : j'ai 40:00h et X fait 07:00 par jour ; Y fait 09:00
Comment récupérer le résultat ?
X > 5j et 05:00
Y > 4j et 04:00
Je sais récupérer 5j ou 4 ... en faisant int( division) mais ensuite le reste en Heure (05:00)
je pense que si je fais afficher 0.66666 dans une cellule en hh:mm il me mettra le bon format ?
 
Bonsour®
Je joins un fichier de départ , principalement pour le cas ou je veux mettre en Dur ! le temps
et l'utiliser dans la division exemple avec les 2 cas
préférer un arrondi à la 6eme décimale :
=ENT($A4/B$1) &" fois Href+ "&TEXTE(MOD($A4;ARRONDI(B$1;6));"hh:mm")
upload_2018-3-9_14-54-26.png
 
Dernière édition:
Comme ça on obtient 10:00 :
VB:
Private Sub calc()
Dim DuréeDon As Double, DuréeJourn As Double, Jours As Double
DuréeDon = Cells(4, 1).Value
DuréeJourn = Cells(1, 2).Value
Jours = DuréeDon / DuréeJourn
Cells(4, 2).Value = Int(Jours)
Cells(4, 3).Value = (Jours - Int(Jours)) * DuréeJourn
End Sub
 
Bonsour®
Ok mais dans mon fichier de départ ... c'est déjà du VBA que je voulais

donc j'avance un peu , mais le résultat est faux , la Sub me donne 2 J et 16:00 au lieu de 10:00
Pourrais tu STP me corriger le VBA ?
VB:
Sub calc()
    heure1 = Cells(4, 1)
    heure2 = Cells(1, 2)
    Cells(4, 2) = Int(heure1 / heure2)
    Cells(4, 3) = Cells(4, 1) - Cells(4, 2) * heure2
End Sub
 
- 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
2
Affichages
414
Réponses
32
Affichages
975
Réponses
3
Affichages
298
Réponses
9
Affichages
747
Retour