recaler Date selon conditions [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 23-12-2008 à 23:52:47
essaye de poser l'algorithme en français parce que ton explication est véritablement pas très claire, grosso modo on voit que tu veux reporter les retard sur les taches suivante, un genre de gestion de diagramme de gant mais bon, je comprend pas trop comment tu veux gérer tes retards
et donne aussi la finalité, pourquoi tu veux faire ça, si c'est pour trouver ta date de fin en reportant les retards, il suffit d'ajouter ton retard a la date de fin ... enfin bref je trouve pas ça très clair
Marsh Posté le 23-12-2008 à 15:57:58
bonjour à tous !
dans le cadre de mon boulot je voudrais faire une petite macro(VBA) qui puisse me facilité
la tâche au quotidien! mais le probleme c'est que je ne suis pas programmeur
je viens a vous car j'ai un petit probleme d'algo qui m'empéche d'avancer dans mon boulot
je travaille sur un sorte de nomenclature dont j'ai entré les données dans un tableau
Option Explicit
Type Tableau
niveau As Integer
dateD As Date
dateF As Date
End Type
je pense pas que le plus dure soit de le faire me de l'éxpliquer
je vais prendre un exemple limité
imaginons dans mon tableau:
niveau------------dateD------------dateF
0...............10/08/08........20/08/08
..1.............03/07/08........09/08/08
....2...........26/06/08........02/07/08
..1.............23/06/08........10/08/08
....2...........22/06/08........26/06/08
......3.........14/06/08........30/06/08
........4.......12/06/08........13/06/08
imaginons que mon niveau 0 soit une tour d'ordinateur
pour que mon niveau 0 soit construit entierement il faut que les
niveau inférieur soit construit avant!
par exemple :mon deuxieme niveau 1 est la carte mére pour quelle soit fabriquée
il me faut les composant 2,3,4 soit fabriqué avant
Pour que mon niveau 3 puisse étre construit mon niveau inférieur ici 4 devras étre finis
la date de début du niveau 3 soit :
si la date de fin du niveau 4 < date de debut niveau 3 : c'est ok
parcontre dans le cas de mon niveau 1 en rouge :
ma date de debut de fabriquation débute le 23/06/08 alors que le niveau 2 inférieur
ne se termine que le 26/06/08
alors ma date de fabrication du niveau 1 devras étre recalé au 26/06/08 et sa date de fin serra égale au 26/06/08 + (12/08/08- 23/06/08)
ce qui aurras pour conséquence de modifier la date de début de construction de mon niveau 0
en gros mon tableau doit devenir
niveau------------dateD------------dateF
0...............15/08/08........25/08/08 'mon niveau 0 peut commancer la fabriquation lorsque que mon niveau 1 est fini c-a-d le 15/08/08 au lieu du 10/08/08
..1.............03/07/08........09/08/08
....2...........26/06/08........02/07/08
..1.............26/06/08........15/08/08 '23/06/08 de vient 26/06/08 et 10/08/08 devient 15/08/08
....2...........22/06/08........26/06/08 'mon délais de fabrication reste le mm mais commence plus tard
......3.........14/06/08........30/06/08
........4.......12/06/08........13/06/08
en gros a cause du retard pris dans la fabrication de ma carte mére mon pc serra fabriqué 5 jours plutard de ma date de prévision
j'ai commencé avec Dim datereal As Date
For T = T - 1 To 1 Step -1
datereal = tab1(T).dateF
If tab1(T).niveau < tab1(J + 1).niveau Then
If tab1(T).dateF > tab1(T + 1).dateD Then
datereal = tab1(T).dateF + (tab1(T + 1).dateF - tab1(T + 1).dateD)
End If: End If
Next T
et la je suis perdus dans mes boucle et mes controle si mon niveau et bien inférieure
si quelqu'un pouvait m'aider ! mm si mes explications sont plus ou moin bien réussis je peus
trouver des exemples plus clair
je suis en vancance que le 24 et j'aurrais bien voulus faire tourné ma macro avant xD