Autres Calcul de jour ouvrable

philcanonice

XLDnaute Nouveau
Bonjour à tous,
Je suis nouveau sur le forum. Je travaille sur Excel 2007 et j’aimerai savoir comment calculer le nombre de jours ouvrables (du lundi au samedi). Je n’ai pas une grande connaissance en Excel mais il me semble que l’emploi de formule serait plus élégant. J’ai joint un fichier pour montrer ce à quoi ça devrait ressembler.
 

Pièces jointes

  • Classeur1.xlsx
    14.6 KB · Affichages: 23

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour philcanonice,

vraiment pas sur d'avoir compris la demande mais bon un essai quand même avec cette formule a mettre en H10

VB:
=CHOISIR(EQUIV(G10;{"ouvrés";"ouvrables";"calendaires"};0);SERIE.JOUR.OUVRE(E10;F10);SERIE.JOUR.OUVRE.INTL(E10;F10;"0000001");E10+7)

et à étirer vers le bas

voir fichier

cordialement

EDIT Bonjour JHA :) presque la même ;)
 

Pièces jointes

  • Classeur1.xlsx
    15.6 KB · Affichages: 9

philcanonice

XLDnaute Nouveau
Bonjour à tous,
je tiens d’abord à remercier votre communauté. Il est excellent de voir votre vitesse de réaction. Je suis hélas en week-end à la maison, on ne peut pas dire que je me repose, je suis en train de repeindre ma salle de bain, suite à un dégât des eaux. Je dis hélas car je ne suis pas au boulot où se trouve l’ordinateur avec Excel 2007, je ne peux donc pas essayer les solutions que vous m’apportez.
Je ne peux que visualiser vos fichiers sur Numbers, seul tableur que je possède à la maison, je sais que cela n’est pas l’idéal.
@JHA la fonction workday.intl ne me rappelle rien sur la version Excel 2007 que je possède au boulot. Je ne crois pas qu’elle soit pris en compte dans cette version de Microsoft.
@Jocelyn, ta solution a l’air élégante, je l’essaie dés que possible (lundi)
@job75, tu as raison, il faut tenir compte des jours fériés également, c’est un point auquel je n’avais pas pensé, cela doit être pris en compte. Je devrais peut-être inclure un calendrier dans ma futur feuille. Et sur ce calendrier, indiquer/marquer les jours non travaillés.
@toud De façon à être plus précis dans les réponses je vous propose d’attendre lundi soir. Je vous dirai si vous avez réussi à résoudre un de mes problèmes majeur. En attendant, je vous souhaite à tous un bon et agréable week-end.
 

job75

XLDnaute Barbatruc
@ JHA : il ne faut pas abuser de CHOISIR/EQUIV qui prennent beaucoup d'octets en mémoire.

Dans tes formules CHOISIR(EQUIV($D14;{"ouvrés";"ouvrables"};0);1;11) "pèse" 74 octets.

Alors que plus simplement 1+10*(D14="Ouvrables") "pèse" 26 octets.
 

Jocelyn

XLDnaute Barbatruc
re,
Bonjour Job75

@job75 effectivement il faut tenir compte des jours fériés (méaculpa)

je reposte un fichier avec une solution par formule un peu capillotracté pour géré le fait que Philcanonice n'a à priori pas la fonction série.jours.ouvrés.intl() je suis reparti du dernier fichier de JHA

Bon week-end

Cordialement
 

Pièces jointes

  • Classeur1 (1) (1).xlsx
    29.2 KB · Affichages: 9

job75

XLDnaute Barbatruc
Une solution par fonction VBA dans le fichier joint :
VB:
Function MaSerieJoursOuvres(DateIni, n, critere$)
If n = 0 Or critere = "calendaires" Then MaSerieJoursOuvres = DateIni + n: Exit Function
Dim i, dat, wd, j
Do
    i = i + 1
    dat = DateIni + i
    wd = Weekday(dat, 2)
    If critere = "ouvrés" And wd < 6 Or critere = "ouvrables" And wd < 7 Then _
        If Application.CountIf([Feries], dat) = 0 Then j = j + 1
Loop While j < n
MaSerieJoursOuvres = dat
End Function
Le code doit être placé impérativement dans un module standard.

Edit : j'ai inversé les 2 tests, c'est plus rapide ainsi.
 

Pièces jointes

  • MaSerieJoursOuvres(1).xlsm
    30.4 KB · Affichages: 11
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 102
Membres
103 117
dernier inscrit
augustin.morille