Conversion nombre en texte
Bonjour,
Je souhaite convertir un nombre en texte dans excel pour mac (version 2011).
Quelqu'un a t'il ou connait il une fonction pour cela ? (équivalent de numtexte dans excel sous windows)
Merci d'avance
Bonjour thema,
Je ne connais pas mac mais tu peux peut-être essayer ça :
=""&A1Avec ton nombre en A1
Bonjour,
Une autre approche :
Sélectionner les données, puis Données - Convertir - Délimité - Suivant - Suivant - Cocher Texte - Terminer
@+
Bonjour et merci vba-new et thibo,
J'ai essayé vos solutions mais dans les 2 cas le résultat n'est pas celui escompté.
Cette fonction doit me servir pour traduire en lettre le total d'une facture.
L'idéal serait de pouvoir choisir également la devise de la facture.
Merci d'avance, vos suggestions sont les bienvenus.
Bonjour,
A ma connaissance, Excel n'incorpore (n'incorporait?) pas de fonction pouvant faire cela de base.
Voir https://forum.excel-pratique.com/viewtopic.php?f=3&t=72229
Cordialement.
Merci Zirak,
Mais là encore je n'ai pas trouvé mon bonheur.
Les solutions proposées sont pour excel windows.
Je connais déjà cette fonction pour la convertion de chiffres en lettres sous windows, mais je cherche justement son équivalent pour excel mac
Même si elle est moins pratique, la 2ème solution du lien ne marche pas ?
Ce ne sont que des fonctions SI, ENT, STXT, ... ca devrait marcher, enfin je ne connais pas du tout excel mac c'est vrai, mais je pense qu'il doit prendre des formules basiques comme celles la.
Au pire si cela te gênes dans ta mise en page, tu peux très bien adapter ça sur une feuille suplémentaire cachée et juste récupérer le résultat la ou tu as besoin.
Cordialement.
Ok Zirak,
La 2º solution fonctionne sur excel mac.
Merci
Mais je ne vois pas bien comment la mettre en oeuvre dans mon fichier.
Si tu as une idée afin de pouvoir l'utiliser dans mon cas, quelque mots d'explication :
- J'ai un fichier excel avec un onglet par facture
- Je souhaite pouvoir utiliser cette fonction de conversion sur tout le fichier en conservant le résultat (montant en toute lettre) pour chaque facture
- Autre vocation de cette fonction : pour remplir des bordereaux de prix présentés sous forme de tableaux.
Bonjour,
Je vois que tu es sous Excel Mac 2011.
Je suppose que les limites de cette version sont les mêmes que pour Excel 2007, notamment en ce qui concerne la longueur d'une formule (8192 caractères je crois).
Pour les nombres de 0 à 999 999 999,99, une solution avec une seule formule :
Les accords et écritures des nombres (tirets pour les nombres inférieurs à 100) sont en principe respectés.
Voir le fichier joint (Excel 2007) avec cette formule :
=SUPPRESPACE(SI(MOD(ENT($A$1/10^6);1000)>0;SI(MOD(ENT($A$1/10^6);1000)>99;CHOISIR(MOD(ENT($A$1/10^6);1000)/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(MOD(ENT($A$1/10^6);1000)>100;SI(MOD(MOD(ENT($A$1/10^6);1000);100)=0;"s";" "););)&CHOISIR(MOD(MOD(ENT($A$1/10^6);1000)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(MOD(ENT($A$1/10^6);1000);10)=0;"s";);"quatre-vingt")&SI(MOD(MOD(ENT($A$1/10^6);1000);100)<20;;SI(ET(OU(MOD(MOD(ENT($A$1/10^6);1000);10)<>0;MOD(MOD(ENT($A$1/10^6);1000);100)=70;MOD(MOD(ENT($A$1/10^6);1000);100)=90));SI(ET(MOD(MOD(ENT($A$1/10^6);1000);10)=1;MOD(MOD(ENT($A$1/10^6);1000);100)<80);" et ";"-");))&CHOISIR(MOD(MOD(ENT($A$1/10^6);1000);100)-CHOISIR(MOD(MOD(ENT($A$1/10^6);1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"deux";"trois";"quatre";"cinq";"six";"sept";"huit";"neuf";"dix";"onze";"douze";"treize";"quatorze";"quinze";"seize";"dix-sept";"dix-huit";"dix-neuf")&" million"&SI(MOD(ENT($A$1/10^6);1000)>1;"s";"");"")&" "&
SI(MOD(ENT($A$1/10^3);1000)>0;SI(MOD(ENT($A$1/10^3);1000)=1;"";SI(MOD(ENT($A$1/10^3);1000)>99;CHOISIR(MOD(ENT($A$1/10^3);1000)/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(MOD(ENT($A$1/10^3);1000)>100;SI(MOD(MOD(ENT($A$1/10^3);1000);100)=0;"s";" "););)&CHOISIR(MOD(MOD(ENT($A$1/10^3);1000)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(MOD(ENT($A$1/10^3);1000);10)=0;"s";);"quatre-vingt")&SI(MOD(MOD(ENT($A$1/10^3);1000);100)<20;;SI(ET(OU(MOD(MOD(ENT($A$1/10^3);1000);10)<>0;MOD(MOD(ENT($A$1/10^3);1000);100)=70;MOD(MOD(ENT($A$1/10^3);1000);100)=90));SI(ET(MOD(MOD(ENT($A$1/10^3);1000);10)=1;MOD(MOD(ENT($A$1/10^3);1000);100)<80);" et ";"-");))&CHOISIR(MOD(MOD(ENT($A$1/10^3);1000);100)-CHOISIR(MOD(MOD(ENT($A$1/10^3);1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"deux";"trois";"quatre";"cinq";"six";"sept";"huit";"neuf";"dix";"onze";"douze";"treize";"quatorze";"quinze";"seize";"dix-sept";"dix-huit";"dix-neuf"))&" mille";"")&" "&
SI(ENT($A$1-ENT($A$1/1000)*1000)>0;SI(ENT($A$1-ENT($A$1/1000)*1000)>99;CHOISIR(ENT($A$1-ENT($A$1/1000)*1000)/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(ENT($A$1-ENT($A$1/1000)*1000)>100;SI(MOD(ENT($A$1-ENT($A$1/1000)*1000);100)=0;"s";" "););)&CHOISIR(MOD(ENT($A$1-ENT($A$1/1000)*1000)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(ENT($A$1-ENT($A$1/1000)*1000);10)=0;"s";);"quatre-vingt")&SI(MOD(ENT($A$1-ENT($A$1/1000)*1000);100)<20;;SI(ET(OU(MOD(ENT($A$1-ENT($A$1/1000)*1000);10)<>0;MOD(ENT($A$1-ENT($A$1/1000)*1000);100)=70;MOD(ENT($A$1-ENT($A$1/1000)*1000);100)=90));SI(ET(MOD(ENT($A$1-ENT($A$1/1000)*1000);10)=1;MOD(ENT($A$1-ENT($A$1/1000)*1000);100)<80);" et ";"-");))&CHOISIR(MOD(ENT($A$1-ENT($A$1/1000)*1000);100)-CHOISIR(MOD(ENT($A$1-ENT($A$1/1000)*1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"deux";"trois";"quatre";"cinq";"six";"sept";"huit";"neuf";"dix";"onze";"douze";"treize";"quatorze";"quinze";"seize";"dix-sept";"dix-huit";"dix-neuf");"")&" Euro"&SI($A$1>1;"s";"")&" "&
CHOISIR(MOD(ARRONDI(($A$1-ENT($A$1))*100;2)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(ARRONDI(($A$1-ENT($A$1))*100;2);10)=0;"s";);"quatre-vingt")&SI(MOD(ARRONDI(($A$1-ENT($A$1))*100;2);100)<20;;SI(ET(OU(MOD(ARRONDI(($A$1-ENT($A$1))*100;2);10)<>0;MOD(ARRONDI(($A$1-ENT($A$1))*100;2);100)=70;MOD(ARRONDI(($A$1-ENT($A$1))*100;2);100)=90));SI(ET(MOD(ARRONDI(($A$1-ENT($A$1))*100;2);10)=1;MOD(ARRONDI(($A$1-ENT($A$1))*100;2);100)<80);" et ";"-");))&CHOISIR(MOD(ARRONDI(($A$1-ENT($A$1))*100;2);100)-CHOISIR(MOD(ARRONDI(($A$1-ENT($A$1))*100;2)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"deux";"trois";"quatre";"cinq";"six";"sept";"huit";"neuf";"dix";"onze";"douze";"treize";"quatorze";"quinze";"seize";"dix-sept";"dix-huit";"dix-neuf")&SI(ARRONDI(($A$1-ENT($A$1))*100;2)>1;" centimes";" centime"))@+
Merci thibo,
Avec la formule que tu m'as envoyé je suis arrivé à me débrouiller : confirmation elle fonctionne sous office mac 2011
J'ai modifié quelques points
Remplacé le s qui apparaissait sur le chiffre des centimes par l'unité, (dernière ligne de la formule)
J'ai supprimé le $ sur le nom de cellules ce qui permet de déplacer plus facilement la formule dans mes différentes feuilles (sinon je me sers de la fonction "remplacer" dans excel pour ajuster le nom de la cellule à convertir en lettre)
J'ai mis des majuscules sur tous les noms de nombre (pas vraiment utile mais je trouve ça mieux en présentation) et j'ai changé le nom de devises (j'ai mis des dirhams car je suis au Maroc)
Je te joins ci dessous la formule modifiée.
Encore une fois merci
Si quelqu'un a une macro pour automatiser tout ça elle est quand même la bienvenue.
J'ai peur que la formule répétée sur chaque feuille d'un classeur n'alourdisse le fichier (idem pour remplir un bordereau de prix comportant des dizaines de lignes, la formule serait à recopier à chaque ligne)
=SUPPRESPACE(SI(MOD(ENT(N28/10^6);1000)>0;SI(MOD(ENT(N28/10^6);1000)>99;CHOISIR(MOD(ENT(N28/10^6);1000)/100;;"Deux ";"Trois ";"Quatre ";"Cinq ";"Six ";"Sept ";"Huit ";"Neuf ")&"Cent"&SI(MOD(ENT(N28/10^6);1000)>100;SI(MOD(MOD(ENT(N28/10^6);1000);100)=0;"s";" "););)&CHOISIR(MOD(MOD(ENT(N28/10^6);1000)/10;10)+1;;;"Vingt";"Trente";"Quarante";"Cinquante";"Soixante";"Soixante";"Quatre-Vingt"&SI(MOD(MOD(ENT(N28/10^6);1000);10)=0;"s";);"Quatre-Vingt")&SI(MOD(MOD(ENT(N28/10^6);1000);100)<20;;SI(ET(OU(MOD(MOD(ENT(N28/10^6);1000);10)<>0;MOD(MOD(ENT(N28/10^6);1000);100)=70;MOD(MOD(ENT(N28/10^6);1000);100)=90));SI(ET(MOD(MOD(ENT(N28/10^6);1000);10)=1;MOD(MOD(ENT(N28/10^6);1000);100)<80);" et ";"-");))&CHOISIR(MOD(MOD(ENT(N28/10^6);1000);100)-CHOISIR(MOD(MOD(ENT(N28/10^6);1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"Deux";"Trois";"Quatre";"Cinq";"Six";"Sept";"Huit";"Neuf";"Dix";"Onze";"Douze";"Treize";"Quatorze";"Quinze";"Seize";"Dix-Sept";"Dix-Huit";"Dix-Neuf")&" Million"&SI(MOD(ENT(N28/10^6);1000)>1;"s";"");"")&" "&
SI(MOD(ENT(N28/10^3);1000)>0;SI(MOD(ENT(N28/10^3);1000)=1;"";SI(MOD(ENT(N28/10^3);1000)>99;CHOISIR(MOD(ENT(N28/10^3);1000)/100;;"Deux ";"Trois ";"Quatre ";"Cinq ";"Six ";"Sept ";"Huit ";"Neuf ")&"Cent"&SI(MOD(ENT(N28/10^3);1000)>100;SI(MOD(MOD(ENT(N28/10^3);1000);100)=0;"s";" "););)&CHOISIR(MOD(MOD(ENT(N28/10^3);1000)/10;10)+1;;;"Vingt";"Trente";"Quarante";"Cinquante";"Soixante";"Soixante";"Quatre-Vingt"&SI(MOD(MOD(ENT(N28/10^3);1000);10)=0;"s";);"Quatre-Vingt")&SI(MOD(MOD(ENT(N28/10^3);1000);100)<20;;SI(ET(OU(MOD(MOD(ENT(N28/10^3);1000);10)<>0;MOD(MOD(ENT(N28/10^3);1000);100)=70;MOD(MOD(ENT(N28/10^3);1000);100)=90));SI(ET(MOD(MOD(ENT(N28/10^3);1000);10)=1;MOD(MOD(ENT(N28/10^3);1000);100)<80);" et ";"-");))&CHOISIR(MOD(MOD(ENT(N28/10^3);1000);100)-CHOISIR(MOD(MOD(ENT(N28/10^3);1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"Deux";"Trois";"Quatre";"Cinq";"Six";"Sept";"Huit";"Neuf";"Dix";"Onze";"Douze";"Treize";"Quatorze";"Quinze";"Seize";"Dix-Sept";"Dix-Huit";"Dix-Neuf"))&" Mille";"")&" "&
SI(ENT(N28-ENT(N28/1000)*1000)>0;SI(ENT(N28-ENT(N28/1000)*1000)>99;CHOISIR(ENT(N28-ENT(N28/1000)*1000)/100;;"Deux ";"Trois ";"Quatre ";"Cinq ";"Six ";"Sept ";"Huit ";"Neuf ")&"Cent"&SI(ENT(N28-ENT(N28/1000)*1000)>100;SI(MOD(ENT(N28-ENT(N28/1000)*1000);100)=0;"s";" "););)&CHOISIR(MOD(ENT(N28-ENT(N28/1000)*1000)/10;10)+1;;;"Vingt";"Trente";"Quarante";"Cinquante";"Soixante";"Soixante";"Quatre-Vingt"&SI(MOD(ENT(N28-ENT(N28/1000)*1000);10)=0;"s";);"Quatre-Vingt")&SI(MOD(ENT(N28-ENT(N28/1000)*1000);100)<20;;SI(ET(OU(MOD(ENT(N28-ENT(N28/1000)*1000);10)<>0;MOD(ENT(N28-ENT(N28/1000)*1000);100)=70;MOD(ENT(N28-ENT(N28/1000)*1000);100)=90));SI(ET(MOD(ENT(N28-ENT(N28/1000)*1000);10)=1;MOD(ENT(N28-ENT(N28/1000)*1000);100)<80);" et ";"-");))&CHOISIR(MOD(ENT(N28-ENT(N28/1000)*1000);100)-CHOISIR(MOD(ENT(N28-ENT(N28/1000)*1000)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"Deux";"Trois";"Quatre";"Cinq";"Six";"Sept";"Huit";"Neuf";"Dix";"Onze";"Douze";"Treize";"Quatorze";"Quinze";"Seize";"Dix-Sept";"Dix-Huit";"Dix-Neuf");"")&" Dirham"&SI(N28>1;"s";"")&" "&
CHOISIR(MOD(ARRONDI((N28-ENT(N28))*100;2)/10;10)+1;;;"Vingt";"Trente";"Quarante";"Cinquante";"Soixante";"Soixante";"Quatre-Vingt"&SI(MOD(ARRONDI((N28-ENT(N28))*100;2);10)=0;"s";);"Quatre-Vingt")&SI(MOD(ARRONDI((N28-ENT(N28))*100;2);100)<20;;SI(ET(OU(MOD(ARRONDI((N28-ENT(N28))*100;2);10)<>0;MOD(ARRONDI((N28-ENT(N28))*100;2);100)=70;MOD(ARRONDI((N28-ENT(N28))*100;2);100)=90));SI(ET(MOD(ARRONDI((N28-ENT(N28))*100;2);10)=1;MOD(ARRONDI((N28-ENT(N28))*100;2);100)<80);" et ";"-");))&CHOISIR(MOD(ARRONDI((N28-ENT(N28))*100;2);100)-CHOISIR(MOD(ARRONDI((N28-ENT(N28))*100;2)/10;10)+1;;;2;3;4;5;6;6;8;8)*10+1;;"un";"Deux";"Trois";"Quatre";"Cinq";"Six";"Sept";"Huit";"Neuf";"Dix";"Onze";"Douze";"Treize";"Quatorze";"Quinze";"Seize";"Dix-Sept";"Dix-Huit";"Dix-Neuf")&SI(ARRONDI((N28-ENT(N28))*100;2)>1;" Centimes";""))