Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

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

Elrizer

XLDnaute Nouveau
Bonjour à tous,

Je rencontre une difficulté sur excel et à présent j'en suis à demander de l'aide pour m'en sortir (nouvel arrivant sur le forum donc)

J'ai réalisé un planning sous excel qui, quand on renseigne une date de début et une durée, calcul la date de fin en sautant les sam/dim et jours ferries.

Ceci marche bien grâce à la fonction SERIE.JOUR.OUVRE
Mais depuis j'ai ajouté une condition à 0/1 dans une case pour ne plus sauté les Samedi lorsqu'elle est à 1 et là ça se complique.

SERIE.JOUR.OUVRE ne marche plus. J'ai cherché sans succès à réalisé une fonction VB.

Comment réalisé une fonction VB à placer dans une cellule pour aller chercher sur la même ligne la date de début et la durée puis calculer la date de fin en sautant au choix "sam/dim ou dim" et les jours ferries ?

Ex :
Sur la ligne 11 :
A11 = "Montage"
B11 = 27/05/2008
C11 = 27 jours
D11 = CALCUL DE LA DATE DE FIN

En attendant une réponse, je continue à cherché .....
 
Re : Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

Bonsoir Elrizer,

Ci-joint un exemple avec une formule de calcul. Les explications sont dans le fichier.

Tu auras probablement une autre réponse en VBA et tu pourras choisir.

@+

Gael
 

Pièces jointes

Re : Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

Bonjour,

A2😀ate début
B2:Nb jours ouvrés
Fériés: Champ de JF

=PETITE.VALEUR(SI((JOURSEM(A2+LIGNE(INDIRECT("1:366"));2)<=6)*((NB.SI(fériés;A2+LIGNE(INDIRECT("1:366")))=0));A2+LIGNE(INDIRECT("1:366")));B2)

Valider avec Maj+Ctrl+entrée

JB
 

Pièces jointes

Dernière édition:
Re : Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

Bonjour Elrizer, bonjour Boisgontier,

J'ai testé ta formule, Boisgontier et elle est effectivement nettement plus astucieuse que la mienne pour bien sûr les mêmes résultats.

Elrizer, tu peux aussi paramétrer la formule de Boisgontier en remplaçant "<=6" par "<$G$2" pour intégrer ou non les samedis selon le cas.

formule matricielle à rentrer avec ctrl-maj-entrée.

@+

Gael
 
Re : Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

En VBA:

Code:
Sub essai()
  d = #4/30/2008#
  MsgBox SerieOuvresSamedi(d, 8, 2008)
End Sub

Function SerieOuvresSamedi(début, nb, an)
  Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
  Dim fériés(1 To 11)
    paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7) + _
   (6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
      ((19 * (an Mod 19) + 24) Mod 30) - 1
    fériés(1) = DateSerial(an, 1, 1)
    fériés(2) = DateSerial(an, 5, 1)
    fériés(3) = DateSerial(an, 5, 8)
    fériés(4) = DateSerial(an, 7, 14)
    fériés(5) = DateSerial(an, 8, 15)
    fériés(6) = DateSerial(an, 11, 1)
    fériés(7) = DateSerial(an, 11, 11)
    fériés(8) = DateSerial(an, 12, 25)
    fériés(9) = paques + 1
    fériés(10) = paques + 39
    fériés(11) = paques + 50
    SerieOuvresSamedi = début
    k = 0
    Do
      k = k + 1
      témoin = False
      For i = 1 To 11
       If début + k = fériés(i) Then témoin = True
      Next i
      If Weekday(début + k) <> 1 And Not témoin Then
        SerieOuvresSamedi = début + k
        n = n + 1
      End If
    Loop Until n >= nb
End Function

JB
 

Pièces jointes

Re : Help! : SERIE.JOUR.OUVRE qui n'exclue pas les Samedi

Merci GAEL, Merci BOISGONTIER,

J'ai testé les codes, il fonctionnent bien !
Dans tous les tests que j'ai effectué, je n'obtenais qu'un coup sur 2 la bonne date de fin (et encore).
je n'ai pas encore compris le propos de vos formules. Débutant en VB, je pensais au moins comprendre rapidement la formule excel.
PETITE.VALEUR et INDIRECT sont des éléments que je n'utilise pas.
Ca marche bien !

Je regarde, je les intègre et je vous réponds. (J'ai une semaine plus que chargé, je vais vous répondre le plus vite possible)
J'ai déjà constaté qu'il me faudra retiré 1j au délai pour inclure la date de début.

Merci encore
C'est plus que j'espérais en posant ma question.

Elrizer
 
- 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
14
Affichages
913
Réponses
0
Affichages
378
Réponses
0
Affichages
502
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…