XL 2013 Création des codes alphanumériques à partir des noms et dates de naissance

sadlersmith

XLDnaute Nouveau
Bonjour à tous,
J'ai un sérieux problème et espère que vous pourrez m'apporter une solution.
Je dois créer dans excel des codes alphanumériques à partir des noms, dates de naissance et ordre d'arrivée.
Je mets également en pièces jointes le fichier excel du travail.
Merci d'avance

GARDOU SIMON 15-05-1990 M
HOUBBY LEA 1995-12-13 F
GARGAMEL SAMUEL 1990-05-15 M
BOUCHARD JACQUES 1994-09-18 M
GARTER SANDRA 1990-05-15 F
BOUCHARD JULIEN 1994-09-18 M
GAROLOU SAM 1990-05-15 M
DUBREUIL JULIE 1994-11-01 F
FARNENT FLORENT 1995-01-04 M
VOYER BERNARDE 1995-08-14 F
VOYER BERTHE 1995-08-13 F

• Au total il y a 12 caractères
• 3 premiers caractères : 3 premières lettres du nom de famille
• 4ième caractère : première lettre du prénom
• Caractères 5 et 6 : jour de naissance
• Caractères 7 et 8 : mois de la naissance (si sexe féminin ajouter 50)
• Caractères 9 et 10 : deux derniers chiffres de l’année de naissance
• Caractères 11 et 12 : le «rang» occupé par le code permanent selon l’ordre du «premier arrivé premier servi». Par exemple, si deux personnes sont nées à la même date et que les 3 premières lettre de leur nom de famille sont identiques ainsi que la première lettre de leur prénom, le premier inscrit aura comme fin de code permanent «01» alors que le second aura «02».
 

Pièces jointes

  • Création codes.xlsx
    11.1 KB · Affichages: 96
  • Création codes.xlsx
    11.1 KB · Affichages: 87

decricri

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonjour,

Pour récupérer les trois premières lettres du nom :
=GAUCHE(A16;3)
Pour récupérer la première lettre du prénom :
=Gauche(A17;1)
Pour récupérer le jour :
=JOUR(C16)
Pour récupérer le mois :
=MOIS(C16)
Pour récupérer l'année sur 2 chiffres:
=DROITE(ANNEE(C16);2)
Pour tout mettre dans la même case :
=concatener(première valeur;2ème valeur...)
Je pense que tu peux tout regrouper dans le concatener où dans la première valeur tu mets Gauche(A16 ;3) etc

Enfin pour ta clé de commande peut-être qu'un si suffit mais pas sur je creuse ce point.

A plus
 

decricri

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

ça donne :

=CONCATENER(GAUCHE(A16;3);GAUCHE(B16;1);JOUR(C16);MOIS(C16);DROITE(ANNEE(C16);2))

Par contre pour le mois il supprime le zéro je vois si autre chose est possible pour le récupérer.

=CONCATENER(GAUCHE(A16;3);GAUCHE(B16;1);JOUR(C16);SI(MOIS(C16)<=9;"0"&MOIS(C16);MOIS(C16));DROITE(ANNEE(C16);2))

Là ça fonctionne reste l'histoire de ta clé
 

decricri

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

As-tu beaucoup de personnes à tester? Si moins de 100 tu peux mettre un numéro d'office à chaque ligne qui s'incrémente de 1 à chaque fois sinon si moins de 1000 personnes peut être trois chiffres en clé. ça simplifierait le tout.

J'attends de tes nouvelles
 

david84

XLDnaute Barbatruc
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonjour,
à tester (ton exemple comporte une erreur) :
Code:
=GAUCHE(A16;3)&GAUCHE(B16;1)&TEXTE(JOUR(C16);"jj")&SI(D16="F";MOIS(C16)+50;TEXTE(MOIS(C16);"mm"))&TEXTE(ANNEE(C16);"aa")&DROITE(ANNEE(C16);2)&TEXTE(SOMMEPROD(--(GAUCHE(A$16:A16;3)=GAUCHE(A16;3));--(GAUCHE(B$16:B16;1)=GAUCHE(B16;1));--(C$16:C16=C16));"00")
A+
 

decricri

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

J'ai oublié ça : " (si sexe féminin ajouter 50)"

Par contre quand je teste ton code David ça donne "GARS1501059001" c'est quoi le 01 entre le jour de naissance et le mois?
 

david84

XLDnaute Barbatruc
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Est-ce mieux comme cela ?
Code:
=GAUCHE(A16;3)&GAUCHE(B16;1)&TEXTE(JOUR(C16);"jj")&TEXTE(SI(D16="F";MOIS(C16)+50;MOIS(C16));"00")&DROITE(ANNEE(C16);2)&TEXTE(SOMMEPROD(--(GAUCHE(A$16:A16;3)=GAUCHE(A16;3));--(GAUCHE(B$16:B16;1)=GAUCHE(B16;1));--(C$16:C16=C16));"00")
A+
 

CISCO

XLDnaute Barbatruc
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonjour à tous, bonjour David84, decricri

@ sadlersmith : Dans ton exemple, tu as des dates de naissance dans un ordre, et d'autres, dans l'autre ordre. Est-ce une erreur, ou est-ce vraiment le cas dans ton fichier réel ?

@ plus
 

sadlersmith

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonjour à tous,
Merci d'abord pour les réaction ultra rapides que vous avez à l'égard de mon problème.
CISCO a raison, la première date de naissance est dans un ordre(format) différent des autres. Le vrai ordre c'est ce qui est utilisé par la suite. En fait c'est moi qui ai inversé la première date parce que dans l'ordre original je ne parvenais à avoir les 2 derniers caractères de l'année de naissance et j'ai donc inversé pour tester.
 

sadlersmith

XLDnaute Nouveau
Re : Création des codes alphanumériques à partir des noms et dates de naissance

J'ai copié intégralement la formule de cisco que j'ai directement collée dans la cellule et le résultat est bon. Sauf qu'elle est tellement longue cette formule que je me demande comment la retenir. Pourrait t-il avoir une décomposition pour mieux la retenir ou pour l'apprenstissage?
Merci à vous
 

CISCO

XLDnaute Barbatruc
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonsoir

Ce n'est pas moi qui ai proposé la formule du post #9, mais david84.

juste pour que tu comprennes plus facilement cette formule, je l'ai un peu modifiée dans le fichier ci-joint et l'ai écrite sous la forme
Code:
dixpremiers&TEXTE(SOMMEPROD((dixpremiers=GAUCHE(G$15:G15;10))*1)+1;"00")
avec le nom dixpremiers qui donne les dix premiers caractères désirés
dixpremiers=GAUCHE(A16;3)&GAUCHE(B16;1)&TEXTE(JOUR(C16);"jj")&TEXTE(SI(D16="F";MOIS(C16)+50;MOIS(C16));"00")&DROITE(ANNEE(C16);2)

@ plus
 

Pièces jointes

  • Création codes.xlsx
    11.6 KB · Affichages: 64
  • Création codes.xlsx
    11.6 KB · Affichages: 74

Staple1600

XLDnaute Barbatruc
Re : Création des codes alphanumériques à partir des noms et dates de naissance

Bonsoir à tous

Pour infos
1 est la valeur par défaut pour les fonctions GAUCHE et DROITE
donc =GAUCHE(B16;1) peut s'écrire GAUCHE(B16)
Par contre cela n'est pas vrai en VBA ou il faut laisser le 1 Left(String,1)
Vous me direz : à quoi ça sert de savoir cela ??

Bah ça mange pas de pain et c'est pour ceux qui aiment bien raccourcir leur forumules
Là on a deux caractères de moins

Youpi ;)
 

Discussions similaires

S
Réponses
3
Affichages
2 K
S
S
Réponses
3
Affichages
872
Gérard DEZAMIS
G

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87