Planing sur Excel qui s'adaptent aux contraintes du calendrier

Nikolas -  
 Nikolas -
Bonjour à tous,

Je suis face à un problème, j'ai peur d'être arrivé aux limites d'excel.

Je cherche à mettre au point un planning particulier.
J'aimerai pouvoir encoder dans Excel des dates (IN) auxquelles excel appliquerait un délai variable (1 jour, 5 jours, 10 jours...) et me fournirait une date OUT.

Exemple : J'encode le 11 décembre 2017 avec un délai de 10 jours. Excel me sort la date du 21 décembre.

Toutefois, certaines contraintes se présentent évidemment (bah oui sinon ce serait trop facile!), il ne faut pas que la date OUT tombe un weekend ou un jour férié.
J'ai donc trouvé le moyen d'empêcher Excel de me mettre un OUT un jour férie ou weekend (ce qu'il fait très bien) mais alors il rallonge le délai.

Exemple : J'encode le 11 décembre 2017 avec un délai de 6 jours. Excel me sort la date du 18 décembre qui est le jour premier jour ouvré suivant la date que je lui avait demandé (qui était sensé être le dimanche 17 décembre). Donc il a rallongé le délai que je lui avais imposé de 1 jours.

C'est là que le bas blesse, je ne veux pas qu'il rallonge mon délai mais plutôt qu'il décale mon IN, jusqu'à tomber sur une date IN qui respecterai le délai imposé en me donnant une date OUT qui ne tombe pas sur un jour de congé/weekend.

Est-ce selon vous possible sur Excel?

J'espère avoir été clair, si vous avez besoin de précisions n'hésitez pas à me demander.

Merci beaucoup de votre aide.

Nikolas

4 réponses

  1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Bonjour.

    Bien sûr, que c'est possible ... Au lieu d'écrire OUT=IN+D tu écris IN=OUT-D !
    En effet ton problème n'est pas
    "J'aimerai pouvoir encoder dans Excel des dates (IN) auxquelles excel appliquerait un délai variable (1 jour, 5 jours, 10 jours...) et me fournirait une date OUT" mais
    "J'aimerais pouvoir encoder dans Excel des dates (OUT) desquelles Excel défalquerait un délai variable (1 jour, 5 jours, 10 jours...) et me fournirait une date IN" ...
    0
    1. Nikolas
       
      Bonjour Raymon,

      Tout d'abord merci de votre réponse.

      Mais alors le problème reste entier, Excel risque de me fournir des dates IN qui pourraient tomber un jour de congé.
      De plus, il est plus intéressant pour moi de fixer le IN afin de lancer un maximum d'évènement le même jour.

      A ce jour, j'ai essayé de travaillé avec les jours ouvrés mais mon problème est réellement que j'ai besoin qu'il décale tout seul la date IN.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    comme la saisie va être modifiée, Excel va refuser, il faut passer par du VBA

    on change "IN" en avançant ou en décalant sa date ?

     Michel
    0
    1. Nikolas
       
      Bonjour Michel,

      Je ne sais pas du tout ce que signifie VBA.

      Effectivement, l'idée serait de décaler la date "IN" jusqu'à tomber sur un "OUT" tombant un jour ouvré tout en respectant le délai imposé.
      0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    J'abonde dans le sens de michel (que je salue au passage) il faut du VBA et donc un exemple de ton fichier, à poster sur cjoint.com en faisant créer un lien, le copier et revenir le coller ici

    Autre souci, tu parles de délai de 10 jours, en ce cas impossible de trouver 10 jours d'affilée sans WE, le délai sera forcément porté à 12 jours alors que fait-on dans ce cas ?

    Cdlmnt
    Via
    0
    1. Nikolas
       
      Bonjour,

      Passer par un weekend ne présente pas de problème.
      Le soucis est que la date "OUT" (donc après le délai de 10 jours) doit elle tomber un jour ouvré.
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    re Nikola

    Bonjour, Via, ca va ? :o)

    je dois ^tre à coté de la plaque mais....
    ecrire délai et date In

    https://mon-partage.fr/f/dwXitEw8/

    le code
    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    Static Flag As Boolean
    Dim Delai As Byte, Deb As Date, Fin As Date, Ferie As Range
    Dim test As Byte

    If Not Intersect(Range("in"), Target) Is Nothing Then
    If Flag = False Then
    Flag = True
    Deb = Range("in")
    Delai = Range("delai")
    Set Ferie = Range("ferie")
    Fin = Application.WorkDay(Deb, Delai, Ferie)
    test = Delai - Application.NetworkDays(Deb, Fin, Ferie)
    Range("in") = Application.WorkDay(Deb, test, Ferie)
    End If
    End If

    Flag = False
    End Sub

    0
    1. Nikolas
       
      Je regarde ça de suite !
      Merci infiniment.
      0