Calcul temps via une plage horaire

safety147

XLDnaute Nouveau
Bonjour à toutes et à tous,

Après avoir cherché, cherché et cherché : mal me direz-vous, je n'ai pas trouvé de solution :mad:.

J'ai besoin de calculer le temps en heure passé entre deux dates :
- du lundi au vendredi
- sur une plage horaire de 08h00 à 20h00 sans interruption

Attention, les dates et heures sont dans des champs différents.

A1 = date de départ
B1 = heure de départ
C1 = date de fin
D1 = heure de fin
E1 = résultat

Une formule me suffirait, mais une macro serait l'idéal.

En vous remerciant par avance de votre aide.
 

Pièces jointes

  • Calcul temps en heures.xlsx
    10.2 KB · Affichages: 182

Methos

XLDnaute Nouveau
Re : Calcul temps via une plage horaire

Je vois pas trop le problème, tu fais juste une différence entre l'heure de fin et l'heure de début.

Le seul problème serait dans le cas d'un veilleur de nuit qui serait à cheval entre deux horaires.

Enfin j'espère avoir répondu à ton problème tu as le fichier dans ma réponse
 

Pièces jointes

  • Copie de Calcul temps en heures.xlsx
    10.7 KB · Affichages: 183

safety147

XLDnaute Nouveau
Re : Calcul temps via une plage horaire

Bonjour Methos,

Merci de ta réponse.

Mon besoin et d'avoir un résultat en heure prenant en compte : la date de départ + l'heure de départ versus la date de fin + l'heure de fin en retranchant les samedis et dimanches et les heures comprisent entre 20h00 et 08h00.

Exemple :
Date Début = vendredi 18 mai 2012
Heure début = 19:00:00
Date fin = lundi 21 mai 2012
Heure fin = 09:00:00
Résultat attendu : 00:02:00 (2 heures)

Correction à mon post, j'ai besoin d'avoir un résultat dans le format Jour/Heures/Minutes

Merci
 

Pièces jointes

  • Calcul temps en heures.xlsm
    11.3 KB · Affichages: 123
Dernière édition:

safety147

XLDnaute Nouveau
Re : Calcul temps via une plage horaire

Bonsoir Job75,

Un grand Merci à vous.

J'ai appliquer la méthode et cela fonctionne à merveille.

J'ai tout de même deux questions :
- Je dois intégrer cette fonction dans un fichier contenant énormément de feuilles (plus de 20) : cela n'aura pas d'impact ?
- Comment faire pour obtenir le résultat en minutes dans un format du type JJ/HH/MM (Jour/Heure/Minute) ?

Encore merci de votre aide.

A+
 

job75

XLDnaute Barbatruc
Re : Calcul temps via une plage horaire

Bonjour safety147, le forum,

Voir le fichier joint avec le format personnalisé [h]:mm en colonne E.

Un format type JJ/HH/MM n'a guère de sens...

A+
 

Pièces jointes

  • Calcul temps en heures(1).xls
    53.5 KB · Affichages: 156

JCGL

XLDnaute Barbatruc
Re : Calcul temps via une plage horaire

Bonjour à tous,
Salut Gérard ;),

Sur la base du fichier et de la fonction de Job75 et pour répondre au souhait de notre ami.

A++ l'ami
A + à tous

Edition : Gérard le nom est réservé sous XL 2010...

Capture_1.png

Pirate... A+++
 

Pièces jointes

  • Calcul temps en Jours Heures Minutes.xls
    53 KB · Affichages: 149
  • Calcul temps en Jours Heures Minutes.xls
    53 KB · Affichages: 151
  • Calcul temps en Jours Heures Minutes.xls
    53 KB · Affichages: 208
  • Capture_1.png
    Capture_1.png
    19.8 KB · Affichages: 165
  • Capture_1.png
    Capture_1.png
    19.8 KB · Affichages: 167
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calcul temps via une plage horaire

Bonjour Jean-Claude :)

Bien d'accord avec toi, mais peut-être faut-il d'abord s'entendre sur ce qu'est 1 jour.

En effet ce n'est pas forcément 24 heures puisque dans l'exemple de notre ami 12 heures sont comptées.

C'est pour ça que je disais qu'un format avec les jours n'a guère de sens.

A+
 

job75

XLDnaute Barbatruc
Re : Calcul temps via une plage horaire

Re JC,

Edition : Gérard le nom (DUREE) est réservé sous XL 2010...

J'avions point testé sous Excel 2010, alors utiliser cette fonction DUR :

Code:
Function DUR(deb As Date, fin As Date) As Date
Dim dat As Long, t As Date
t1 = TimeValue("8:0")
t2 = TimeValue("20:0")
jour = t2 - t1
dat = Int(CDec(deb))
t = TimeValue(deb)
DUR = PremDer(dat, t)
For dat = dat + 1 To Int(CDec(fin))
  If Weekday(dat, 2) < 6 And IsError(Application.Match(dat, [Feries], 0)) Then DUR = DUR + jour
Next
t = TimeValue(fin)
DUR = DUR - PremDer(dat - 1, t)
End Function
J'avais aussi oublié de souligner que Application.Volatile a été supprimé.

Cela évite des recalculs intempestifs s'il y a beaucoup de cellules avec la fonction.

Fichier (2)
 

Pièces jointes

  • Calcul temps en heures(2).xls
    54 KB · Affichages: 102

safety147

XLDnaute Nouveau
Re : Calcul temps via une plage horaire

Bonjour,

Merci Job45 et JCGL pour vos réponses.

@Job45, pour répondre à ta question, 1 jour = en réalité à 2 jours plein (2*12H). Effectivement, je n'ai pas été très clair, désolé :(.

@JCGL
Après avoir fait quelques tests, je remarque un retour anormal si j'ai la même heure de début et heure de fin.
Exemple en ligne 2 du fichier joint : 1 jours - 24 heures - 59 minutes

Est-il possible d'avoir ce résultat dans une seule cellule avec le format JJ:HH:MM, j'ai fait plusieurs tests sans succès.
La meilleure solution à mon niveau étant de concaténer les trois cellules (colonne "I") : pas génial, je vous l'accorde.

PS : j'ai modifié le nom de la fonction "DUREE" en "T_DUREE" car cela généré un conflit avec excel 2010.

Merci
 

Pièces jointes

  • Calcul temps en Jours Heures Minutes.xls
    47.5 KB · Affichages: 99
  • Calcul temps en Jours Heures Minutes.xls
    47.5 KB · Affichages: 106
  • Calcul temps en Jours Heures Minutes.xls
    47.5 KB · Affichages: 111

job75

XLDnaute Barbatruc
Re : Calcul temps via une plage horaire

Re safety147,

Si vous tenez absolument au format jj:hh:mm (?) voyez le fichier joint.

01:00:00 peut être interprété comme 1 heure 0 minute 0 seconde, j'ai ajouté un 3ème format j h m.

Vous avez le choix, mais en colonnes F et G ce ne sont pas des nombres mais des textes...

A+
 

Pièces jointes

  • Calcul temps en Jours Heures Minutes(1).xls
    46 KB · Affichages: 158

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 608
Membres
103 606
dernier inscrit
lolo1970