Sauvegarde et Récupération Heures

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

VIARD

XLDnaute Impliqué
Bonjour à toutes et tous

J’ai 2 problèmes.
Je joins une version ultra simplifiée qui regroupe mes soucis.
Mon but : j’additionne les heures travaillées d’une journée,
1° - Ici j’ai un souci avec la formule
=SI(NBVAL(D9:G9)<2;"";MOD((E9-D9)+(G9-F9);1))
Elle fonctionne à un détail près, le matin le delta est bien en H9
Le delta de l’après-midi est bien sommé en H9
Mais si une seule des heures de l’après-midi est présente je voudrais que H9 ne soit pas modifié.
2°- Les heures de la journée (ici c’est version simplifiée) sont enregistrées sous forme série,
En D20, ici j’ai 3 cas possibles. Jusque là tout va bien.

08:00 12:01 13:00 17:15 8:16

Résultat de l’enregistrement : 1° cas
0,333333333333333;0,500694444444444;0,541666666666667;0,71875;

08:00 11:59 13:00 17:15 8:14

Résultat de l’enregistrement : 2° cas
0,333333333333333;0,499305555555556;0,541666666666667;0,71875;

08:00 12:00 13:00 17:15 8:15

Résultat de l’enregistrement : 3° cas
0,333333333333333;0,5;0,541666666666667;0,71875;

Pour ce troisième cas le résultat de la récupération est fausse alors que la donnée est correcte.
Résultat de la récupération :
08:00 00:00 13:00 17:15 20:15

Ceci dit j’ai un problème de format, la récupération est sous forme texte.
J’ai bien utilisé VAL mais sans succès tout devient faux.
La récupération des 2 premiers cas est correct.
Quelqu’un a-t-il la solution ?

Salutation
Jean-Paul
 

Pièces jointes

Re : Sauvegarde et Récupération Heures

Bonjour,
effectivement, je constate que si il n'y a qu'un chiffre apres la virgule, cela bugge
Je te propose donc de rajouter un zero dans ce cas de figure, et cela semble marcher
(a verifier sur d'autres cas)

ce que j'ai apporté comme modif dans le fchier :

If Len(Extr) = 3 Then
Cells(8 + i, 3 + J).Value = Format(Extr & "0", "hh:mm")

Else
Cells(8 + i, 3 + J).Value = Format(Extr, "hh:mm")
End If

tiens moi au courant!

cdt
Frederic
 

Pièces jointes

Re : Sauvegarde et Récupération Heures

Bonsoir

1/
Si dessous une fonction la formule zone etant la zone avec tes horaires exemple =calcul(d10:g10)
Function calcul(zone)
flag = 0
For n = 1 To 2
If zone(n) = 0 Then flag = 1
Next
If flag = 0 Then ma = zone(2) - zone(1) Else ma = 0
flag = 0
For n = 3 To 4
If zone(n) = 0 Then flag = 1
If flag = 0 Then ap = zone(4) - zone(3) Else ap = 0
calcul = CDate(ma + ap)
Next
End Function


2/ utilise cdbl
Cells(8 + i, 3 + J).Value = Format(CDbl(Extr), "hh:mm")
 
Re : Sauvegarde et Récupération Heures

Bonjour Fredl, Sousou

Je vous remercie tous deux, j'ai testé les 2 solutions, ça marche nickel.
Ceci m'enlève une épine du pied, pourtant c'est pas faute d'avoir manipé.

Pour la formule de "Sousou" je vais regarder, et dans la foulé (Bon anniversaire).

merci, amicalement

Jean-Paul
 
Re : Sauvegarde et Récupération Heures

Bonjour à tous

Tout fonctionne à merveille , merci à Sousou
J’ai toutefois modifié légèrement la fonction
C’est énervant de trimballer une quantité de zéro.

[VB]Function calcul(Zone)
flag = 0
For n = 1 To 2
If Zone(n) = 0 Then flag = 1
Next
If flag = 0 Then ma = Zone(2) - Zone(1) Else ma = 0
flag = 0
For n = 3 To 4
If Zone(n) = 0 Then flag = 1
If flag = 0 Then ap = Zone(4) - Zone(3) Else ap = 0
calcul = CDate(ma + ap)
If ma = 0 And ap = 0 Then calcul = ""
Next
End Function
[/VB]


Et son utilisation dans le programme,
Cells(i , 6).FormulaR1C1 = "=calcul(RC[-4]:RC[-1])"

CDT

Jean-Paul
 
- 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
6
Affichages
535
Réponses
7
Affichages
675
Réponses
3
Affichages
579
Réponses
2
Affichages
796
Retour