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

M

moi60

Guest
Bonjour le forum,

Je me retourne encore vers vous car j'ai un petit problème. En effet, dans un autre post on m'avais beaucoup aidé pour calculer une différence d'heure or je vois que j'ai toujours un problème.

J'ai deux combobox rempli par des heures au format hh:mm qui vont de 00H00 à 23H55 espacé de 5min.

La première, combobox2, me donne l'heure de début d'une action et la deuxième, combobox3, l'heure de fin de cet même action.

Je voudrais calculer la différence de temps entre ces deux heures.

J'ai donc le code suivant :

Code:
r1 = (Left(ComboBox3.Value, 2) - Left(ComboBox2.Value, 2))
r2 = (Right(ComboBox3.Value, 2) - Right(ComboBox2.Value, 2))
If r1 < 0 Then r1 = 23 + r1
If Left(ComboBox2.Value, 2) = 0 And Left(ComboBox3.Value, 2) = 1 Then r1 = 0
If r2 < 0 Then r2 = 60 + r2
.Range("m" & intline).Value = r1 & ":" & r2

Le problème est que si j'ai par exemple l'action commence à 08H40 et finis à 09H20, j'ai un temps de 1H40 et non 0H40.

Avez-vous une idée?

Merci d'avance,

Moi
 
Re : Heures

Je fais comment pour mettre mes deux combobox au formet hh:mm ? car je les alimente via une selection sur une page.

Je dois remplacer tout mon code par simplement .Range("m" & intline) = CDate(ComboBox3) - CDate(ComboBox2) ?

Merci d'avance,

Moi
 
Re : Heures

Re,

Je fais comment pour mettre mes deux combobox au formet hh:mm ?

A priori elles y sont, non ? Puisque vous avez écrit :

J'ai deux combobox rempli par des heures au format hh:mm

Il ne faut surtout pas que le format soit du genre 00H00, car VBA ne reconnaît pas ce format.

Je dois remplacer tout mon code par simplement .Range("m" & intline) = CDate(ComboBox3) - CDate(ComboBox2) ?
Ben oui, tout le code de votre post #1.

A+
 
Re : Heures

Je viens de tester enfaite ca ne va pas car quand l'heure de début est par exemple 23H50 et heure de fin 00H10, il me met une valeur négative et non pas 20min

EDIT: Il faut donc que je remplace mes heures en 00H00 en 24H00 ?

Le problème ne se posera pas avec les heures 24h et 01H ?
 
Dernière modification par un modérateur:
Bonjour moi60, job et le forum.

Je me permet d'intervenir, car si j'ai bien capté, chez moi le code de moi60 fonctionne si vous changez ceci: 🙂

If r1 < 0 Then r1 = 24 + r1

et pas de problème après 00:00, mais comme vous le dit job, il faut que les cellules soit au format heures.

A +
 
Re : Heures

Re,

Vous ne voulez pas nous dire comment sont les heures dans les ComboBox...

Alors utilisez ce code qui fonctionne aussi bien avec le format 00H00 qu'avec le format hh:mm :

Code:
Dim dif
dif = CDate(Replace(ComboBox3, "H", ":")) - CDate(Replace(ComboBox2, "H", ":"))
.Range("m" & intline) = IIf(dif >= 0, dif, dif + 1)
Edit : salut stefan

A+
 
Re : Heures

Les heures dans les combobox sont de 00H00 à 23H55 par intervalle de 5min. J'ai fait cette liste sur une page excel que j'ai nommé heure et que je charge grâce a la fonctione rowsource.

EDIT: Ca a l'air de fonctionner, merci a vous et bonne aprem'
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
418
Réponses
10
Affichages
605
Retour