Macro complexe attribution d'emplacements

etienne33

XLDnaute Nouveau
Bonjour à tous,

Je viens vers vous car j’ai besoin d’aide pour la création d’une macro.
En effet, nous avons besoin de refaire l'implantation des articles dans un dépôt suite à un déménagement.

Vu l'ampleur de la tache le faire manuellement prendrait beaucoup trop de temps sans compter le risque d'erreurs.

Je voudrais savoir si il est possible de créer une macro capable d’attribuer automatiquement des codes articles en fonction du type de casier auquel ils sont associés.

Dans le fichier en pièce jointe, il y a deux feuilles :

La feuille "Cartographie" : Elle représente les étagères vues de face dans les allées. Pour chaque niveau d’étagère, il y a 3 lignes :

- Type casier : c’est l’information qui va être utilisée par la macro pour attribuer un code article avec un type casier identique. Pour les cases vides avec un quadrillage en croix (ex : G25 à L25), il ne faut pas affecter de code article

- Code : L’idée serait que la macro renseigne le code article (colonne A dans la feuille "Picking") qu’elle attribue à l’emplacement

- Nom Emplacement : La macro doit renseigner le nom de l’emplacement qui correspond à l’étagère (information en haut de chaque étagère) + un point + la hauteur (information dans la colonne A du tableau) + un point + la position sur l’étagère (en comptant de gauche à droite)

Exemple : Pour un article en G12, l’emplacement serait : A.01.05.4

La feuille "Picking" : Elle contient la liste des articles avec la dimension du casier auquel il faut les affecter.

Il faudrait donc que la macro fasse deux choses :

1 / Qu’elle renseigne dans la feuille "Cartographie" au-dessus de chaque type de casier le code article et le nom emplacement

2 / Puis qu’elle reporte en face de chaque code article, les emplacements attribués dans la feuille "Cartographie" vers la feuille "Picking" dans la colonne T

Petite précision : les codes articles dans la feuille "Picking" sont triés dans un ordre précis. Il faudrait que la macro puisse les affecter dans cet ordre en prenant le premier emplacement disponible avec le même type de casier. Le remplissage se fait par étagère du haut vers le bas, de gauche à droite.

Je remercie déjà par avance, les personnes qui vont tenter de décrypter ma demande :)
Je reste bien entendu à votre disposition pour vos éventuelles questions.

Bonnes fêtes à tous.
 

Pièces jointes

  • Cartographie.xlsx
    678.7 KB · Affichages: 94

sousou

XLDnaute Barbatruc
Bonjour
Avant de continuer, il faudrait que tu testes ce début d'appli pour voir si celà correspond à tes besoins.
L'appli ne gère ici qu'un code pour le test.
Sélectionne un code de la feuille picking, et lance la macro affect()
regarde le résultat .
J'ai ajouté un x_ devant les résultats pour pouvoir mieux faire des tests et pouvoir recommencer en effaçant les données, il sera simple de supprimer tous celà après.
Il manque une info dans ton post tu parle bien des règles de rangement dans une allée (haut vers bas, gauche, vers droite)
mais quelles règle entre les allées?
 

Pièces jointes

  • Cartographie1.xlsm
    727 KB · Affichages: 79

etienne33

XLDnaute Nouveau
Bonjour,

Je te remercie de t'occuper de ma demande.

J'ai fait un test sur un article avec un type casier 48.
La macro positionne l'article en F24 alors que le premier emplacement disponible dans l'étagère est en J15. Il faudrait quelle remplisse les étagères de gauche à droite en commençant par le haut de l'étagère.

En ce qui concerne le nommage des cellules (code article et nom emplacement) c'est parfait.
Il manque cependant la remontée de l'emplacement attribué dans l'onglet "Picking" en colonne T.

Je t'ai schématisé dans le fichier le sens de rangement idéal.
En gros ce serait d'alterner un remplissage de gauche à droite puis à l'allée suivante de droite à gauche, etc...
Cependant dans le cas d'une allée à remplir de droite à gauche, il faudrait que la position sur l'étagère soit faite de droite à gauche.

Exemple : Pour un article en L43, le nom de l'emplacement serait A.26.03.1 au lieu de A.26.03.8.
 

Pièces jointes

  • Copie de Cartographie1.xlsm
    689.3 KB · Affichages: 63

sousou

XLDnaute Barbatruc
Bonjour à tous et excellente année.
En fait c'est un peu complexe pour gérer le sens de circulation,
Essaie de tester, il me semble que c'est bon...
Ajoute les allées dans l'array, j'en est mis que deux
 

Pièces jointes

  • Cartographie1.xlsm
    733.6 KB · Affichages: 74

etienne33

XLDnaute Nouveau
Bonjour,

Voici mes remarques :

- En J15, il y a le chiffre 1 qui remonte au lieu d'être à blanc
- Les allées paires sont bien inversées pour l'incrémentation ce qui est parfait par contre la position sur l'étagère est codifiée dans le mauvais sens. Est-ce qu'en mettant le numéro d'emplacement dans toutes les étagères sur la ligne noire (exemple ligne 32) ça serait plus simple pour ta macro d'attribuer la position sur l'étagère ?
- Il manque le numéro d'emplacement attribué qui doit remonter dans la fiche picking mais je pense que tu n'as pas encore regardé cette partie de ma demande.

Merci d'avance,
 

sousou

XLDnaute Barbatruc
Bonjour
Pour le 1 il suffit de l'effacer, c'est un reste des essais
Pour le sens une erreur dans la variable sens variable dans cherchecasier
Pour le numéro un ligne ajoutée dans remplircasier
+ une modification qui va gagner du temps de traitement toujours dans cherchecasier ('step3)
 

Pièces jointes

  • Cartographie1.xlsm
    736.2 KB · Affichages: 58

etienne33

XLDnaute Nouveau
Bonjour,

J'ai repéré une petite anomalie en faisant des tests.
Dans le fichier en pièce jointe, l'article 120020 avec un type casier 76 est positionné en EN8 sur un casier de taille 18.

Merci d'avance,
 

Pièces jointes

  • Cartographie_V3 (1)_test.xlsm
    615.7 KB · Affichages: 62

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 145
Membres
112 669
dernier inscrit
Guigui2502