Montant en lettres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 870 fois - Téléchargée 29 fois

Contenu du snippet

Convertion d'un nombre reel en chaine de carcteres.
Utilisé lors de l'elaboration de factures(Le montant en lettres)
La monaie utilisée est le Dinar Algerien
Vous pouvez changer la monaie.
RQ: Pour m'a premiere source sur VBFrance jai essaye de m'appliquer.
Convertion d'un nombre reel en chaine de carcteres.
Utilisé lors de l'elaboration de factures(Le montant en lettres)
La monaie utilisée est le Dinar Algerien
Vous pouvez changer la monaie.
RQ: Pour m'a premiere source sur VBFrance jai essaye de m'appliquer.Convertion d'un nombre reel en chaine de carcteres.
Utilisé lors de l'elaboration de factures(Le montant en lettres)
La monaie utilisée est le Dinar Algerien
Vous pouvez changer la monaie.
RQ: Pour m'a premiere source sur VBFrance jai essaye de m'appliquer.Convertion d'un nombre reel en chaine de carcteres.
Utilisé lors de l'elaboration de factures(Le montant en lettres)
La monaie utilisée est le Dinar Algerien
Vous pouvez changer la monaie.
RQ: Pour m'a premiere source sur VBFrance jai essaye de m'appliquer.

Source / Exemple :


Private S As String

Private Function ConvertNombreLettre(ByVal N As Double) As String
 
If N < 10 Then
  
 Select Case N
  
 Case 1
 S = "UN"
 ConvertNombreLettre = S
  
 Case 2
 S = "DEUX"
 ConvertNombreLettre = S
 
 Case 3
 S = "TROIS"
 ConvertNombreLettre = S
 
 Case 4
 S = "QUATRE"
 ConvertNombreLettre = S
 
 Case 5
 S = "CINQ"
 ConvertNombreLettre = S
  
 Case 6
 S = "SIX"
 ConvertNombreLettre = S
  
 Case 7
 S = "SEPT"
 ConvertNombreLettre = S
 
 Case 8
 S = "HUIT"
 ConvertNombreLettre = S
 
 Case 9
 S = "NEUF"
 ConvertNombreLettre = S
 
 End Select
 
ElseIf N < 20 Then
 
 Select Case N
 
 Case 10
 S = "DIX"
 ConvertNombreLettre = S
  
 Case 11
 S = "ONZE"
 ConvertNombreLettre = S
  
 Case 12
 S = "DOUZE"
 ConvertNombreLettre = S
  
 Case 13
 S = "TREIZE"
 ConvertNombreLettre = S
 
 Case 14
 S = "QUATORZE"
 ConvertNombreLettre = S
 
 Case 15
 S = "QUINZE"
 ConvertNombreLettre = S
 
 Case 16
 S = "SEIZE"
 ConvertNombreLettre = S
 
 Case 17, 18, 19
 S = ConvertNombreLettre(N - 10)
 S = "DIX " + S
 ConvertNombreLettre = S
 End Select
 
ElseIf N < 100 Then
 
 If Right(N, 1) = 1 Then
  
  Select Case N
  Case 21
  S = "VINGT ET UN"
  ConvertNombreLettre = S
 
  Case 31
  S = "TRENTE ET UN "
  ConvertNombreLettre = S
 
  Case 41
  S = "QUARANTE ET UN "
  ConvertNombreLettre = S
 
  Case 51
  S = "CINQUANTE ET UN "
  ConvertNombreLettre = S
  
  Case 61
  S = "SOIXANTE ET UN "
  ConvertNombreLettre = S
  
  Case 71
  S = "SOIXANTE ET ONZE "
  ConvertNombreLettre = S
  
  Case 81
  S = "QUATRE VINGT ET UN "
  ConvertNombreLettre = S
    
  Case 91
  S = "QUATRE VINGT ET ONZE "
  ConvertNombreLettre = S
  End Select
  
 Else
  
 Select Case N
 Case 20 To 29
 S = "VINGT " + ConvertNombreLettre(N - 20)
 ConvertNombreLettre = S
 
 Case 30 To 39
 S = "TRENTE " + ConvertNombreLettre(N - 30)
 ConvertNombreLettre = S
 
 Case 40 To 49
 S = "QUARANTE " + ConvertNombreLettre(N - 40)
 ConvertNombreLettre = S
 
 Case 50 To 59
 S = "CINQUANTE " + ConvertNombreLettre(N - 50)
 ConvertNombreLettre = S
 
 
 Case 60 To 79
 S = "SOIXANTE " + ConvertNombreLettre(N - 60)
 ConvertNombreLettre = S
 
 Case 80 To 99
 S = "QUATRE VINGT " + ConvertNombreLettre(N - 80)
 ConvertNombreLettre = S
 
 End Select
 
End If

ElseIf N < 1000 Then
 
 Digit = Left(N, 1)
 Select Case Digit
 
 Case 1
 S = "CENT " + ConvertNombreLettre(Mid(N, 2, 2))
 ConvertNombreLettre = S
 
 Case Is <> 1
 S = ConvertNombreLettre(Digit)
 S = S + " CENT " + ConvertNombreLettre(Mid(N, 2, 2))
 ConvertNombreLettre = S
 
 End Select
 
 
ElseIf N <= 9999 Then

  Digit = Left(N, 1)
  
  Select Case Digit
  
  Case 1
  S = "MILLE " + ConvertNombreLettre(Mid(N, 2, 3))
  ConvertNombreLettre = S
  
  Case Is <> 1
  S = ConvertNombreLettre(Digit)
  S = S + " MILLE " + ConvertNombreLettre(Mid(N, 2, 3))
  ConvertNombreLettre = S
  
  End Select
  
ElseIf N <= 99999 Then
  Digit = Left(N, 2)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLE " + ConvertNombreLettre(Mid(N, 3, 3))
  ConvertNombreLettre = S

ElseIf N <= 999999 Then
  Digit = Left(N, 3)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLE " + ConvertNombreLettre(Mid(N, 4, 3))
  ConvertNombreLettre = S
  
ElseIf N <= 9999999 Then
    
  Digit = Left(N, 1)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLION " + ConvertNombreLettre(Mid(N, 2, 6))
  ConvertNombreLettre = S

ElseIf N <= 99999999 Then
  Digit = Left(N, 2)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLION " + ConvertNombreLettre(Mid(N, 3, 6))
  ConvertNombreLettre = S

ElseIf N <= 999999999 Then
  Digit = Left(N, 3)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLION " + ConvertNombreLettre(Mid(N, 4, 6))
  ConvertNombreLettre = S

ElseIf N <= 9999999999# Then
  Digit = Left(N, 1)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLIARD " + ConvertNombreLettre(Mid(N, 2, 9))
  ConvertNombreLettre = S

ElseIf N <= 99999999999# Then
  Digit = Left(N, 2)
  S = ConvertNombreLettre(Digit)
  S = S + " MILLIARD " + ConvertNombreLettre(Mid(N, 3, 9))
  ConvertNombreLettre = S
  
End If

End Function

Public Function ArreteSomme(ByVal N As Double, ByVal Monnaie As String) As String
Dim DA As Double
Dim Centimes As Integer

DA = Int(N)
Centimes = (N - DA) * 100

ArreteSomme = ConvertNombreLettre(DA) + "  " + Monnaie + "  " + _
              ConvertNombreLettre(Centimes) + "  CTS"
End Function

A voir également

Ajouter un commentaire

Commentaires

kameldrdt
Messages postés
1
Date d'inscription
samedi 25 février 2012
Statut
Membre
Dernière intervention
25 février 2012

comment je peut faire la somme des chiffre d'un nombre de 30 chiffre
k7taib
Messages postés
3
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
11 mars 2010

oui dsl mes amis je suis debautant , dis moi svp ou ecrire ce code pck j ai essay mais j ai rien trouvé repond moi le plus vite possible si si possible avec exemple complét merci 'j ai un facture et je vx que le montant changer en lettres'
aderko
Messages postés
7
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
16 août 2008

ce programme est impec...
je voudrais ajouter une pic dans la facture...si vous pouvez m'aider
ce serait sympa...merci
Cacophrene
Messages postés
263
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008

Salut !

1. On ne dit pas "quatre vingt et onze" mais "quatre-vingt-onze"
2. En-deçà de cent, les entiers prennent des tirets (28 = "vingt-huit" et non "vingt huit")
3. Les centaines s'accordent en genre lorsqu'elles ne sont pas suivies d'un autre chiffre (300 "trois cents" mais 302 "trois cent deux")

Donc, quelques corrections à effectuer !
Bon programme quand même...

Cordialement,
Cacophrene
Mikey_md
Messages postés
34
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
2 février 2014

c'est pas vraiment un probleme, c'est plus une petite remarque pour les 21,31,41,51,61,71 mettre un "et" entre "vingt" et "un"

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.