quelques formules pour un tableau (facturier)

  • Initiateur de la discussion Initiateur de la discussion didoudle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

didoudle

Guest
Bonsoir,
J'ai quelques petits soucis avec un facturier. j'ai indiqué dans le fichier joint les problèmes.
merci de votre aide
didoudle
 

Pièces jointes

Re : quelques formules pour un tableau (facturier)

Bonsoir,

Si tes montants sont inférieurs à 1000 Euros, une proposition avec cette formule :

Code:
=SI(I12>99;CHOISIR(I12/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(I12>100;SI(MOD(I12;100)=0;"s";" "););)&CHOISIR(MOD(I12/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(I12;10)=0;"s";);"quatre-vingt")&SI(MOD(I12;100)<20;;SI(ET(OU(MOD(I12;10)<>0;MOD(I12;100)=70;MOD(I12;100)=90));SI(ET(MOD(I12;10)=1;MOD(I12;100)<80);" et ";"-");))&CHOISIR(MOD(I12;100)-CHOISIR(MOD(I12/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 les montants peuvent être supérieurs à 1000 Euros, il faut passer par une décomposition du nombre. Voir avec le fichier joint.

Je n'ai pas traité les centimes, mais le principe est le même : isoler les centimes et les traiter comme un nombre inférieur à 1000.

D'autres solutions existent, notamment macro. Une recherche dans les entrailles du Forum te donnera un aperçu de ces autres solutions.

@+
 

Pièces jointes

Re : quelques formules pour un tableau (facturier)

Bonjour,

Une version Excel 2007 et + permettant de gérer les montants jusque 999999,99

Les accords (vingt et cent) ainsi que les trait d'union sont gérés (même si la réforme de la langue française de 1990 a autorisé une "simplification" de ces règles).

La formule fait quelques 3000 caractères. On pourrait sans souci gérer les nombres jusque 999999999,99 en allongeant la formule.

La formule :

Code:
=SI(MOD(ENT(B21/10^3);1000)>1;SI(MOD(ENT(B21/10^3);1000)>99;CHOISIR(MOD(ENT(B21/10^3);1000)/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(MOD(ENT(B21/10^3);1000)>100;SI(MOD(MOD(ENT(B21/10^3);1000);100)=0;"s";" "););)&CHOISIR(MOD(MOD(ENT(B21/10^3);1000)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(MOD(ENT(B21/10^3);1000);10)=0;"s";);"quatre-vingt")&SI(MOD(MOD(ENT(B21/10^3);1000);100)<20;;SI(ET(OU(MOD(MOD(ENT(B21/10^3);1000);10)<>0;MOD(MOD(ENT(B21/10^3);1000);100)=70;MOD(MOD(ENT(B21/10^3);1000);100)=90));SI(ET(MOD(MOD(ENT(B21/10^3);1000);10)=1;MOD(MOD(ENT(B21/10^3);1000);100)<80);" et ";"-");))&CHOISIR(MOD(MOD(ENT(B21/10^3);1000);100)-CHOISIR(MOD(MOD(ENT(B21/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(MOD(ENT(B21/10^3);1000)=1;"mille";))&SI(B21>10^3;" ";)&SI(ENT(B21-ENT(B21/1000)*1000)>0;SI(ENT(B21-ENT(B21/1000)*1000)>99;CHOISIR(ENT(B21-ENT(B21/1000)*1000)/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(ENT(B21-ENT(B21/1000)*1000)>100;SI(MOD(ENT(B21-ENT(B21/1000)*1000);100)=0;"s";" "););)&CHOISIR(MOD(ENT(B21-ENT(B21/1000)*1000)/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(ENT(B21-ENT(B21/1000)*1000);10)=0;"s";);"quatre-vingt")&SI(MOD(ENT(B21-ENT(B21/1000)*1000);100)<20;;SI(ET(OU(MOD(ENT(B21-ENT(B21/1000)*1000);10)<>0;MOD(ENT(B21-ENT(B21/1000)*1000);100)=70;MOD(ENT(B21-ENT(B21/1000)*1000);100)=90));SI(ET(MOD(ENT(B21-ENT(B21/1000)*1000);10)=1;MOD(ENT(B21-ENT(B21/1000)*1000);100)<80);" et ";"-");))&CHOISIR(MOD(ENT(B21-ENT(B21/1000)*1000);100)-CHOISIR(MOD(ENT(B21-ENT(B21/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(B21>=2;"s";"")&SI(ARRONDI(MOD(B21;1);2)>0;" "&SI(ARRONDI(MOD(B21;1);2)*100>99;CHOISIR(ARRONDI(MOD(B21;1);2)*100/100;;"deux ";"trois ";"quatre ";"cinq ";"six ";"sept ";"huit ";"neuf ")&"cent"&SI(ARRONDI(MOD(B21;1);2)*100>100;SI(MOD(ARRONDI(MOD(B21;1);2)*100;100)=0;"s";" "););)&CHOISIR(MOD(ARRONDI(MOD(B21;1);2)*100/10;10)+1;;;"vingt";"trente";"quarante";"cinquante";"soixante";"soixante";"quatre-vingt"&SI(MOD(ARRONDI(MOD(B21;1);2)*100;10)=0;"s";);"quatre-vingt")&SI(MOD(ARRONDI(MOD(B21;1);2)*100;100)<20;;SI(ET(OU(MOD(ARRONDI(MOD(B21;1);2)*100;10)<>0;MOD(ARRONDI(MOD(B21;1);2)*100;100)=70;MOD(ARRONDI(MOD(B21;1);2)*100;100)=90));SI(ET(MOD(ARRONDI(MOD(B21;1);2)*100;10)=1;MOD(ARRONDI(MOD(B21;1);2)*100;100)<80);" et ";"-");))&CHOISIR(MOD(ARRONDI(MOD(B21;1);2)*100;100)-CHOISIR(MOD(ARRONDI(MOD(B21;1);2)*100/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")&" centime"&SI(ARRONDI(MOD(B21;1);2)*100>=2;"s";"");"")

Le fichier (XL 2007) est joint. Pour tester, faire F9

@+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
273
Réponses
7
Affichages
395
  • Question Question
XL 2016 liste
Réponses
10
Affichages
386
Retour