Changement de date par VBA

Bonjour à tous,

Alors voilà je met en place une planification de production, mais j'ai un petit soucis avec des dates. Je planifie une production grâce à un plan de livraison reçu par un client, sur lequel est détaillé des dates de livraison. Comme je connais les temps de prod des pièces, avec une petite soustraction je peut déterminer une date de lancement de production.

Sauf qu'avec cette soustraction, si j’ai une pièce à livrer un lundi, et qui prends 8 jour de production, alors la date de lancement en production devient un dimanche...

Et ça me pose des soucis puisque du coup des pièces ne sont pas mises sur mon plan de production !

Si quelqu’un saurait comment faire changer les dates, lorsqu'elles correspondent à un samedi ou un dimanche, vers un vendredi, je lui en serait très reconnaissant !

Je vous transmet un dossier compressé avec mon fichier planning, ainsi qu'un exemple de plan de livraison reçue du client.

Le programme où il faudrait faire le changement de date est celui qui créé la feuille "Planning de production". Il est nommé "JournéesProd" et se trouve dans le module "Plannification_de_production".

L'ensemble des macros est lancé par le bouton situé sur la feuille planning.

Enfin la feuille qui détaille la production a effectuée chaque jour est "Planning Antoine"

Je reste à votre disposition si quelque chose n'est pas compris !

En vous remerciant, et vous souhaitant une bonne après-midi

Victorien

Bonjour,

La fonction JOURSEM(cellule) peut t'aider.

jour de production

Bonjour, c'est super c'est ce qu'il me fallait !

Par contre j’ai besoin d'aide pour l'adaptation avec VBA ...

J'ai tenté :

Sheets("Plan de production").Cells(i, 11).Value = Sheets("OrdreTri").Cells(Trouvé.Row, 3).Value
        Sheets("Plan de production").Cells(i, 13).Value = Sheets("Plan de production").Cells(i, 5).Value - Sheets("Plan de production").Cells(i, 11).Value
        Sheets("Plan de production").Cells(i, 12).Formula = "=SI(JOURSEM( ("M"&i))=7;("M"&i)-1; SI(JOURSEM("M"&i)=1; ("M"&i)-2; ("M"&i))"

Mais ça ne prends pas ! Sachant que

Sheets("Plan de production").Cells(i, 11).Value = Sheets("OrdreTri").Cells(Trouvé.Row, 3).Value

correspond au nb de jours de production,

Sheets("Plan de production").Cells(i, 13).Value = Sheets("Plan de production").Cells(i, 5).Value - Sheets("Plan de production").Cells(i, 11).Value

correspond au calcul de la mise en production,

et

Sheets("Plan de production").Cells(i, 12).Formula = "=SI(JOURSEM( ("M"&i))=7;("M"&i)-1; SI(JOURSEM("M"&i)=1; ("M"&i)-2; ("M"&i))"

correspond à la formule que je veux écrire pour la mise en production réelle... (Qui s'écrirait dans la colonne M, mais sur toutes les lignes, ce qui explique le M & i)

Bonjour,

Ne serait-il pas plus judicieux d'utiliser la fonction SERIE.JOUR.OUVRE (WORKDAY en anglais)?

Cdlt.

Bonjour jean-Eric,

Je ne connaissais pas cette fonction, mais au vu de comment elle fonctionne, il faudrait que je lui renseigne toutes les dates des samedi-dimanche de l'année visiblement...

Re,

Je crains de ne pas comprendre.

Voir exemple d'utlisation de la fonction.

Si il y a une chose à faire, ce serait de définir les jours fériés!...

Cdlt

Finalement en utilisant le petit enregistreur de macro, j’ai réussi à trouver une formule certes difficilement compréhensible mais qui fonctionne avec la fonction JOURSEM ! Je vous remercie à vous deux pour votre aide et m'excuse Jean-Eric de t'avoir fait perdre de ton temps !

Bonne après-midi

Rechercher des sujets similaires à "changement date vba"