Calcul d'écheance avec période de neutralisation cyclique et COVID

Bonjour,

Pour la petite présentation, je suis employé en ingénieur qualité dans l'armement (étatique). Les données de mes demandes seront donc modifiées mais le fond restera le même.

J'ai pour mes travaux, des délais à calculer. Pour se faire j'utilise actuellement la bonne calculette de MS. Cependant, dans une démarche d'amélioration de mon travail, je cherche à automatiser cette étape pour gagner du temps et éviter des erreurs.

Je ne suis pas un génie du VBA, mais ma formation est encore relativement fraiche donc je peux me débrouiller (je pense).

Venons-en à mon sujet :

Un délai est ici calculé à partir d'un T0 qui est égal à "la date de signature de notre fournisseur + 2 jours".

- Si notre T0 calculé est dans le mois d'aout, alors il sera automatiquement égal au 01/09.

- Si notre T0 calculé est dans la période du 10 au 31 décembre, alors il sera automatiquement égal au 01/01/ (année de T0+1)

Maintenant, la partie la plus sportive :

À partir de notre T0 calculé précédemment, nous allons ajouter notre délai de x mois (pour simplifier mon monologue, nous utiliserons le terme DX0) :

- Si DX0 passe par le mois d’août, alors nous ajouterons +31 jours.

- Si DX0 est dans le mois d’août, alors nous ajouterons +31 jours.

- Si DX0 passe par le 10 au 31 décembre, nous ajouterons +21 jours.

- Si DX0 est entre le 10 au 31 décembre, alors nous ajouterons +21 jours.

- Si DX0 est dans la période COVID [01/03/2020 ; 31/07/2020], alors nous ajouterons 140 jours.

Comme vous pouvez le comprendre, un délai peut et c’est là tout le plaisir, passer par plusieurs conditions de neutralisations et donc se retrouver nettement décalé.

Il est aussi important de prendre en compte qu’un délai final calculer pourra encore et encore être décalé s’il « atterrit » dans une période neutralisée.

La dernière complexité réside sur le jour du T0 ou du DX0 final, si c’est un samedi ou dimanche, on le décalera au lundi suivant.

Auriez-vous des idées sur le comment écrire mon petit VBA qui me permettra d’entrer mon T0 en MsgBox et d’en sortir une date directement dans une fenêtre en « pop-up » ?

Je n’ai hélas pas jusqu’à présent trouvé de macro faite que je pourrais adapter, si vous possédez ce graal je suis preneur.

Je ne cherche pas de version finalisée, je veux tout de même comprendre au maximum ce que je présenterez à mes collègues 

Bonjour

Je pense plus simple d'utiliser PowerQuery intégré à Excel que VBA ici mais il faudrait un exemple avec des données bidons mais représentatif

Quid des jours fériés ?

Bonjour, merci de cette première réponse.

je n’ai pas accès à PowerQuery dans mon Excel pro (il me semble, n’étant pas disponible dans les compléments COM).

- On peut avoir un T0 au 28/08/2020 avec imaginons la ligne des écrous A qui doit être soldée sous 5 mois.
On a donc un délai qui commence au 01/09/2020, on ajoute 5 mois on tombe sur le 01/02/2021, on a donc « passé » la période de 10/31 décembre, on ajoute ici 21jours, on est donc à une date d’échéance du 22/02/2021.

- on peut avoir un T0 au 05/04/2020, c’est un dimanche donc on prendra le 06/04/2020, ici les écrous B doivent être soldés sous 8 mois. On a donc premièrement une date à 8 mois au 5/12/2020, on ajoute août pour arriver au 5/01/2021, on ajoute les jours de décembre on arrive au 26/01/2021, on ajoute le COVID (car T0 dans cette période) à 140 jours et on tombe sur le 15/06/2021.

- on peut avoir un T0 au 19/02/2020, une ligne à solder sous 6 mois, on arrive au 19/08/2020, on ajoute août on arrive au 19/09/2020.

- on peut avoir un T0 au 02/01/2020, avec une ligne à solder sous 4 mois, on arrive au 02/05/2020, on ajoute le COVID on tombe sur le 19/09/2020, on ajoute août et on tombe sur le 20/10/2020.

En espérant que cela puisse aider à la comprehension de certaines situations :)

RE

Sur 2016 et + ce pas pas un complément, c'est totalement intégré (onglet Données)

J'avais bien compris l'explication, mais comme tu évoquais les week end j'ai demandé "quid des jours fériés" mais tu n'y réponds pas...

On ne peut modéliser dans PowerQuery sans exemple : les noms des colonnes, les types de données sont essentiels sinon on disserte sur le sexe des anges...

RE,

Très bien, je vais ajouter ça en cherchant mieux alors.

De ce que j'ai comme doc, ils ne sont pas neutralisés.

Très bien, on a des ligne qui chacune correspondent à une désignation article, qui lui même est lié a une quantité, un prix, et un délai.

Ce que je ne comprends pas, c'est qu'ici que ce soit de la livraison de PQ ou la fabrication d'un V6 bi-turbo, on n'a aucun intérêt à le savoir non ? au final on a juste 2 données d'entrés et on en veut une de sortie.

Merci d'avance.

RE

On ne peut modéliser dans PowerQuery sans exemple : les noms des colonnes, les types de données sont essentiels sinon on disserte sur le sexe des anges...
Ce que je ne comprends pas, c'est qu'ici que ce soit de la livraison de PQ ou la fabrication d'un V6 bi-turbo, on n'a aucun intérêt à le savoir non ? au final on a juste 2 données d'entrés et on en veut une de sortie.

Tu ne demandes une simple formule où on peut répondre =A2/B2+C2

ici il faut modéliser sur le principe d'une base de données.

Je perds mon temps et toi le tien. Au bout de 6 heures on n'a pas avancé d'un iota.

Bonjour,

N’étant pas un connaisseur du module powerquery je n’ai potentiellement pas la notion des données nécessaires.
pour les colonnes on a :

Ligne, désignation, numéro de nomenclature, quantité, prix HT, prix TTC, délai de livraison.

Bonjour à tous,

une proposition avec 2 fonctions personnalisées :
=T0(date_début)
=DX0(T0, nb_mois)

Dans Param tu as les paramètres de la fonction DX0.
Si l'année est 1900, ça s'applique à tous les ans, sinon seulement à l'année notée.
Ce n'était pas dit explicitement, mais aout et décembre sont ajoutés chaque année, donc 3 fois si 36 mois. Préciser s'il fallait comprendre autrement.
Tu peux ajouter d'autres lignes (confinement 2ème vague et les autres malheureusement)
Evident mais ça va mieux en le disant : les dates doivent être triées croissantes pour un fonctionnement correct.

Pas le temps de tester, je dois m'absenter. J'ai juste regardé que le seul résultat ne paraisse pas incohérent.
A toi de tester en détail. Avec des dates au milieu et juste aux limites des périodes de gel.
Pour T0 j'ai juste fait +2j sans prendre en compte WE et fériés en attendant les compléments d'information.
eric

5dx0.xlsm (21.44 Ko)

PS :

- Si notre T0 calculé est dans le mois d'aout, alors il sera automatiquement égal au 01/09.

- Si notre T0 calculé est dans la période du 10 au 31 décembre, alors il sera automatiquement égal au 01/01/ (année de T0+1)

non fait mais ce n'est pas le plus dur. Je me suis axé sur le DX0 pour l'instant
Ah ben si, je l'avais fait.
Si j'ai le temps je regarde pour mettre T0 et DX0 aux lundis, sinon demain

au lundi suivant si WE,

12dx0.xlsm (28.03 Ko)

sans tenir compte des fériés vu ton absence de réponse à Chris à ce sujet.
A tester en long et en large
eric

Bonjour, Grand merci eriiic !

Je vais tester et modifier si besoin ce que tu as fait. Je te fais un retour rapide.

Pour les fériés on va les faire passer pour des jours comme des autres, c'est le plus simple et c'est ce qui est en place.

Bonjour,

et donc ?

eric

Rechercher des sujets similaires à "calcul echeance periode neutralisation cyclique covid"