XL 2016 Incrémentation Alpha Numériques

Fef29i

XLDnaute Nouveau
Bonjour à tous,

Voilà un petit moment que je fais mes armes dans Excel et que je commence à faire des fichiers vraiment intéressant. Je récupère à droite et à gauche des brides de codes et j'arrive à les assembler et à les adapter à ce que je veux.

Seulement voilà, aujourd'hui je sèche un peu, je ne trouve pas réellement de solution à mon problème.

Pour vous expliquer, je cherche à incrémenter des références en fonction du résultat d'une autre colonne à liste déroulante.
Dans ma colonne A, je souhaite avoir la donnée incrémentale sous forme alphanumérique (4 choix possibles : Vide si la ligne est vierge ou FRP_210XX ou EQ_210XX ou 8D_210XX avec XX les valeurs à incrémenter). Dans ma colonne H, j'ai ma liste déroulante (4 choix possibles : FRP ou EQ ou 8D ou vide si la ligne n'est pas remplies).

Je pense que vous voyez où je veux en venir... Exemple, si je remplis dans la colonne H la valeur EQ, je souhaite afficher dans la colonne A la valeur EQ_21005 si c'est la cinquième fois que j'utilise EQ en colonne H. Je souhaiterais que cela se produise pour les 3 choix possible dans la liste déroulante.

Aujourd'hui, j'ai utilisé la formule "=SI" pour ce faire. Mais cela ne fonctionne que pour une cellule car je n'arrive pas à faire entrer le paramètre qui va me faire le lien entre l'incrémentation et le remplissage de la cellule H.

Pour que ce soit plus compréhensible, mon fichier est disponible sur cjoint au lien suivant : https://www.cjoint.com/c/KEFnNQA0qBj

Je vous remercie d'avance pour votre aide, vos conseils, vos pistes qui me permettront de trouver la solution, etc. Je commence vraiment à apprécier excel et ses possibilités, alors si vous avez la solution ou une partie de celle-ci, vous ferez un heureux. :)

PS : c'est la première fois que je poste sur un forum, je m'en sers en dernier recours. Car d'habitude je trouve déjà tout ce dont j'ai besoin.

Merci à vous !
Romain
 
Solution
Bonjour job75,

Effectivement, cette fonction qui existait déjà dans l'ancienne formule n'a pas de raison d'être et on peut raccourcir la formule.
VB:
=SI(H2="";"";H2&"_"&($L$1+NB.SI($H$1:$H1;$H2)))

JHA

Fef29i

XLDnaute Nouveau
Bonjour Phil69970,

Premièrement, merci beaucoup pour ton aide. Avec ta formule j'ai bien les incrémentation donc. Idéalement, il faudrait que je puisse quand même différencier les numéros par l'origine "EQ" / "FRP" / "8D".

Je ne sais pas si cela est faisable via des formules. Faut-il passer par une vba ?

Merci encore, comme je l'ai dit, je prends toutes les pistes/conseils qui me permettent de m'améliorer. Je ne connaissais pas l'utilisation des formules droite et gauche ;)

Fef.
 

Fef29i

XLDnaute Nouveau
Bonjour à tous,

Je relance le sujet cité auparavant. Savez-vous si il est possible d'ajouter une macro à la formule de @Phil69970 ? Cela permettrait d'avoir 3 voies d'incrémentation en fonction du résultat de la colonne à liste déroulante (EQ / FRP / 8D).

Merci pour votre aide,
Fef.
 

job75

XLDnaute Barbatruc
Bonjour Fef29i, Phil69970,

Formule en A2 :
Code:
=REPT(H2&"_"&21&TEXTE(NB.SI(A$1:A1;H2&"*")+1;"000");H2<>"")
Par ailleurs il est inutile d'entrer la formule par avance sur plein de lignes vides, utilisez un tableau structuré.

A+
 

Pièces jointes

  • Suivi-qualité(1).xlsx
    82.9 KB · Affichages: 6

JHA

XLDnaute Barbatruc
Bonjour job75,

Effectivement, cette fonction qui existait déjà dans l'ancienne formule n'a pas de raison d'être et on peut raccourcir la formule.
VB:
=SI(H2="";"";H2&"_"&($L$1+NB.SI($H$1:$H1;$H2)))

JHA
 

Fef29i

XLDnaute Nouveau
Bonjour vous deux,

Merci beaucoup pour votre solution, cela fonctionne comme je l'espérais. Quelque chose m'échappe simplement, comment la formule arrive à réaliser cette fonction, sans citer les caractères "EQ", "FRP" et "8D" ?

Merci encore à vous, je vais pouvoir clôturer le sujet.

A bientôt,
Fef.
 

Discussions similaires

Réponses
7
Affichages
436
Réponses
9
Affichages
117

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata