Création de codification
Bonjour,
Je suis en stage en entreprise, et j’ai pour mission de créer un classeur Excel me permettant d’effectuer un suivi des contrats fournisseurs. Pendant 2 mois, je risque donc de vous solliciter assez souvent
Pour commencer, j’aimerais affecter à chaque fournisseur un code unique, de la forme XXX-N.
XXX correspond aux 3 premières lettres du nom du fournisseur.
Jusqu’ici je m’en sors, mais j’aimerais ajouter un numéro après ces trois lettres (à la place du N), afin de pouvoir différencier plusieurs fournisseurs dont le nom commencerait par les 3 mêmes premières lettres.
Ainsi, ce numéro serait par défaut 1, mais si lorsqu’on ajoute un nouveau fournisseur, un ou plusieurs autre(s) fournisseurs avec un début de nom identique sont déjà enregistrés, il faudrait remplacer ce 1 par l’entier supérieur au plus grand déjà existant.
Pour l’instant, j’ai créé 2 colonnes (Code1 et NbCode) que je regroupe dans la colonne « Code fournisseur » et que je masque ensuite.
La première (Code1) renvoie les 3 premières lettres du nom du fournisseur et ajoute un tiret grâce à la formule suivante en F2 :
=MAJUSCULE(GAUCHE(B2;3))&"-"La 2ème colonne (NbCode) affecte un numéro à chaque fournisseur, selon qu’il y a d’autres fournisseurs dont le nom commence par les même lettres. Formule en G2 :
=SI(NB.SI([Code1];F2)=1;1;NB.SI([Code1];F2)-NB.SI($F$1:F1;F2))Mais avec cette méthode, c’est le fournisseur enregistré en dernier qui récupère le 1, et cela décale tous ceux qui existent déjà.
J’aimerais donc savoir si vous avez une solution pour que ce soit le dernier enregistrement qui ait le chiffre le plus élevé. Dans mon exemple, j’aimerais que le code de Siriona soit « SIR-1 », et que celui de Sirocco soit « SIR-2 », sans modifier le reste.
Je vous joins le classeur que j’ai commencé. Ne tenez pas compte du reste (boutons et VBA), c’est assez sauvage et ça va vous brûler les yeux (ça risque de faire l’objet d’autres topics d’ailleurs).
Merci d’avance pour votre aide et bonne journée
EDIT : bien sûr, peu importe si c'est une formule ou du VBA, tant que ça fonctionne je suis heureux !
Bonjour et bienvenue
Pas besoin des colonnes F et G
En A2
=GAUCHE(B2;3)&"-"&SOMMEPROD(N(GAUCHE($A$1:A1;3)=GAUCHE(B2;3)))+1Edit : Avec les 3 lettres en majuscule
=MAJUSCULE(GAUCHE(B2;3))&"-"&SOMMEPROD(N(GAUCHE($A$1:A1;3)=GAUCHE(B2;3)))+1Edit 2 ! Formules modifiée
Amicalement
Nad
Excellent merci beaucoup, ça fonctionne et ça simplifie ma feuille
J'essaye de comprendre la fonction SOMMEPROD mais c'est pas la plus simple.
Et le N dans ta fonction, c'est pour transformer en 0 ou 1 le FAUX ou VRAI du GAUCHE=GAUCHE c'est ça ?
Encore merci pour ta réponse et pour la rapidité !