Il y a l’onglet Feuil1, qui sert d’accueil et l’onglet STOCK.
Dans le TS Tab_1 la première colonne sert comme ID.
Le soucis est, lorsque je veux créer une nouvelle entrée via le bouton de l’onglet Feuil1 et que je valide alors il me change tous les ID déja en place.
Explications:
Si par exemple je veux créer une nouvelle entrée.
et que je choisi dans le combobox10 le rayon CCR et que l’article lequel je veux créer porte le nom de Ang5 et que je valide, il devrait le placer avant l’article Ang5 déja en stock et lui donner l’ID R1203.
Or, il donne des ID neuves à toutes les lignes.
Auriez vous une explication à cela s’il vous plaît.
je viens d’essayer votre fichier mais cela ne fonctionne pas .
J’avais expliqué que, par exemple, si je veux créer le nouveau suivant:
Rayons : CCR
Désignation : Ang4
alors il devrait me le placer en première ligne sur ce Tableau et avoir l’ID R1203.
Or comme vous pouvez voir sur le fichier en retour qu’il le place, effectivement sur la première ligne, mais il ne lui donne pas le bon ID, car ici il lui donne l’ID R1210
Si je veux créer par exemple un nouveau comme ci dessous :
Rayons : EET
Désignation : Oups3
il me le place également à la suite logique des désignations, mais la encore une fois il ne donne pas l’ID suivant mais un tout autre ID.
Les ID n’ont rien a voir avec les différents rayons. Je peux a tout moment créer un nouvel article en lui donnant un nouveau rayon.
Ce que je souhaiterai avoir c’est ce qui suit;
voir fichier ci-joint:
comme je t’ai placé un nouvel article dans le TS, il est bien en première ligne car suivant l’ordre alphabétique des Rayons et de la colonne Désignation il y a un tri qui se fait avec la macro Tri_Stock.
Donc tu peux voir qu’il l’a bien placé en première ligne car Ang4 est avant Ang5.
Sauf qu’il ne me donne pas l’ID R1203, ce qui serait logique.
Même chose si je veux créer un nouvel article avec un nouveau rayon, comme je l’ai fais avec le rayon SSD et la désignation Pat1, il me le place bien dans l’ordre alphabétique dans la colonne Rayons, ce qui est bien, mais il ne donne pas le bon ID, car il aurait dû lui donner R1210.
vous n’ajouterez jamais un article qui se trouve, après triage, quelque part au milieu du TS et à ce moment l’article après = l’article avant +1 ? Par exemple, j’ajoute « PPM » & « DDD » = R1208,5 ?
comme promis, une nouvelle explication qui, je pense, sera meilleure.
J’ai placé un fichier pour mieux comprendre.
Alors pour commencer, je peux créer des nouveaux rayons et articles via le UserForm.
Si par exemple je dois créer l’article qui est en première ligne ( voir tableau) qui est du même rayon que l’article en ligne 2, alors il le place bien avant celui-ci car vu l’ordre alphabétique est correct. BOEUF DEMI est bien avant BOEUF QUART.
Par contre il devrait lui donner l’ID R1203, mais il lui a donné l’ID R1211.
De même si je veux créer un article comme Pomme gala ( voir dans tableau) il le place bien avant Pomme golden vu l’ordre alphabétique, mais ne lui donne pas l’ID correct qui devrait être R1208 au lieu de R1212.
Oui alors si la nouvelle création doit se placer avant la première inscription , oui cela à l’air de fonctionner.
Par contre pas si la nouvelle inscription est par exemple au Milieu du tableau.
J’ai essayé de créer l’article Oups3 rayon EET et il le place bien dans l’ordre alphabétique mais ne donne pas l’ID correct.
Le dernier fichier que je vous ai placé dans le post 8 explique pourtant bien mon souhait.
Alors je récapitule :
La colonne ID peut commencer par exemple avec R0001 et se terminer par R9999, ceci juste comme exemple.
En ce qui concerne les rayons, on peut toujours si besoin créer des nouveaux. Tout dépend de l’article créé.
Alors maintenant la création:
Si création d’un article dont le rayon existe déjà, alors il devrait se placer suivant l’ordre alphabétique et ensuite lui donner le bon ID. Soit il se place au début comme pour l’exemple ci-dessus, ce qui est logique vu l’ordre alphabétique de la désignation de l’article et vu que le rayon existe déjà.
si création avec un article comme dans l’exemple ci-dessous avec Pomme gala, alors oui il le place bien avant pomme golden, ce qui est logique vu l’ordre alphabétique de la désignation de l’article, ais il ne lui donne pas le bon ID. Ici il aurait dû lui donner l’ID R1208 et poursuivre en dessous avec la suite donc l’ID en dessous R1209 pour Pomme golden.
bonjour, je n’ai pas encore lu votre solution, autrement vérifier la macro modifiée « Tri_Stock » et la colonne « Colonne4 » Rubis10 (2) (1).xlsm (26,3 Ko)
Edit : bon, vous l’avez fait avec cet autofill, okay, sauf quand le TS est vide ou si le nouvel article après triage est le premier. (et ces [ ] sont un peu agés et moins pratique)
Reindexer comme çà, c’est bizarre, mais c’est votre choix.
Sub ReIndex_ID() 'Réindexe le tableau de la feuille STOCK après avoir effectué des mouvements
Dim N As Long
With Range("Tab_1").ListObject 'le TS
N = .ListRows.Count
If N > 0 Then 'il n'est pas vide
Set c = .ListColumns("ID").DataBodyRange 'la plage à "autofill"
c.Cells(1, 1).Value = "abcde_01234" 'première cellule
If N > 1 Then
c.Cells(2, 1) = "abcde_01235" '2eme cellule = première+1
c.Resize(2).AutoFill c
End If
End If
End With
End Sub
Merci à toi pour cette participation et tes codes et conseils. A priori tout fonctionne bien avec ton dernier code de ré-indexation. Je ferai des tests réels sur site à partir de demain et je laisserai une information pour te donner le résultat.