IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Convertir des chiffres en lettres


Sujet :

Contribuez

  1. #1
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut Convertir des chiffres en lettres
    Bonjour,
    Petite fonction de transformation de chiffres en lettres. D'abord mettre les trois fonctions suivantes en procedure globale du projet
    1) NCentaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    PROCEDURE NCentaine(Reste)
    sSvalLettreMC est une chaîne
    Dividente est un entier
     
    Dividente = Reste/100
    Reste = modulo(Reste, 100)
    SELON Dividente
    	CAS 9 : sSvalLettreMC = "Neuf Cent "
    	CAS 8 : sSvalLettreMC = "Huit Cent "
    	CAS 7 : sSvalLettreMC = "Sept Cent "
    	CAS 6 : sSvalLettreMC = "Six Cent "
    	CAS 5 : sSvalLettreMC = "Cinq Cent "
    	CAS 4 : sSvalLettreMC = "Quatre Cent "
    	CAS 3 : sSvalLettreMC = "Trois Cent "
    	CAS 2 : sSvalLettreMC = "Deux Cent "
    	CAS 1 : sSvalLettreMC = "Cent " 				
    FIN
    sSvalLettreMC = sSvalLettreMC + NDizaine(Reste)
    RENVOYER sSvalLettreMC
    2) NDizaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    PROCEDURE NDizaine(Reste)
    nQuotient, Dividente est un entier
    sValLettreC1 est une chaîne
     
    Dividente = Reste/10
    Reste = modulo(Reste,10)
    SELON Dividente
    	CAS 9 : 
    		nQuotient = Reste/1
    		SELON nQuotient
    			CAS 6 : 
    				sValLettreC1 = "Quatre Vingt Seize "
    			CAS 5 :
    				sValLettreC1 = "Quatre Vingt Quinze "
    			CAS 4 : 
    				sValLettreC1 = "Quatre Vingt Quatorze "
    			CAS 3 : 
    				sValLettreC1 = "Quatre Vingt Treize "
    			CAS 2 : 
    				sValLettreC1 = "Quatre Vingt Douze "
    			CAS 1 : 
    				sValLettreC1 = "Quatre Vingt Onze "
    			CAS 0 : 
    				sValLettreC1 = "Quatre Vingt Dix "
    			AUTRE CAS : 
    				sValLettreC1 = "Quatre Vingt Dix "
    				sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    		FIN 
    	CAS 8 : 
    		sValLettreC1 = "Quatre Vingt "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 7 : 
    		nQuotient = Reste/1
    		SELON nQuotient
    			CAS 6 : 
    				sValLettreC1 = "Soixante Seize "
    			CAS 5 : 
    				sValLettreC1 = "Soixante Quinze "
    			CAS 4 : 
    				sValLettreC1 = "Soixante Quatorze "
    			CAS 3 : 
    				sValLettreC1 = "Soixante Treize "
    			CAS 2 : 
    				sValLettreC1 = "Soixante Douze "
    			CAS 1 : 
    				sValLettreC1 = "Soixante Onze "
    			CAS 0 :
    				sValLettreC1 = "Soixante Dix "
    			AUTRE CAS : 
    				sValLettreC1 = "Soixante Dix "
    				sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    		FIN 	
    	CAS 6 : sValLettreC1 = "Soixante "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 5 : sValLettreC1 = "Cinquante "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 4 : sValLettreC1 = "Quarante "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 3 : sValLettreC1 = "Trente "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 2 : sValLettreC1 = "vingt "
    		nQuotient = Reste/1
    		sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    	CAS 1 : 
    		nQuotient = Reste/1
    		SELON nQuotient
    			CAS 6 : 
    				sValLettreC1 = "Seize "
    			CAS 5 : 
    				sValLettreC1 = "Quinze "
    			CAS 4 : 
    				sValLettreC1 = "Quatorze "
    			CAS 3 : 
    				sValLettreC1 = "Treize "
    			CAS 2 : 
    				sValLettreC1 = "Douze "
    			CAS 1 : 
    				sValLettreC1 = "Onze "
    			CAS 0 :
    				sValLettreC1 = "Dix "
    			AUTRE CAS : 
    				sValLettreC1 = "Dix "
    				sValLettreC1 = sValLettreC1 + NUnités(nQuotient)
    		FIN
    	CAS 0 :
    		sValLettreC1 = sValLettreC1 + NUnités(Reste)				
    FIN
    RENVOYER sValLettreC1
    3) NUnités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    PROCEDURE NUnités(Reste)
    Dividente est un entier 
    sLettreUnité est une chaîne
     
    Dividente = Reste/1
    SELON Dividente
    	CAS 9 : sLettreUnité = "Neuf "
    	CAS 8 : sLettreUnité = "Huit "
    	CAS 7 : sLettreUnité = "Sept "
    	CAS 6 : sLettreUnité = "Six "
    	CAS 5 : sLettreUnité = "Cinq "
    	CAS 4 : sLettreUnité = "Quatre "
    	CAS 3 : sLettreUnité = "Trois "
    	CAS 2 : sLettreUnité = "Deux "
    	CAS 1 : sLettreUnité = "Un "	
    FIN
    RENVOYER sLettreUnité
    et la fonction principale (finale)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    PROCEDURE ConvertirEnLettres(MonChiffre)
    sMonCHiffreEnlettres, sIntermed est une chaîne
    nIter, i, nChiff sont des entiers
     
    //On divise la taille du chiffre par 3 pour voir le nombre de centaine par 3
    nIter = Taille(MonChiffre)/3
    //Si le reste de la division euclidienne est égale à Zéro => la taille du chiffre
    //est un multiple de 3
    SI modulo(Taille(MonChiffre), 3) > 0 ALORS
    	//Comme c'est # 0 on incrémente de 1 pour la centaine supérieure
    	nIter++
    	//Astuce pour récupérer le chiffre avec la fonction Milieu
    	sIntermed = "00" + MonChiffre
    SINON
    	sIntermed = "00" + MonChiffre
    FIN
    //Tableau qui va contenir le(s) chiffre(s) intermédiaires
    tabMonTableauDeLettres est un tableau de nIter chaînes
     
    POUR i = 1 _A_ nIter
    //Extraction de la centaine pour convertion
    	nChiff = Milieu(sIntermed, (Taille(sIntermed) + 1 - 3*i), 3)
     
    	SELON i
    		CAS 1
    			SI nChiff = 0 ALORS
    //		Dans le cas de Zéro	(0)
    				SI Taille(MonChiffre) = 1 ALORS
    					tabMonTableauDeLettres[1] = "Zéro" 
    				FIN
    			SINON
    				tabMonTableauDeLettres[1] = NCentaine(Val(nChiff)) 
    			FIN
    		CAS 2
    			SELON nChiff
    				CAS 0
    					tabMonTableauDeLettres[2] = NCentaine(Val(nChiff))
    //				Dans le cas de Mille dans la langue française.
    //				Si vous mettez le Cas 1 en commentaire, ça donnera Un Mille(s) au lieu de Mille(s)
    				CAS 1
    					tabMonTableauDeLettres[2] = "Mille(s) "
    				AUTRE CAS
    					tabMonTableauDeLettres[2] = NCentaine(Val(nChiff)) + "Mille(s) "
    			FIN
    		CAS 3
    			SI nChiff = 0 ALORS
    				tabMonTableauDeLettres[3] = NCentaine(Val(nChiff))
    			SINON
    				tabMonTableauDeLettres[3] = NCentaine(Val(nChiff)) + "Million(s) "
    			FIN	
    		CAS 4
    			SI nChiff = 0 ALORS
    				tabMonTableauDeLettres[4] = NCentaine(Val(nChiff))
    			SINON
    				tabMonTableauDeLettres[4] = NCentaine(Val(nChiff)) + "Milliard(s) "
    			FIN
    //	A + du milliard continuer ici. Un chiffre de + de 12 chiffres		
    //		cas 5
    		AUTRE CAS
     
    	FIN
    FIN
     
    //Concaténation des chaines pour la chaine finale
    SELON Taille(MonChiffre)
    	CAS <= 3
    		sMonCHiffreEnlettres = tabMonTableauDeLettres[1]
    	CAS <= 6
    		sMonCHiffreEnlettres = tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1]
    	CAS <= 9
    		sMonCHiffreEnlettres = tabMonTableauDeLettres[3] + tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1]
    	CAS <= 12
    		sMonCHiffreEnlettres = tabMonTableauDeLettres[4] + tabMonTableauDeLettres[3] + tabMonTableauDeLettres[2] + tabMonTableauDeLettres[1]
    	AUTRE CAS
     
    FIN
    //Commenter cette ligne si ce n'est des euros
    sMonCHiffreEnlettres = sMonCHiffreEnlettres + " €"
    RENVOYER sMonCHiffreEnlettres
    Ce code s'arrête au milliard, mais vous pouvez le modifier pour plus. J'espère que cela vous aidera.

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 344
    Points : 3 860
    Points
    3 860
    Par défaut
    Sympathique mais j'espère que tu n'y as pas trop passé de temps car il y a un petit exemple didactique (en WD12 en tout cas) : WD Nombre en lettres

Discussions similaires

  1. Convertir des chiffres en lettres
    Par azde7015 dans le forum VBA Access
    Réponses: 16
    Dernier message: 19/05/2019, 15h16
  2. [À télécharger] Convertir des chiffres en lettres
    Par SfJ5Rpw8 dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 14/11/2010, 14h33
  3. convertir des chiffres en lettres
    Par funmatica dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2010, 18h44
  4. Convertir des chiffres en lettres
    Par stratocasters dans le forum BIRT
    Réponses: 20
    Dernier message: 21/10/2008, 12h09
  5. convertir des chiffres en lettres
    Par stratocasters dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2008, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo