A votre place, je n'utiliserais pas la fonction SI qui va devenir très vite compliquée à mesure que le nb de fournisseur augmentera.
Voici comment je ferais:
1) création d'une table des fournisseurs avec deux colonnes et les intitulés des colonnes en première ligne : nom et code. idéalement cette table doit être transformée en tableau de donnée via le menu insertion tableau en prenant bien soin de cocher la case "mon tableau comporte des entête. Le tableau sera par exemple renommé "T_fournisseurs"

2) création d'une table des pièces avec (au moins) 3 colonnes: N° pièce, nom fournisseur et code pièce. La table peut également être transformée en tableau (nommé T_pièces), ce qui facilitera la syntaxe des formules et leur lisibilité.Le numéro de pièce est saisi. La colonne nom fournisseurs peut être une liste de choix (données/ validation de données /liste) qui prend sa source dans T_fournisseurs et s'incrémente automatiquement grace à la combinaison des fonctions decaler et nbval.

3) utilisation de la formule SOMMEPROD pour la génération du code unique dans la colonne "code pièce":
=TEXTE(SOMMEPROD((T_Fournisseurs[Nom]=[@Fournisseur])*T_Fournisseurs[Code])&[@[N° pièce]];"00#")
!!La disposition des parenthèses est très importante pour cette formule.
Vous pourriez également utiliser la fonction bdlire mais elle nécessite de créer une zone de critère, ce dont sommeprod vous dispense
La formule peut ensuite être incrémentée vers les autres lignes
Partager