quelques formules pour un tableau (facturier)

didoudle

XLDnaute Nouveau
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

  • modelfacturier.xls
    30.5 KB · Affichages: 83

Tibo

XLDnaute Barbatruc
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

  • didoudle.xls
    35 KB · Affichages: 48

Tibo

XLDnaute Barbatruc
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

  • didoudle_2007.xlsx
    20 KB · Affichages: 77

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22