Montant en lettres

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

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.