Parce que beaucoup de gens ont besoin de cette capacité et qu'Excel ne possède pas actuellement une telle fonctionnalité, des utilisateurs tout comme moi réfléchissent énormément pour trouver des solutions pour vous aider.
Cette série de formule est assez complexe, car elle doit prendre en compte les cas où elle voit des valeurs telles que "Onze" (par opposition à "Un et un"),"Vingt", "Trente" , "Cent" et autres.
La combinaison de nombres et de mots peut être assez intimidante.
Mais ne vous inquiétez pas si cela semble un peu intimidant ; vous n'avez pas besoin de comprendre cela pour l'utiliser. Vous avez seulement besoin de savoir comment l'utiliser dans vos feuilles de calcul Excel.
Comment appliquer la formule à plusieurs cellules ?
1) Sélectionner l'ensemble du message ci-dessous et
le copier
sur une feuille Excel, en A2
2) Sélectionner A2:A100 et faire Edition copier /
Edition collage spécial / Formules / Transposer en B1
3) Masquer les colonnes C:CT
4) Effacer les cellules A2:A100
5) Ajuster les largeurs des colonnes A et B
Le système est prêt à fonctionner : Entrer en A1
le nombre en chiffres, et le résultat en lettres s'inscrit
automatiquement en B1 (en €uros en centimes) Valable
pour valeurs comprises entre 0 et 999 999 999.99
(Avouez-le c’est largement suffisant!)
Voici donc cette fameuse série de formules :
=ENT(A1/1000000)
=ENT((A1-A3*1000000)/1000)
=ENT(A1-A3*1000000-A4*1000)
=ARRONDI(A1-A3*1000000-A4*1000-A5;2)*100
=A3-A12*100
=ARRONDI(A5-A18*100;0)
=A6
=ENT(A3/100)
=ENT((A3-A12*100)/10)
=A3-A12*100-A13*10
=ENT(A4/100)
=ENT((A4-A15*100)/10)
=A4-A15*100-A16*10
=ENT(A5/100)
=ENT((A5-A18*100)/10)
=A5-A18*100-A19*10
=ENT(A6/10)
=ARRONDI(A6-A21*10;0)
=SI(A12=0;"";SI(A12=1;"";SI(A12=2;"deux
";SI(A12=3;"trois ";SI(A12=4;"quatre
";SI(A12=5;"cinq ";A42))))))
=SI(A12=0;"";SI(A12<2;"cent ";A43))
=SI(A13=1;A44;SI(A13=7;A64;SI(A13=9;A80;A89)))
=SI(A7=11;"";SI(A7=12;"";SI(A7=13;"";SI(A7=14;"";SI(A7=15;"";SI(A7=16;"";A45))))))
=SI(A3=0;"";SI(A3<2;"million
";"millions "))
=SI(A8=1;"";SI(A15=0;"";SI(A15=1;"";SI(A15=2;"deux
";SI(A15=3;"trois ";SI(A15=4;"quatre
";SI(A15=5;"cinq ";A46)))))))
=SI(A15=0;"";SI(A15<2;"cent ";A47))
=SI(A16=1;A48;SI(A16=7;A66;SI(A16=9;A81;A90)))
=SI(A4=1;"";A49)
=SI(A4>0;"mille ";"")
=SI(ENT(A1)=0;"zéro
";SI(A18=0;"";SI(A18=1;"";SI(A18=2;"deux
";SI(A18=3;"trois ";SI(A18=4;"quatre
";SI(A18=5;"cinq ";A50)))))))
=SI(A18=0;"";SI(A18<2;"cent ";A51))
=SI(A19=1;A52;SI(A19=7;A68;SI(A19=9;A83;A91)))
=SI(A10=11;"";SI(A10=12;"";SI(A10=13;"";SI(A10=14;"";SI(A10=15;"";SI(A10=16;"";A53))))))
=SI(ENT(A1<2);"€uro
";"€uros ")
=SI(A6>0;"et ";"")
=SI(A21=1;A54;SI(A21=7;A70;SI(A21=9;A84;A92)))
=SI(A11=11;"";SI(A11=12;"";SI(A11=13;"";SI(A11=14;"";SI(A11=15;"";SI(A11=16;"";A55))))))
=SI(A6=0;"";SI(A6<2;"centime";"centimes"))
=SI(A3=0;" ";SI(A12=6;"six
";SI(A12=7;"sept ";SI(A12=8;"huit
";SI(A12=9;"neuf ";)))))
=SI(A7>0;"cent "; "cents ")
=SI(A7=10;"dix ";SI(A7=11;"onze
";SI(A7=12;"douze ";SI(A7=13;"treize
";SI(A7=14;"quatorze ";SI(A7=15;"quinze ";A56))))))
=SI(A7=17;"";SI(A7=18;"";SI(A7=19;"";A57)))
=SI(A15=6;"six ";SI(A15=7;"sept
";SI(A15=8;"huit ";SI(A15=9;"neuf ";))))
=SI(A9>0;"cent "; "cents ")
=SI(A9=10;"dix ";SI(A9=11;"onze
";SI(A9=12;"douze ";SI(A9=13;"treize
";SI(A9=14;"quatorze ";SI(A9=15;"quinze ";A58))))))
=SI(A9=11;"";SI(A9=12;"";SI(A9=13;"";SI(A9=14;"";SI(A9=15;"";SI(A9=16;"";A59))))))
=SI(A18=6;"six ";SI(A18=7;"sept
";SI(A18=8;"huit ";SI(A18=9;"neuf ";))))
=SI(A10>0;"cent "; "cents ")
=SI(A10=10;"dix ";SI(A10=11;"onze
";SI(A10=12;"douze ";SI(A10=13;"treize
";SI(A10=14;"quatorze ";SI(A10=15;"quinze ";A60))))))
=SI(A10=17;"";SI(A10=18;"";SI(A10=19;"";A61)))
=SI(A11=10;"dix ";SI(A11=11;"onze
";SI(A11=12;"douze ";SI(A11=13;"treize
";SI(A11=14;"quatorze ";SI(A11=15;"quinze ";A62))))))
=SI(A11=17;"";SI(A11=18;"";SI(A11=19;"";A63)))
=SI(A7=16;"seize ";SI(A7=17;"dix-sept
";SI(A7=18;"dix-huit ";SI(A7=19;"dix-neuf ";A64))))
=SI(A7=21;"et un ";SI(A7=31;"et un
";SI(A7=41;"et un ";SI(A7=51;"et un
";SI(A7=61;"et un ";A65)))))
=SI(A9=16;"seize ";SI(A9=17;"dix-sept
";SI(A9=18;"dix-huit ";SI(A9=19;"dix-neuf ";A66))))
=SI(A9=17;"";SI(A9=18;"";SI(A9=19;"";A67)))
=SI(A10=16;"seize ";SI(A10=17;"dix-sept
";SI(A10=18;"dix-huit ";SI(A10=19;"dix-neuf ";A68))))
=SI(A10=21;"et un ";SI(A10=31;"et un
";SI(A10=41;"et un ";SI(A10=51;"et un
";SI(A10=61;"et un ";A69)))))
=SI(A11=16;"seize ";SI(A11=17;"dix-sept
";SI(A11=18;"dix-huit ";SI(A11=19;"dix-neuf ";A70))))
=SI(A11=21;"et un ";SI(A11=31;"et un
";SI(A11=41;"et un ";SI(A11=51;"et un
";SI(A11=61;"et un ";A71)))))
=SI(A7=70;"soixante-dix ";SI(A7=71;"soixante
et onze ";SI(A7=72;"soixante-douze
";SI(A7=73;"soixante-treize ";SI(A7=74;"soixante-quatorze
";SI(A7=75;"soixante-quinze ";A72))))))
=SI(A13=9;"";SI(A13=7;"";SI(A14=0;"";SI(A14=1;"un
";SI(A14=2;"deux ";SI(A14=3;"trois
";SI(A14=4;"quatre ";SI(A14=5;"cinq ";A73))))))))
=SI(A9=70;"soixante-dix ";SI(A9=71;"soixante
et onze ";SI(A9=72;"soixante-douze
";SI(A9=73;"soixante-treize ";SI(A9=74;"soixante-quatorze
";SI(A9=75;"soixante-quinze ";A74))))))
=SI(A9=21;"et un ";SI(A9=31;"et un
";SI(A9=41;"et un ";SI(A9=51;"et un
";SI(A9=61;"et un ";A75)))))
=SI(A10=70;"soixante-dix ";SI(A10=71;"soixante
et onze ";SI(A10=72;"soixante-douze
";SI(A10=73;"soixante-treize ";SI(A10=74;"soixante-quatorze
";SI(A10=75;"soixante-quinze ";A76))))))
=SI(A19=9;"";SI(A19=7;"";SI(A20=0;"";SI(A20=1;"un
";SI(A20=2;"deux ";SI(A20=3;"trois
";SI(A20=4;"quatre ";SI(A20=5;"cinq ";A77))))))))
=SI(A11=70;"soixante-dix ";SI(A11=71;"soixante
et onze ";SI(A11=72;"soixante-douze
";SI(A11=73;"soixante-treize ";SI(A11=74;"soixante-quatorze
";SI(A11=75;"soixante-quinze ";A78))))))
=SI(A21=9;"";SI(A21=7;"";SI(A22=0;"";SI(A22=1;"un
";SI(A22=2;"deux ";SI(A22=3;"trois
";SI(A22=4;"quatre ";SI(A22=5;"cinq ";A79))))))))
=SI(A7=76;"soixante-seize
";SI(A7=77;"soixante-dix-sept ";SI(A7=78;"soixante-dix-huit
";SI(A7=79;"soixante-dix-neuf ";A80))))
=SI(A13=9;"";SI(A14=6;"six
";SI(A14=7;"sept ";SI(A14=8;"huit
";SI(A14=9;"neuf ";)))))
=SI(A9=76;"soixante-seize
";SI(A9=77;"soixante-dix-sept ";SI(A9=78;"soixante-dix-huit
";SI(A9=79;"soixante-dix-neuf ";A81))))
=SI(A16=9;"";SI(A16=7;"";SI(A17=0;"";SI(A17=1;"un
";SI(A17=2;"deux ";SI(A17=3;"trois
";SI(A17=4;"quatre ";SI(A17=5;"cinq ";A82))))))))
=SI(A10=76;"soixante-seize
";SI(A10=77;"soixante-dix-sept
";SI(A10=78;"soixante-dix-huit
";SI(A10=79;"soixante-dix-neuf ";A83))))
=SI(A19=9;"";SI(A20=6;"six ";SI(A20=7;"sept
";SI(A20=8;"huit ";SI(A20=9;"neuf ";)))))
=SI(A11=76;"soixante-seize
";SI(A11=77;"soixante-dix-sept
";SI(A11=78;"soixante-dix-huit
";SI(A11=79;"soixante-dix-neuf ";A84))))
=SI(A21=9;"";SI(A22=6;"six
";SI(A22=7;"sept ";SI(A22=8;"huit ";SI(A22=9;"neuf
";)))))
=SI(A7=90;"quatre-vingt-dix
";SI(A7=91;"quatre-vingt-onze
";SI(A7=92;"quatre-vingt-douze
";SI(A7=93;"quatre-vingt-treize
";SI(A7=94;"quatre-vingt-quatorze
";SI(A7=95;"quatre-vingt-quinze ";A85))))))
=SI(A9=90;"quatre-vingt-dix ";SI(A9=91;"quatre-vingt-onze
";SI(A9=92;"quatre-vingt-douze
";SI(A9=93;"quatre-vingt-treize
";SI(A9=94;"quatre-vingt-quatorze
";SI(A9=95;"quatre-vingt-quinze ";A86))))))
=SI(A16=9;"";SI(A17=6;"six
";SI(A17=7;"sept ";SI(A17=8;"huit
";SI(A17=9;"neuf ";)))))
=SI(A10=90;"quatre-vingt-dix
";SI(A10=91;"quatre-vingt-onze
";SI(A10=92;"quatre-vingt-douze
";SI(A10=93;"quatre-vingt-treize
";SI(A10=94;"quatre-vingt-quatorze
";SI(A10=95;"quatre-vingt-quinze ";A87))))))
=SI(A11=90;"quatre-vingt-dix
";SI(A11=91;"quatre-vingt-onze ";SI(A11=92;"quatre-vingt-douze
";SI(A11=93;"quatre-vingt-treize
";SI(A11=94;"quatre-vingt-quatorze
";SI(A11=95;"quatre-vingt-quinze ";A88))))))
=SI(A7=96;"quatre-vingt-seize
";SI(A7=97;"quatre-vingt-dix-sept
";SI(A7=98;"quatre-vingt-dix-huit ";SI(A7=99;"quatre-vingt-dix-neuf
";A89))))
=SI(A9=96;"quatre-vingt-seize
";SI(A9=97;"quatre-vingt-dix-sept
";SI(A9=98;"quatre-vingt-dix-huit
";SI(A9=99;"quatre-vingt-dix-neuf ";A90))))
=SI(A10=96;"quatre-vingt-seize ";SI(A10=97;"quatre-vingt-dix-sept
";SI(A10=98;"quatre-vingt-dix-huit
";SI(A10=99;"quatre-vingt-dix-neuf ";A91))))
=SI(A11=96;"quatre-vingt-seize
";SI(A11=97;"quatre-vingt-dix-sept
";SI(A11=98;"quatre-vingt-dix-huit
";SI(A11=99;"quatre-vingt-dix-neuf ";A92))))
=SI(A13=2;"vingt ";SI(A13=3;"trente
";SI(A13=4;"quarante ";SI(A13=5;"cinquante ";A93))))
=SI(A16=2;"vingt ";SI(A16=3;"trente
";SI(A16=4;"quarante ";SI(A16=5;"cinquante ";A94))))
=SI(A19=2;"vingt ";SI(A19=3;"trente
";SI(A19=4;"quarante ";SI(A19=5;"cinquante ";A95))))
=SI(A21=2;"vingt ";SI(A21=3;"trente
";SI(A21=4;"quarante ";SI(A21=5;"cinquante ";A96))))
=SI(A13=6;"soixante ";SI(A7=80;"quatre-vingts
";SI(A13=8;"quatre-vingt-";"")))
=SI(A16=6;"soixante ";SI(A9=80;"quatre-vingts
";SI(A16=8;"quatre-vingt-";"")))
=SI(A19=6;"soixante ";SI(A10=80;"quatre-vingts
";SI(A19=8;"quatre-vingt-";"")))
=SI(A21=6;"soixante ";SI(A11=80;"quatre-vingts
";SI(A21=8;"quatre-vingt-";"")))
Source : https://forums.commentcamarche.net/forum/affich-2584716-excel-comment-ecrire-un-nombre-en-lettre
Cette formule ne repose sur aucun :
- Code VBA
- Formules matricielles (validation en CTRL-MAJ-Entrée)
Vous en volez peut-être plus
Il existe bien évidemment d’autres solutions parmi lesquelles le code VBA de
Microsoft Excel et la fonction créer par PETE M.
Mais Pete avait certaines exigences pour la fonctionnalité :
- La fonctionnalité n'utiliserait aucun code VBA.
- La fonctionnalité n'utiliserait pas de formules matricielles compliquées (formules CTRL-Maj-Entrée).
- La fonctionnalité n'utiliserait aucune colonne d'aide dans la feuille de calcul.
- La fonction peut prendre en charge une précision allant jusqu'à 2 décimales.
- La fonction fonctionnera avec des nombres compris entre 1 et 999 999 999
- Tout devait être contenu dans la formule d'une seule cellule contrairement à la série de fonctions précédente.
Tout comme la précédente vous n’avez pas besoin de la comprendre mais juste l’utiliser.
Comment appliquer la formule
Il faut savoir que la formule recherche le nombre en B3 et
renvoie le résultat en où vous avez inséré la formule.
Ce qui veut donc dire que vous devez entrer le nombre en chiffre dans la cellule B3.
Mais nous savons tous que nos fichiers que nous concevons
ne nous permettent toujours pas d’avoir la cellule où le
nombre en chiffre devra être renseigné dans la cellule B3.
Comment appliquer la formule dans une autre cellule que B3
Nous voulons que la formule pointe vers une autre cellule
autre que B3. Alors voici en quelque lignes ce qu’il faut faire :
- Transformer tout d’abord la formule en texte.
C’est-à-dire supprimez le signe égal "=" du début
de la formule et appuyer sur ENTRER.
Nous n'avons maintenant qu'une énorme quantité de
texte dans la cellule.
2. Appuyez sur CTRL-H pour ouvrir la boîte de dialogue
Rechercher /Remplacer et par défaut l’onglet remplacer.
3. Dans le champ « Rechercher », saisissez « B3 » (sans guillemets)
de la cellule où se trouve le nombre en chiffre à convertir
en lettre (dans notre exemple « G27 » (pas de guillemets)).
4. Appuyez sur la « Remplacer tout ».
5. Vous pouvez à présent retransformer ceci en formule en remettant le signe "=" devant.
Changer la devise :
Supposons que vous deviez mettre à jour cette formule pour
qu'elle fonctionne avec des dollars américains.
Pour cela, il vous suffit juste de changer la partie intitulée à
la dernière ligne de la formule ou si vous voulez à la fin de
la formule « Euro » en « USD » ou « CAD ».
Il en est de même pour les autres devises.
&" Euro & "&RIGHT(TEXT(B3,"000000000.00),2)&"/100" >
Ne pas utiliser la décimale
Je dois l’avoir la décimal fractionnée de cette fonction n’est pas très
stylé et j’oses penser que certaines personnes sont du même avis.
Alors comment donc s’en passer de cette décimale.
Toujours comme avec la devise, si vous regardez à la toute fin de la
formule, vous verrez la partie responsable des décimales.
&" Euro & "&RIGHT(TEXT(B3,"000000000.00),2)&"/100"
Donc si vous ne voulez pas utiliser de décimale effacer tout simplement cette partie.
Petite précision : la modification ci-dessus supprimera uniquement
les valeurs fractionnaires sans aucune opération d'arrondi.
Si vous souhaitez arrondir le nombre au nombre entier le plus proche,
vous devez procéder comme suit :
- Transformer tout d’abord la formule en texte.
- C’est-à-dire supprimez le signe égal "=" du début de la formule et appuyer sur ENTRER. Nous n'avons maintenant qu'une énorme quantité de texte dans la cellule.
- Appuyez le raccourci clavier CTRL-H pour ouvrir la boîte de dialogue Rechercher /Remplacer.
- Dans le champ « RECHERCHER », saisissez « B3 » (sans guillemets).
- Dans le champ « Remplacer par », saisissez « ROUND(B3,0) » (sans guillemets).
- Appuyez sur la « Remplacer tout ».
Voulez-vous savoir comment ça fonctionne ?
Si vous êtes un curieux tout comme moi vous avez sûrement
envi de savoir comment tout cela fonctionne.
Alors vous devez tout d’abord savoir que cette formule repose
sur l'utilisation de quatre fonctions clés :
Ø La fonction LEFT
Ø La fonction MID
Ø La fonction TEXT
Ø Et la fonction CHOOSE
1.
La fonction LEFT (GAUCHE)
Le but de la fonction GAUCHE est d'extraire un nombre spécifique
de caractères du texte à partir du côté gauche.
La structure de la fonction GAUCHE est la suivante :
= GAUCHE (texte, [num_chars])
Le paramètre « texte » fait référence à la cellule contenant l'entrée, tandis que
« [num_chars] » indique le nombre de caractères à extraire.
Étant donné que le paramètre « [num_chars] » est
facultatif,
ignorer ce paramètre entraînera une extraction par défaut de
1 caractère.
2.
La fonction MID (STXT)
Le but de la fonction MID est d'extraire un nombre spécifique de caractères du texte
à partir d'une position de caractère spécifique(en partant du côté gauche).
La structure de la fonction MID est la suivante :
= STXT (texte, numéro début, nombre carres)
Le paramètre « texte » fait référence à la cellule
contenant l'entrée ;
le paramètre « start num » indique la position pour commencer l'extraction
de texte (en partant du côté gauche), tandis que
« num chars » indique le nombre de caractères à extraire.
3.
La fonction TEXT (TEXTE)
Le but de la fonction TEXTE est de représenter les informations
d'une cellule avec un formatage spécifique.
La structure de la fonction TEXTE est la suivante :
les contrôles de mise en forme de cellule traditionnels.
La fonction TEXTE applique le formatage sous forme de
formule.
De cette façon, nous pouvons modifier le formatage des informations
de manière dynamique
en fonction du besoin du moment.
Exemple : Supposons que vous ayez un
calcul qui doit refléter
le dollar américain ou l'euro selon une sélection de pays.
La formule pourrait ressembler à ceci :
## 0.00"))
ou = SI (Pays = "France" ;TEXTE(Montant, "€ #, ##
0.00"))
et si l'utilisateur sélectionne un autre pays utilisant l’euro comme la France,
le montant sera représenté par le symbole « € ».
4.
La fonction CHOOSE (CHOISIR)
La fonction CHOOSE est utilisée pour simplifier plusieurs fonctions
SI imbriquées qui examinent les mêmes données.
CHOOSE est particulièrement utile
lorsque vous travaillez avec des index.
dans une liste intégrée de valeurs basée sur un nombre
fourni.
Si nous devions extraire le premier nombre (le plus à gauche)
du nombre d'entrée et le donner à la fonction CHOOSE suivante,
que pensez-vous que nous obtiendrions de la fonction CHOOSE
?
ET SI ON COMBINAIT CES FONCTIONS POUR MIEUX COMPRENDRE :
Dans la formule, nous combinons toutes les fonctions
en une seule formule et chaque fonction rempli
sa responsabilité respective pour accomplir la mission.
"Quatre", "Cinq", "Six", "Sept", "Huit", " Neuf") & IF (- LEFT(TEXT(B3,
"000000000.00")) = 0,, IF (AND(- MID (TEXT (B3,"000000000.00"), 2,1) = 0,
-MID(TEXT (B3 , "000000000.00"), 3,1) = 0), "Cent", "Cent et"))
GAUCHE( TEXTE (B3, "000000000.00") )
Cela nous permettra de déterminer si le nombre retourné est un zéro ou toute autre valeur.
Cela indiquera la météo ou non, notre nombre est de l'ordre des «millions».
Ensuite, nous CHOISISSONS comment représenter la valeur extraite.
"Deux" ;"Trois" ;"Quatre" ;"Cinq" ;"Six" ;"Sept" ;"Huit" ;"
Neuf")
"Deux";"Trois";"Quatre";"Cinq";"Six";"Sept";"Huit";"
Neuf")
& SI (- GAUCHE (TEXTE (B3 ;"000000000.00"))
= 0 ;;
les millions donc nous n'afficherons rien.
Si les deux chiffres suivants sont zéro, alors nous afficherons
«Cent»; sinon, nous afficherons
«Cent et».
"Trois";"Quatre";
"Cinq"; "Six"; "Sept"; "Huit"; "
Neuf")
& SI (-GAUCHE(TEXTE(B3;
"000000000.00")) = 0 ;;
SI(ET(-STXT(TEXTE(B3;"000000000.00"); 2;1)
= 0;
-STXT(TEXTE(B3;"000000000.00"); 3;1) =
0); "Cent"; "Cent et"))
génial cette astuce.
RépondreSupprimer