A1= 18/12/2003 14:00
B1=19/12/03 16:56
C1=(B1-A1)*24
résultat C1=26,93 alors que je l'aurais voulu en hh:mm
si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de
646:24
*************************************************************
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h.
ce qui devrait me donner comme résultat C1=10h56mn
Merci
----- Original Message -----
From: "Daniel.M" <prenom.maher@bigfoot.inutil.com>
Newsgroups: microsoft.public.fr.excel
Sent: Friday, December 26, 2003 2:08 PM
Subject: Re: calculer la durée entre 2dates&heures
> Bonjour Aline,
>
> > 1- quand je calcule la difference entre deux dates&heures j'ai un
résultat
> > en heures alors que je le voudrais en heures et minutes.
>
> Une question de format, il me semble:
> [h]:mm
> devrait convenir.
>
>
> > 2- en calculant je voudrais pouvoir prendre en considération des heures
> > ouvrables
>
> Donne une couple d'exemple (avec les heures ouvrable début et fin) et les
> résultats attendus.
>
> Salutations,
>
> Daniel M.
>
>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe.R
Bonjour Aline, pour la question 1 : Utilises simplement c1±-a1 avec c1 au format [hh]:mm
PS : il est préférable de rester dans le fil de discussion initial. -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Aline" a écrit dans le message de news:uc%
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les résultats attendus.
Salutations,
Daniel M.
Bonjour Aline,
pour la question 1 :
Utilises simplement c1±-a1 avec c1 au format [hh]:mm
PS : il est préférable de rester dans le fil de discussion initial.
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)
"Aline" <alinsafi@ifrance.com> a écrit dans le message de
news:uc%235rN8yDHA.3416@tk2msftngp13.phx.gbl...
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00
B1/12/03 16:56
C1=(B1-A1)*24
résultat C1&,93 alors que je l'aurais voulu en hh:mm
si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de
646:24
*************************************************************
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h.
ce qui devrait me donner comme résultat C1h56mn
Merci
----- Original Message -----
From: "Daniel.M" <prenom.maher@bigfoot.inutil.com>
Newsgroups: microsoft.public.fr.excel
Sent: Friday, December 26, 2003 2:08 PM
Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un
résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble:
[h]:mm
devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures
ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les
résultats attendus.
Bonjour Aline, pour la question 1 : Utilises simplement c1±-a1 avec c1 au format [hh]:mm
PS : il est préférable de rester dans le fil de discussion initial. -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002 Pour suivre le forum : news://msnews.microsoft.com/microsoft.public.fr.excel (Voulez-vous vous abonner ? -> Oui)
"Aline" a écrit dans le message de news:uc%
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les résultats attendus.
Salutations,
Daniel M.
Nicolas B.
Salut Aline,
En C1 : ±-A1 Et applique comme format personnalisé : [h]:mm Il ne faut pas multiplier par 24 : excel fait tous les calculs de dates et heures avec le jour pour unité.
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les résultats attendus.
Salutations,
Daniel M.
Salut Aline,
En C1 :
±-A1
Et applique comme format personnalisé : [h]:mm
Il ne faut pas multiplier par 24 : excel fait tous les calculs de dates et
heures avec le jour pour unité.
A1= 18/12/2003 14:00
B1/12/03 16:56
C1=(B1-A1)*24
résultat C1&,93 alors que je l'aurais voulu en hh:mm
si j'utilise le format que vous m'avez indiqué j'ai un résultat
bizare de 646:24
*************************************************************
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne
voudrais compter que les horaires de bureau à savoir 8h_12h et
14h-18h.
ce qui devrait me donner comme résultat C1h56mn
Merci
----- Original Message -----
From: "Daniel.M" <prenom.maher@bigfoot.inutil.com>
Newsgroups: microsoft.public.fr.excel
Sent: Friday, December 26, 2003 2:08 PM
Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un
résultat en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble:
[h]:mm
devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des
heures ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin)
et les résultats attendus.
En C1 : ±-A1 Et applique comme format personnalisé : [h]:mm Il ne faut pas multiplier par 24 : excel fait tous les calculs de dates et heures avec le jour pour unité.
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les résultats attendus.
Salutations,
Daniel M.
Daniel.M
Salut Aline,
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple : A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour). C1±-A1 et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00
B1/12/03 16:56
C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour).
C1±-A1
et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h.
ce qui devrait me donner comme résultat C1h56mn
Merci
La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple : A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour). C1±-A1 et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
grand merci ca a marché, il me reste le 2ieme probleme. bon weekend
"Aline" a écrit dans le message de news: uc#
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures
ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les
résultats attendus.
Salutations,
Daniel M.
grand merci ca a marché, il me reste le 2ieme probleme.
bon weekend
"Aline" <alinsafi@ifrance.com> a écrit dans le message de news:
uc#5rN8yDHA.3416@tk2msftngp13.phx.gbl...
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00
B1/12/03 16:56
C1=(B1-A1)*24
résultat C1&,93 alors que je l'aurais voulu en hh:mm
si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de
646:24
*************************************************************
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h.
ce qui devrait me donner comme résultat C1h56mn
Merci
----- Original Message -----
From: "Daniel.M" <prenom.maher@bigfoot.inutil.com>
Newsgroups: microsoft.public.fr.excel
Sent: Friday, December 26, 2003 2:08 PM
Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un
résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble:
[h]:mm
devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des
heures
ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et
les
grand merci ca a marché, il me reste le 2ieme probleme. bon weekend
"Aline" a écrit dans le message de news: uc#
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24 résultat C1&,93 alors que je l'aurais voulu en hh:mm si j'utilise le format que vous m'avez indiqué j'ai un résultat bizare de 646:24 ************************************************************* 2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci ----- Original Message ----- From: "Daniel.M" Newsgroups: microsoft.public.fr.excel Sent: Friday, December 26, 2003 2:08 PM Subject: Re: calculer la durée entre 2dates&heures
Bonjour Aline,
1- quand je calcule la difference entre deux dates&heures j'ai un résultat
en heures alors que je le voudrais en heures et minutes.
Une question de format, il me semble: [h]:mm devrait convenir.
2- en calculant je voudrais pouvoir prendre en considération des heures
ouvrables
Donne une couple d'exemple (avec les heures ouvrable début et fin) et les
résultats attendus.
Salutations,
Daniel M.
Aline
c'est génial votre formule les 2 cas marche mais j'ai encore un souci : comment ne pas compter les weekend et les jours fériés, en plus je voudrais prendre en considération samedi matin de 8hà 12h. grand merci j'apprends bcp avec vous je ne savais pas qu'Excel etait aussi génial que ca. Grand Merci Aline "Daniel.M" a écrit dans le message de news:
Salut Aline,
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple : A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour). C1±-A1 et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
c'est génial votre formule les 2 cas marche mais j'ai encore un souci :
comment ne pas compter les weekend et les jours fériés, en plus je voudrais
prendre en considération samedi matin de 8hà 12h.
grand merci
j'apprends bcp avec vous je ne savais pas qu'Excel etait aussi génial que
ca.
Grand Merci
Aline
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news: uGdXWe8yDHA.1740@TK2MSFTNGP09.phx.gbl...
Salut Aline,
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple :
A1= 18/12/2003 14:00
B1/12/03 16:56
C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour).
C1±-A1
et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne
voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h.
ce qui devrait me donner comme résultat C1h56mn
Merci
La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
c'est génial votre formule les 2 cas marche mais j'ai encore un souci : comment ne pas compter les weekend et les jours fériés, en plus je voudrais prendre en considération samedi matin de 8hà 12h. grand merci j'apprends bcp avec vous je ne savais pas qu'Excel etait aussi génial que ca. Grand Merci Aline "Daniel.M" a écrit dans le message de news:
Salut Aline,
De préférence, il faut rester dans la même ficelle.
non ca ne marche pas voici l'exemple : A1= 18/12/2003 14:00 B1/12/03 16:56 C1=(B1-A1)*24
Enlève le *24 (qui te donne des entiers au lieu des fractions de jour). C1±-A1 et formatte en [h]:mm
2ieme probleme entre le 18/12/2003 14h et 19/12/2003 16:56 je ne voudrais
compter que les horaires de bureau à savoir 8h_12h et 14h-18h. ce qui devrait me donner comme résultat C1h56mn Merci La formule MATRICIELLE suivante (saisir avec Ctrl-Maj-Entrée):
c'est génial votre formule les 2 cas marche mais j'ai encore un souci : comment ne pas compter les weekend et les jours fériés, en plus je voudrais prendre en considération samedi matin de 8hà 12h.
Un chausson avec ça? :-)
Pas le temps de résoudre ça maintenant. Mais je vais regarder plus tard si il n'y a pas d'autres volontaires qui t'ont répondu.
Salutations,
Daniel M.
Aline,
c'est génial votre formule les 2 cas marche mais j'ai encore un souci :
comment ne pas compter les weekend et les jours fériés, en plus je voudrais
prendre en considération samedi matin de 8hà 12h.
Un chausson avec ça? :-)
Pas le temps de résoudre ça maintenant.
Mais je vais regarder plus tard si il n'y a pas d'autres volontaires qui t'ont
répondu.
c'est génial votre formule les 2 cas marche mais j'ai encore un souci : comment ne pas compter les weekend et les jours fériés, en plus je voudrais prendre en considération samedi matin de 8hà 12h.
Un chausson avec ça? :-)
Pas le temps de résoudre ça maintenant. Mais je vais regarder plus tard si il n'y a pas d'autres volontaires qui t'ont répondu.
Salutations,
Daniel M.
AV
Ca tombe bien car j'ai exactement la même demande mais les jours fériés sont ceux du calendrier tribal du Burkina Faso et les heures, celles de mon cadran solaire qui est incliné de 0.3° vers le Nord ! Il y a aussi une autre contrainte que j'ai momentanément oubliée mais que je ne manquerais pas de te communiquer lorsque tu auras répondu à cette demande ! Dans l'attente de votre prochain post, je vous prie d'agréer ----
;-) AV
Ca tombe bien car j'ai exactement la même demande mais les jours fériés sont
ceux du calendrier tribal du Burkina Faso et les heures, celles de mon cadran
solaire qui est incliné de 0.3° vers le Nord !
Il y a aussi une autre contrainte que j'ai momentanément oubliée mais que je ne
manquerais pas de te communiquer lorsque tu auras répondu à cette demande !
Dans l'attente de votre prochain post, je vous prie d'agréer ----
Ca tombe bien car j'ai exactement la même demande mais les jours fériés sont ceux du calendrier tribal du Burkina Faso et les heures, celles de mon cadran solaire qui est incliné de 0.3° vers le Nord ! Il y a aussi une autre contrainte que j'ai momentanément oubliée mais que je ne manquerais pas de te communiquer lorsque tu auras répondu à cette demande ! Dans l'attente de votre prochain post, je vous prie d'agréer ----
;-) AV
AV
Une soluce (pas ultra-rapide !)
Dans le classeur, une liste des jours fériés (nommée "JrsFrs") Date/heure début en A1 Date/heure fin en B1 Résultat en C1 (cellule au format "[hh]:mm") Exécution de la macro à partir de la feuille active
Sub zz_Heures_Minutes_Ouvrées() For x = [A1] To [B1] Step 1 / 1440 'Jour fériés et dimanches If Not IsError(Application.Match(Int(x * 1), Range("JrsFrs"), 0)) Or _ Weekday(x) = 1 Then x = Int(x) + 1 GoTo suite End If 'le samedi If Weekday(x) = 7 Then If Hour(x) < 8 Or Hour(x) >= 12 Then Else: N = N + 1 GoTo suite End If End If 'jours ordinaires If Weekday(x) = 7 Then GoTo suite If Hour(x) < 8 Or Hour(x) >= 18 Then ElseIf Hour(x) >= 8 And Hour(x) < 12 _ Or Hour(x) >= 14 And Hour(x) < 18 Then N = N + 1 End If suite: Next [C1] = N / 1440 End Sub
AV
Une soluce (pas ultra-rapide !)
Dans le classeur, une liste des jours fériés (nommée "JrsFrs")
Date/heure début en A1
Date/heure fin en B1
Résultat en C1 (cellule au format "[hh]:mm")
Exécution de la macro à partir de la feuille active
Sub zz_Heures_Minutes_Ouvrées()
For x = [A1] To [B1] Step 1 / 1440
'Jour fériés et dimanches
If Not IsError(Application.Match(Int(x * 1), Range("JrsFrs"), 0)) Or _
Weekday(x) = 1 Then
x = Int(x) + 1
GoTo suite
End If
'le samedi
If Weekday(x) = 7 Then
If Hour(x) < 8 Or Hour(x) >= 12 Then
Else: N = N + 1
GoTo suite
End If
End If
'jours ordinaires
If Weekday(x) = 7 Then GoTo suite
If Hour(x) < 8 Or Hour(x) >= 18 Then
ElseIf Hour(x) >= 8 And Hour(x) < 12 _
Or Hour(x) >= 14 And Hour(x) < 18 Then
N = N + 1
End If
suite:
Next
[C1] = N / 1440
End Sub
Dans le classeur, une liste des jours fériés (nommée "JrsFrs") Date/heure début en A1 Date/heure fin en B1 Résultat en C1 (cellule au format "[hh]:mm") Exécution de la macro à partir de la feuille active
Sub zz_Heures_Minutes_Ouvrées() For x = [A1] To [B1] Step 1 / 1440 'Jour fériés et dimanches If Not IsError(Application.Match(Int(x * 1), Range("JrsFrs"), 0)) Or _ Weekday(x) = 1 Then x = Int(x) + 1 GoTo suite End If 'le samedi If Weekday(x) = 7 Then If Hour(x) < 8 Or Hour(x) >= 12 Then Else: N = N + 1 GoTo suite End If End If 'jours ordinaires If Weekday(x) = 7 Then GoTo suite If Hour(x) < 8 Or Hour(x) >= 18 Then ElseIf Hour(x) >= 8 And Hour(x) < 12 _ Or Hour(x) >= 14 And Hour(x) < 18 Then N = N + 1 End If suite: Next [C1] = N / 1440 End Sub
AV
Daniel.M
Salut Aline,
Je te propose 2 manières: Par formule (longue) et par VBA.
A-Par formule Donne les valeurs de la 2e colonne aux noms suivants (ou nomme les cellules sur le chiffrier après avoir inscrit ces valeurs, peu importe): JrDeb 08:00 JrFin 18:00 LDeb 12:00 LFin 14:00 JrsFrs la plage des jours fériés français
Ensuite, en C1, la formule matricielle suivante (à saisir avec Ctrl-Maj-Entrée):
B-Par VBA: Tu dois mettre la formule suivante en C1 ÊlcTempsTravaille(A1;B1;JrsFrs)
Dans un module (Alt-F11, Menu Insère/Module), insère le code suivant: ' Daniel M. Dec 2003 ' Calcule le temps travaillé entre 2 dates étant donné 2 plages horaires ' les jours de semaines et 1 seule le samedi. Tient compte des JoursFeries ' 3e paramètre (facultatif) ' Function calcTempsTravaille(Deb As Date, Fin As Date, _ Optional JoursFeries As Range) As Double Dim J As Date, PremJ As Date, DernJ As Date Dim t1AM#, t1PM#, t2AM#, t2PM#, N# ' les heures AM, PM, totales Dim Matin#, DebLunch#, FinLunch#, Soir# ' les constantes (données du problème) Dim enVacances As Boolean, FeriesExistent As Boolean
FeriesExistent = Not JoursFeries Is Nothing With Application
' Pour chaque jour, compte les heures For J = PremJ To DernJ ' Determine si J est une journée de repos enVacances = False If Weekday(J) = 1 Then enVacances = True ' Dimanche, on se repose ElseIf FeriesExistent Then ' repos si jour férié enVacances = IsNumeric(.Match(J * 1, JoursFeries, 0)) End If
If Not enVacances Then ' Un jour à comptabiliser ' Première journée? : à quelle heure entre-t-on? If J = PremJ Then t1AM = .Max(Deb - Int(Deb), Matin) t1PM = .Max(Deb - Int(Deb), FinLunch) Else ' sinon, simule les heures minimum t1AM = Matin t1PM = FinLunch End If
' Dernière journée? : à quelle heure quitte-t-on? If J = DernJ Then t2AM = .Min(Fin - Int(Fin), DebLunch) t2PM = .Min(Fin - Int(Fin), Soir) Else ' sinon, simule les heures maximum t2AM = DebLunch t2PM = Soir End If
N = .Max(0, t2AM - t1AM) ' heures du matin ' heures de l'après-midi (sauf samedi) If Weekday(J) <> 7 Then N = N + .Max(0, t2PM - t1PM)
'ajout du nombre Heures travaillées au Jour J calcTempsTravaille = calcTempsTravaille + N
End If Next J ' toutes les heures sont comptées
End With ' Application End Function
Salutations,
Daniel M.
Salut Aline,
Je te propose 2 manières: Par formule (longue) et par VBA.
A-Par formule
Donne les valeurs de la 2e colonne aux noms suivants (ou nomme les cellules sur
le chiffrier après avoir inscrit ces valeurs, peu importe):
JrDeb 08:00
JrFin 18:00
LDeb 12:00
LFin 14:00
JrsFrs la plage des jours fériés français
Ensuite, en C1, la formule matricielle suivante (à saisir avec Ctrl-Maj-Entrée):
B-Par VBA:
Tu dois mettre la formule suivante en C1
ÊlcTempsTravaille(A1;B1;JrsFrs)
Dans un module (Alt-F11, Menu Insère/Module), insère le code suivant:
' Daniel M. Dec 2003
' Calcule le temps travaillé entre 2 dates étant donné 2 plages horaires
' les jours de semaines et 1 seule le samedi. Tient compte des JoursFeries
' 3e paramètre (facultatif)
'
Function calcTempsTravaille(Deb As Date, Fin As Date, _
Optional JoursFeries As Range) As Double
Dim J As Date, PremJ As Date, DernJ As Date
Dim t1AM#, t1PM#, t2AM#, t2PM#, N# ' les heures AM, PM, totales
Dim Matin#, DebLunch#, FinLunch#, Soir# ' les constantes (données du problème)
Dim enVacances As Boolean, FeriesExistent As Boolean
FeriesExistent = Not JoursFeries Is Nothing
With Application
' Pour chaque jour, compte les heures
For J = PremJ To DernJ
' Determine si J est une journée de repos
enVacances = False
If Weekday(J) = 1 Then
enVacances = True ' Dimanche, on se repose
ElseIf FeriesExistent Then
' repos si jour férié
enVacances = IsNumeric(.Match(J * 1, JoursFeries, 0))
End If
If Not enVacances Then ' Un jour à comptabiliser
' Première journée? : à quelle heure entre-t-on?
If J = PremJ Then
t1AM = .Max(Deb - Int(Deb), Matin)
t1PM = .Max(Deb - Int(Deb), FinLunch)
Else ' sinon, simule les heures minimum
t1AM = Matin
t1PM = FinLunch
End If
' Dernière journée? : à quelle heure quitte-t-on?
If J = DernJ Then
t2AM = .Min(Fin - Int(Fin), DebLunch)
t2PM = .Min(Fin - Int(Fin), Soir)
Else ' sinon, simule les heures maximum
t2AM = DebLunch
t2PM = Soir
End If
N = .Max(0, t2AM - t1AM) ' heures du matin
' heures de l'après-midi (sauf samedi)
If Weekday(J) <> 7 Then N = N + .Max(0, t2PM - t1PM)
'ajout du nombre Heures travaillées au Jour J
calcTempsTravaille = calcTempsTravaille + N
Je te propose 2 manières: Par formule (longue) et par VBA.
A-Par formule Donne les valeurs de la 2e colonne aux noms suivants (ou nomme les cellules sur le chiffrier après avoir inscrit ces valeurs, peu importe): JrDeb 08:00 JrFin 18:00 LDeb 12:00 LFin 14:00 JrsFrs la plage des jours fériés français
Ensuite, en C1, la formule matricielle suivante (à saisir avec Ctrl-Maj-Entrée):
B-Par VBA: Tu dois mettre la formule suivante en C1 ÊlcTempsTravaille(A1;B1;JrsFrs)
Dans un module (Alt-F11, Menu Insère/Module), insère le code suivant: ' Daniel M. Dec 2003 ' Calcule le temps travaillé entre 2 dates étant donné 2 plages horaires ' les jours de semaines et 1 seule le samedi. Tient compte des JoursFeries ' 3e paramètre (facultatif) ' Function calcTempsTravaille(Deb As Date, Fin As Date, _ Optional JoursFeries As Range) As Double Dim J As Date, PremJ As Date, DernJ As Date Dim t1AM#, t1PM#, t2AM#, t2PM#, N# ' les heures AM, PM, totales Dim Matin#, DebLunch#, FinLunch#, Soir# ' les constantes (données du problème) Dim enVacances As Boolean, FeriesExistent As Boolean
FeriesExistent = Not JoursFeries Is Nothing With Application
' Pour chaque jour, compte les heures For J = PremJ To DernJ ' Determine si J est une journée de repos enVacances = False If Weekday(J) = 1 Then enVacances = True ' Dimanche, on se repose ElseIf FeriesExistent Then ' repos si jour férié enVacances = IsNumeric(.Match(J * 1, JoursFeries, 0)) End If
If Not enVacances Then ' Un jour à comptabiliser ' Première journée? : à quelle heure entre-t-on? If J = PremJ Then t1AM = .Max(Deb - Int(Deb), Matin) t1PM = .Max(Deb - Int(Deb), FinLunch) Else ' sinon, simule les heures minimum t1AM = Matin t1PM = FinLunch End If
' Dernière journée? : à quelle heure quitte-t-on? If J = DernJ Then t2AM = .Min(Fin - Int(Fin), DebLunch) t2PM = .Min(Fin - Int(Fin), Soir) Else ' sinon, simule les heures maximum t2AM = DebLunch t2PM = Soir End If
N = .Max(0, t2AM - t1AM) ' heures du matin ' heures de l'après-midi (sauf samedi) If Weekday(J) <> 7 Then N = N + .Max(0, t2PM - t1PM)
'ajout du nombre Heures travaillées au Jour J calcTempsTravaille = calcTempsTravaille + N
End If Next J ' toutes les heures sont comptées
End With ' Application End Function
Salutations,
Daniel M.
Daniel.M
Oups. Voici la formule matricielle (Ctrl-Maj-Entrée) traduite:
=SI(A1>B1;0;ARRONDI(SOMME(ESTNA(EQUIV(LIGNE(INDIRECT(ENT(A1)&":"&ENT(B1)));JrsFr s ;0))*CHOISIR(JOURSEM(LIGNE(INDIRECT(ENT(A1)&":"&ENT(B1))));0;8;8;8;8;8;4)/24) -CHOISIR(SOMME(0+(JOURSEM(A1)<{2;7}))+1+3*ESTNUM(EQUIV(ENT(A1);JrsFrs;0)) ;MAX(0;MIN(LDeb;MOD(A1;1))-JrDeb);MAX(0;MIN(LDeb;MOD(A1;1))-JrDeb)+MAX(0; MIN(JrFin;MOD(A1;1))-LFin);0;0;0;0) -CHOISIR(SOMME(0+(JOURSEM(B1)<{2;7}))+1+3*ESTNUM(EQUIV(ENT(B1);JrsFrs;0)) ;MAX(0;LDeb-MAX(MOD(B1;1);JrDeb));MAX(0;JrFin-MAX(MOD(B1;1);LFin)) +MAX(0;LDeb-MAX(MOD(B1;1);JrDeb));0;0;0;0);6))
Salutations,
Daniel M.
Oups. Voici la formule matricielle (Ctrl-Maj-Entrée) traduite:
=SI(A1>B1;0;ARRONDI(SOMME(ESTNA(EQUIV(LIGNE(INDIRECT(ENT(A1)&":"&ENT(B1)));JrsFr
s
;0))*CHOISIR(JOURSEM(LIGNE(INDIRECT(ENT(A1)&":"&ENT(B1))));0;8;8;8;8;8;4)/24)
-CHOISIR(SOMME(0+(JOURSEM(A1)<{2;7}))+1+3*ESTNUM(EQUIV(ENT(A1);JrsFrs;0))
;MAX(0;MIN(LDeb;MOD(A1;1))-JrDeb);MAX(0;MIN(LDeb;MOD(A1;1))-JrDeb)+MAX(0;
MIN(JrFin;MOD(A1;1))-LFin);0;0;0;0)
-CHOISIR(SOMME(0+(JOURSEM(B1)<{2;7}))+1+3*ESTNUM(EQUIV(ENT(B1);JrsFrs;0))
;MAX(0;LDeb-MAX(MOD(B1;1);JrDeb));MAX(0;JrFin-MAX(MOD(B1;1);LFin))
+MAX(0;LDeb-MAX(MOD(B1;1);JrDeb));0;0;0;0);6))