Ordonnancer avec une macro

Bonjour,

Je suis perdu dans le développement de ma macro, c'est pour cela que je me suis inscrit sur le forum.

J'essai de créer une feuille type pour réaliser des scénarios d'ordonnancement.

Pour ceci j'ai créé une feuille avec sur les lignes 3 à 6 les différents projets avec le nom du projet, l'ordre d'ordonnancement, le temps de cycle, le nombre de tournée, le temps de nettoyage et le code unique pour placer sur l'axe de temps après. Sachant qu'on pourra mettre au maximum, 26 projets, pour correspondre aux 26 lettres de l'alphabet.

Il faut savoir que le temps de nettoyage est une contrainte, car on ne peut pas relancer le même process d'un projet directement après il faut attendre le cycle de nettoyage.

Sur la ligne 7 on retrouve donc le scénario d'ordonnancement. Le but étant que ceci se fasse automatiquement avec la macro. Et c'est là ou je me suis perdu, car je n'arrive pas à placer le même projet plusieurs fois en respectant la contrainte de temps entre les deux et y placer un autre projet entre. Aujourd'ui j'arrive unqiement à placer le projet qu'une fois.
J'espère que quelqu'un pourra m'aider sur ce sujet.
25exemple-macro.xlsm (17.91 Ko)

Bonjour,

Besoin d'éclaircissement le point suivant:[s=co-548dd4][/s]

je n'arrive pas à placer le même projet plusieurs fois en respectant la contrainte de temps entre les deux et y placer un autre projet entre.

Exemple: entre le projet A et le projet C, parmi ces 2 solutions, quelle est la bonne?

franck18

Cdlt

Bonjour @Arturo83 et joyeux Noel,

C'est la version du haut qui est la bonne. Par contre dans le trou entre deux A tu places le C mais pas pendant deux heures mais pendant les 7 heures du cycle. En fait si l'inervalle entre deux même proet est plus grand tu places le maximum d'autres projets .

Bonjour à tous,

une proposition

12ordonnancement.xlsm (17.09 Ko)

Bonsoir @h2so4

Presque bon, mais pas encore.

J'ai ajouté sur la ligne 8 le résultat espéré. Sur la ligne 9 et la 10 les temps du nettoyage.

En fait si tu commences un autre projet tu le fais de A à Z et pas seulement 2 heures sr les 7 heures attendues.

bonsoir,

code adapté

19ordonnancement.xlsm (20.08 Ko)

Bonjour @h2so4 et bonne année,

J'ai bien essayé ton code et mis à l'épreuve et tout semble bien fonctionner ;)

Peux-tu m'expliquer cette ligne car je doute l'avoir comprise :

image

Merci à toi encore ;)

bonsoir,

comme indiqué dans le commentaire, il s'agit d'une formule donnant le score des projets pour le créneau en cours, plus petit score, premier projet à prendre

Range("E3:E" & dl).FormulaR1C1 = "=if(rc2=0,2,1)*100+rc1-rc6*1000" 'formule donnant le score des projets pour le creneau en cours, plus petit score, premier projet à prendre

la formule détermine une priorité du projet pour le créneau en cours basé sur la priorité du projet "en colonne A (rc1)" de laquelle on soustrait 1000*l'indicateur process en cours "colonne F (rc6)" et à laquelle on ajoute 200 si le process est terminé ou 100 sinon (rc2). Ces valeurs devraient permettre de gérer jusqu'à 99 projets.

Rechercher des sujets similaires à "ordonnancer macro"