julien974
XLDnaute Occasionnel
Bonjour,
J’espère que vous allez bien !
Cela fait quelques semaines maintenant que je n’ai pas fait appel à vous. Et cette fois ci, j’ai vraiment besoin de vos lumière car j’avoue que mon niveau VBA n’est semble t il pas assez développé pour répondre à ma demande.
Je souhaiterai construire un algorithme qui constitue des palettes, elles mêmes constituées de colis. En quelque sorte un jeu de construction. Mais ce jeu doit répondre à certaines règles. Tout d’abord des règles d’optimisation car les palettes ne doivent pas comporter de « trous ». Puis des règles d’arrangement des différentes lignes de commandes.
Je vais maintenant vous décrire le processus :
•Pour un même client nous avons des lignes de produits correspondant à sa commande du jour.
•Chaque ligne correspond à un produit spécifique intégrant un type de carton. Les cartons varient uniquement en termes de hauteur.
•Une hauteur de palette à été déterminé de manière à trouver un coefficient d’empilement pour chaque carton.
o Ex : hauteur : 1m ; carton de 20 cm : coeff de 5 ; carton de 10 cm : coeff de 10 ; … >> ainsi nous convertissons un nb de carton en nb de colonne.
•Nous pouvons maintenant regrouper les lignes pour former de belles palettes optimisées sachant qu’une palette est composée de 8 colonnes.
Protocole de regroupement :
1.Si le nb de colonne pour une ligne de commande est < 8
a. Chercher une autre ligne dont la décimale permet d’ajuster à l’entier de colonne supérieure.
Ex : 5.4 >> chercher 0.6
b. Chercher ensuite une ligne qui permet de terminer la palette
Ex : (5.4 + 0.6) = 6 >> chercher 2
c. Si le 2 n’est pas présent, chercher le nombre inférieur à deux mais le plus proche puis refaire le point a.
Ex : 6 + 1.7 >> chercher 0.3 (Si le 0.3 n’existe pas refaire le point c. jusqu’à ce que la palette soit complète)
d. Une fois la palette constituée, apposer un n° de palette (identique) devant les lignes sélectionnées.
2.Si le nb de colonne pour une ligne de commande est = à un multiple de 8
a. apposer un n° de palette devant la ligne sélectionnée.
3.Si le nb de colonne pour une ligne de commande est comprise entre 8 et 16
a. Effectuer la même opération qu’au point 1.
Remarque 1 : une ligne marquée par un N° de palette ne peut naturellement plus être utilisée.
Remarque 2 : Lorsque l’on veut choisir une ligne, toujours prendre celle dont la valeur est la plus élevée.
Voilà, j’espère avoir été assez claire dans ma demande.
Je ne pense pas que cet algorithme soit très compliqué à mettre en place mais mes connaissances actuelles ne me le permettent pas.
Dans l‘attente de vous lire, je vous souhaite une agréable journée.
Juli3n 974
J’espère que vous allez bien !
Cela fait quelques semaines maintenant que je n’ai pas fait appel à vous. Et cette fois ci, j’ai vraiment besoin de vos lumière car j’avoue que mon niveau VBA n’est semble t il pas assez développé pour répondre à ma demande.
Je souhaiterai construire un algorithme qui constitue des palettes, elles mêmes constituées de colis. En quelque sorte un jeu de construction. Mais ce jeu doit répondre à certaines règles. Tout d’abord des règles d’optimisation car les palettes ne doivent pas comporter de « trous ». Puis des règles d’arrangement des différentes lignes de commandes.
Je vais maintenant vous décrire le processus :
•Pour un même client nous avons des lignes de produits correspondant à sa commande du jour.
•Chaque ligne correspond à un produit spécifique intégrant un type de carton. Les cartons varient uniquement en termes de hauteur.
•Une hauteur de palette à été déterminé de manière à trouver un coefficient d’empilement pour chaque carton.
o Ex : hauteur : 1m ; carton de 20 cm : coeff de 5 ; carton de 10 cm : coeff de 10 ; … >> ainsi nous convertissons un nb de carton en nb de colonne.
•Nous pouvons maintenant regrouper les lignes pour former de belles palettes optimisées sachant qu’une palette est composée de 8 colonnes.
Protocole de regroupement :
1.Si le nb de colonne pour une ligne de commande est < 8
a. Chercher une autre ligne dont la décimale permet d’ajuster à l’entier de colonne supérieure.
Ex : 5.4 >> chercher 0.6
b. Chercher ensuite une ligne qui permet de terminer la palette
Ex : (5.4 + 0.6) = 6 >> chercher 2
c. Si le 2 n’est pas présent, chercher le nombre inférieur à deux mais le plus proche puis refaire le point a.
Ex : 6 + 1.7 >> chercher 0.3 (Si le 0.3 n’existe pas refaire le point c. jusqu’à ce que la palette soit complète)
d. Une fois la palette constituée, apposer un n° de palette (identique) devant les lignes sélectionnées.
2.Si le nb de colonne pour une ligne de commande est = à un multiple de 8
a. apposer un n° de palette devant la ligne sélectionnée.
3.Si le nb de colonne pour une ligne de commande est comprise entre 8 et 16
a. Effectuer la même opération qu’au point 1.
Remarque 1 : une ligne marquée par un N° de palette ne peut naturellement plus être utilisée.
Remarque 2 : Lorsque l’on veut choisir une ligne, toujours prendre celle dont la valeur est la plus élevée.
Voilà, j’espère avoir été assez claire dans ma demande.
Je ne pense pas que cet algorithme soit très compliqué à mettre en place mais mes connaissances actuelles ne me le permettent pas.
Dans l‘attente de vous lire, je vous souhaite une agréable journée.
Juli3n 974
Pièces jointes
Dernière édition: