begin process at 2012 02 16 08:18:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

[ Au sujet de VBFrance ]

 > 

aide pour une convertion


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aide pour une convertion

vendredi 16 décembre 2005 à 14:58:15 | aide pour une convertion

SAGADO

salut a tous

est ce que quelqu'un pourra m'aider a convertir des chiffres en lettre et vice versa.
exemple convertir le nombre 12 en lettre douze
merci
vendredi 16 décembre 2005 à 15:39:35 | Re : aide pour une convertion

Julien237

Réponse acceptée !
J'ai bien peur que tu sois obligé de te taper la converSion manuellement... au mieux tu pourras peut-être un petit peu automatiser "vingt-" et puis la suite et compagnie mais à part ça, ça risque d'être lourd à faire... bon amusement !

Julien.
vendredi 16 décembre 2005 à 15:53:14 | Re : aide pour une convertion

SAGADO

OUI MAIS EN FAIT JE NE SAIS COMMENT LE FAIRE MEME MANUELLEMENT
vendredi 16 décembre 2005 à 16:23:36 | Re : aide pour une convertion

perathoner

Hello.
Tu place 2 textbox sur la form. textBox 1 dans laquelle tu écris en chiffre, textbox 2 le résultat en lettres.
Tu place aussi un bp.
Lorsque tu click dessus ça te donne le résultat.
Ca fonctionne de 0 à 99.
à toi de faire le reste.


Option Explicit

Private Sub Command1_Click()
Select Case Len(Trim$(Me.Text1.Text))
Case 1
    Me.Text2.Text = Unite(Trim$(Me.Text1.Text))
Case 2
    Select Case Mid(Trim$(Me.Text1.Text), 1, 1)
        Case 1
             Me.Text2.Text = DizaineDIX(Trim$(Me.Text1.Text))
        Case Else
             Me.Text2.Text = DizaineAUTRES(Trim$(Me.Text1.Text))
    End Select
Case Else
    Me.Text2.Text = "A toi de fiare le reste !!!"
End Select
End Sub

Private Function DizaineAUTRES(Valeur As Integer) As String
Select Case Mid(Trim$(Me.Text1.Text), 1, 1)
Case 2
    DizaineAUTRES = "vingt"
Case 3
    DizaineAUTRES = "trente"
Case 4
    DizaineAUTRES = "quarante"
Case 5
    DizaineAUTRES = "cinquante"
Case 6
    DizaineAUTRES = "soixante"
Case 7
    DizaineAUTRES = "soixante dix"
Case 8
    DizaineAUTRES = "quatre vingt"
Case 9
    DizaineAUTRES = "quatre vingt dix"
End Select

Select Case Mid(Trim$(Me.Text1.Text), 2, 1)
Case 1
    DizaineAUTRES = DizaineAUTRES & " et " & Unite(Mid(Trim$(Me.Text1.Text), 2, 1))
Case Else
    DizaineAUTRES = DizaineAUTRES & " " & Unite(Mid(Trim$(Me.Text1.Text), 2, 1))
End Select

End Function

Private Function DizaineDIX(Valeur As Integer) As String
Select Case Valeur
Case 10
    DizaineDIX = "dix"
Case 11
    DizaineDIX = "onze"
Case 12
    DizaineDIX = "douze"
Case 13
    DizaineDIX = "treize"
Case 14
    DizaineDIX = "quatorze"
Case 15
    DizaineDIX = "quinze"
Case 16
    DizaineDIX = "seize"
Case 17
    DizaineDIX = "dix sept"
Case 18
    DizaineDIX = "dix huit"
Case 19
    DizaineDIX = "dix neuf"
End Select
End Function

Private Function Unite(Valeur As Integer) As String
Select Case Valeur
Case 0
    Unite = "zéro"
Case 1
    Unite = "un"
Case 2
    Unite = "deux"
Case 3
    Unite = "trois"
Case 4
    Unite = "quatre"
Case 5
    Unite = "cinq"
Case 6
    Unite = "six"
Case 7
    Unite = "sept"
Case 8
    Unite = "huit"
Case 9
    Unite = "neuf"
End Select
End Function



vendredi 16 décembre 2005 à 16:25:44 | Re : aide pour une convertion

perathoner

Sorry le code exacte.

Option Explicit

Private Sub Command1_Click()
Select Case Len(Trim$(Me.Text1.Text))
Case 1
    Me.Text2.Text = Unite(Trim$(Me.Text1.Text))
Case 2
    Select Case Mid(Trim$(Me.Text1.Text), 1, 1)
        Case 1
             Me.Text2.Text = DizaineDIX(Trim$(Me.Text1.Text))
        Case Else
             Me.Text2.Text = DizaineAUTRES(Trim$(Me.Text1.Text))
    End Select
Case Else
    Me.Text2.Text = "A toi de fiare le reste !!!"
End Select
End Sub

Private Function DizaineAUTRES(Valeur As Integer) As String
Select Case Mid(Trim$(Me.Text1.Text), 1, 1)
Case 2
    DizaineAUTRES = "vingt"
Case 3
    DizaineAUTRES = "trente"
Case 4
    DizaineAUTRES = "quarante"
Case 5
    DizaineAUTRES = "cinquante"
Case 6
    DizaineAUTRES = "soixante"
Case 7
    DizaineAUTRES = "soixante dix"
Case 8
    DizaineAUTRES = "quatre vingt"
Case 9
    DizaineAUTRES = "quatre vingt dix"
End Select

Select Case Mid(Trim$(Me.Text1.Text), 2, 1)
Case 0
    DizaineAUTRES = DizaineAUTRES
Case 1
    DizaineAUTRES = DizaineAUTRES & " et " & Unite(Mid(Trim$(Me.Text1.Text), 2, 1))
Case Else
    DizaineAUTRES = DizaineAUTRES & " " & Unite(Mid(Trim$(Me.Text1.Text), 2, 1))
End Select

End Function

Private Function DizaineDIX(Valeur As Integer) As String
Select Case Valeur
Case 10
    DizaineDIX = "dix"
Case 11
    DizaineDIX = "onze"
Case 12
    DizaineDIX = "douze"
Case 13
    DizaineDIX = "treize"
Case 14
    DizaineDIX = "quatorze"
Case 15
    DizaineDIX = "quinze"
Case 16
    DizaineDIX = "seize"
Case 17
    DizaineDIX = "dix sept"
Case 18
    DizaineDIX = "dix huit"
Case 19
    DizaineDIX = "dix neuf"
End Select
End Function

Private Function Unite(Valeur As Integer) As String
Select Case Valeur
Case 0
    Unite = "zéro"
Case 1
    Unite = "un"
Case 2
    Unite = "deux"
Case 3
    Unite = "trois"
Case 4
    Unite = "quatre"
Case 5
    Unite = "cinq"
Case 6
    Unite = "six"
Case 7
    Unite = "sept"
Case 8
    Unite = "huit"
Case 9
    Unite = "neuf"
End Select
End Function




vendredi 16 décembre 2005 à 17:13:19 | Re : aide pour une convertion

jpleroisse

Bonsoir,

Dans un Module: (Cette fonction marche aussi bien en VBA, qu'en VB 6.Ceci est la Fonction Française( Soixante  quinze pour 75 etc..).
Si tu veux la fonction modifiée en Belge(Septante cinq pour 75 etc..) Post et je te la passerai).

Option Explicit
Option Base 1
 
Public Unité As Variant
Public Dizaine As Variant
Public Décimales As Currency
Public CasPart As Variant
Public Lettres As String
Public Cent_Pluriel As Boolean
Public Vingt_Pluriel As Boolean
 
'
' -------------------
' FONCTION PRINCIPALE
' -------------------
'
Function NombresEnLettres_EURO(Nombre As Currency) As String
 
' Limitation à 999 999 999 999 . 99
    If Nombre >= 1000000000000# Then
        MsgBox "Ce nombre est trop grand !", 0, "Message"
        Exit Function
    End If
    
' Initialisation des tableaux
    Unité = Array("UN", "DEUX", "TROIS", "QUATRE", "CINQ", "SIX", "SEPT", "HUIT", "NEUF")
    Dizaine = Array("DIX", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE", "SOIXANTE", "SOIXANTE", "QUATRE-VINGT", "QUATRE-VINGT")
    CasPart = Array("DIX", "ONZE", "DOUZE", "TREIZE", "QUATORZE", "QUINZE", "SEIZE")
    
' Mise à vide de la chaîne de réception de la traduction du nombre
    Lettres = ""
    
' Initialisation des indicateurs de pluriel des nombres cent et vingt
    Cent_Pluriel = True
    Vingt_Pluriel = True
    
' Conversion de la partie décimale en un nombre de 0 à 99
' arrondi à l'unité la plus proche

    Décimales = CInt((Nombre - Fix(Nombre)) * 100)
    
' Conservation de la partie entière du nombre
    Nombre = Fix(Nombre)
    
' Orientation du traitement suivant valeur de la partie entière
    Select Case Nombre
        Case 0
            Lettres = "ZERO"
        Case 1 To 9
            Lettres = Unité(CInt(Nombre))
        Case 10 To 99
            Trt_Dizaines Nombre
        Case 100 To 999
            Trt_Centaines Nombre
        Case 1000 To 999999999999#
            Trt_Multiples_de_Mille Nombre
    End Select
       
' Indication de la monnaie
    If Nombre > 1 Then
        Lettres = Lettres & " EUROS "
    Else
        Lettres = Lettres & " EURO "
    End If
 
' Orientation du traitement suivant valeur de la partie décimale
    Select Case Décimales
        Case 1 To 9
            Lettres = Lettres & Unité(CInt(Décimales))
        Case 10 To 99
            Trt_Dizaines Décimales
    End Select
        
' Indication des centimes
    Select Case Décimales
        Case 1
            Lettres = Lettres & " CENT"
        Case Is > 1
            Lettres = Lettres & " CENTS"
    End Select
 
' Renvoi du nombre traduit en lettres
    NombresEnLettres_EURO = Lettres
    
End Function
 
'
' --------------------------------
' TRAITEMENT DES MULTIPLES DE 1000
' --------------------------------
'
Sub Trt_Multiples_de_Mille(Nombre As Currency)
 
Dim Rank As Currency
Dim Nom_Rang As String
Dim Reste As Currency
 
    Cent_Pluriel = False
    Vingt_Pluriel = False
    
' Initialisation suivant taille du nombre : milliers, millions ou milliards
    Select Case Nombre
        Case 1000 To 999999
            Rank = Fix(Nombre / 1000)
            Reste = Nombre Mod 1000
            Nom_Rang = "MILLE"
        Case 1000000 To 999999999
            Rank = Fix(Nombre / 1000000)
            Reste = Nombre Mod 1000000
            If Rank > 1 Then
                Nom_Rang = "MILLIONS"
            Else
                Nom_Rang = "MILLION"
            End If
        Case Is > 999999999
            Rank = Fix(Nombre / 1000000000)
            Reste = Nombre - Rank * 1000000000
            If Rank > 1 Then
                Nom_Rang = "MILLIARDS"
            Else
                Nom_Rang = "MILLIARD"
            End If
    End Select
    
' Traitement du rang des milliers, millions ou milliards
    Select Case Rank
        Case 1
            If Nom_Rang = "MILLE" Then
                Lettres = Lettres & Nom_Rang
            Else
                Lettres = Lettres & Unité(CInt(Rank)) & " " & Nom_Rang
            End If
        Case 2 To 9
            Lettres = Lettres & Unité(CInt(Rank)) & " " & Nom_Rang
        Case 10 To 99
            Trt_Dizaines (Rank)
            Lettres = Lettres & " " & Nom_Rang
        Case 100 To 999
            Trt_Centaines Rank
            Lettres = Lettres & " " & Nom_Rang
    End Select
        
    Cent_Pluriel = True
    Vingt_Pluriel = True
        
' Orientation du traitement du reste si > 0
    Select Case Reste
        Case 1 To 9
            Lettres = Lettres & " " & Unité(CInt(Reste))
        Case 10 To 99
            Lettres = Lettres & " "
            Trt_Dizaines Reste
        Case 100 To 999
            Lettres = Lettres & " "
            Trt_Centaines Reste
        Case Is > 999
            Lettres = Lettres & " "
            Trt_Multiples_de_Mille Reste
    End Select
    
    Lettres = Lettres
 
End Sub
 
'
' -----------------------------------
' TRAITEMENT DES NOMBRES DE 100 0 999
' -----------------------------------
'
Sub Trt_Centaines(Nombre As Currency)
 
Dim Rank As Currency
Dim Reste As Currency
 
    Rank = Fix(Nombre / 100)
    Reste = Nombre Mod 100
    
' Traitement du rang des centaines
    If Rank = 1 Then
        Lettres = Lettres & "CENT"
    Else
        If Reste = 0 And Cent_Pluriel Then
            Lettres = Lettres & Unité(CInt(Rank)) & " " & "CENTS"
        Else
            Lettres = Lettres & Unité(CInt(Rank)) & " " & "CENT"
        End If
    End If
    
' Traitement du reste < 100
    Select Case Reste
        Case 1 To 9
            Lettres = Lettres & " " & Unité(CInt(Reste))
        Case Is > 9
            Lettres = Lettres & " "
            Vingt_Pluriel = True
            Trt_Dizaines (Reste)
    End Select
        
End Sub
 
'
' ---------------------------------
' TRAITEMENT DES NOMBRES DE 10 0 99
' ---------------------------------
'
Sub Trt_Dizaines(Nombre As Currency)
 
Dim Reste As Integer
Dim Rank As Integer
 
    Rank = Fix(Nombre / 10)
    Reste = Nombre Mod 10
    
    Select Case Rank
        Case 1
            If Reste < 7 Then
                ' Nombres 10 à 16
                Lettres = Lettres & CasPart(Reste + 1)
            Else
                ' Nombres 17 à 19
                Lettres = Lettres & Dizaine(Rank) & "-" & Unité(CInt(Reste))
            End If
        Case 7
            Select Case Reste
                Case 0
                    ' Nombre 70
                    Lettres = Lettres & Dizaine(Rank) & "-" & Dizaine(Reste + 1)
                Case 1
                    ' Nombre 71
                    Lettres = Lettres & Dizaine(Rank) & " ET " & CasPart(Reste + 1)
                Case Else
                    If Reste < 7 Then
                    ' Nombres 72 à 76
                        Lettres = Lettres & Dizaine(Rank) & "-" & CasPart(Reste + 1)
                    Else
                    ' Nombres 77 à 79
                        Lettres = Lettres & Dizaine(Rank) & "-" & CasPart(1) & "-" & Unité(CInt(Reste))
                    End If
            End Select
        Case 8
            Lettres = Lettres & Dizaine(Rank)
            If Reste = 0 Then
                ' Nombre 80
                If Vingt_Pluriel Then
                    Lettres = Lettres & "S"
                End If
            Else
                ' Nombres 81 à 89
                Lettres = Lettres & "-" & Unité(CInt(Reste))
            End If
        Case 9
            If Reste < 7 Then
                ' Nombres 90 à 96
                Lettres = Lettres & Dizaine(Rank) & "-" & CasPart(Reste + 1)
            Else
                ' Nombres 97 à 99
                Lettres = Lettres & Dizaine(Rank) & "-" & CasPart(1) & "-" & Unité(CInt(Reste))
            End If
        Case Else
            ' Nombres 20 à 69
            Select Case Reste
                Case 0
                    ' Nombres 20, 30, 40, 50, 60
                    Lettres = Lettres & Dizaine(Rank)
                Case 1
                    ' Nombres 21, 31, 41, 51, 61
                    Lettres = Lettres & Dizaine(Rank) & " ET " & Unité(CInt(Reste))
                Case Else
                    ' Autres nombres
                    Lettres = Lettres & Dizaine(Rank) & "-" & Unité(CInt(Reste))
            End Select
    End Select
    
End Sub

'Exemple:
' Dans le code de la Form.
Private Sub Command1_Click()
Text2 = NombresEnLettres_EURO(Text1.Text)
End Sub

Private Sub Command2_Click()
Text2 = LCase(NombresEnLettres_EURO(Text1.Text))
End Sub

jpleroisse

Si une réponse vous convient, cliquez Réponse Acceptée.



Cette discussion est classée dans : aide, convertir, lettre, convertion


Répondre à ce message

Sujets en rapport avec ce message

B'soin d'aide svp [ par Selig ] Voila j'suis sur un projet de traduction mais qui doit traduire lettre par lettre et je ne connais pas le code pour que le prog puisse accumule plusi Informations et aide [ par gnahore ] Bonjour,Je me nomme PRIVAT, j'ai un petit problème sur Visual Basic 6. j'aimerais savoir comment définir un Login et un mot de passe dans un programme convertir lettre en chiffre [ par eryk17 ] comment puis en vb ocnvertir les lettres en chiffres apres avoir récupérer un fichier:genre a=1;b=2;c=3...quand le programme lit "a" il affiche 1. Amateur demande aide pour convertir logiciel VB6 en Vb2005/2008 [ par adlbg ] Bonjour,Programmateur Visual Basic amateur, bloqué par Vista qui ne reconnait pas VB6, demande aide pour compléter, corriger, éliminer erreurs dans la aide sur la convertion de données [ par marthyly ] Salut à tous,Je veux saisir et sauvegarder un taux dans ma base de données SQL Serveur 2005 stanadard.Le champ taux est du type float dans ma base de [Déplacé VB6 --> .Net] Comment convertir une String en DataSet ? [ par mlopez ] Bonjour à tous et merci d'avance pour votre aide. Je stocke dans un fichier texte par exemple la ligne suivante : MaDatabase.MonDataSet.MaTable Lors Besoin d'aide pour convertion c#.net -> vb.net [ par mattou11 ] Bonjour à tous, Alors voila, pour vous mettre en contexte, cela fait 1 mois et demi que je fais des recherche pour lister les noms de machines de tou convertir une lettre en sa valeur décimale [ par Gabalgabow ] En VB,comment convertir une lettre en sa valeur décimale ou héxadécimale correpondante?Ex: a -->1 b -->2 c -->3GRIND YER FACE!! convertir une lettre en sa valeur décimale [ par Gabalgabow ] Comment compter le nombre d'enregistrement dans une base de données à partir de VB?GRIND YER FACE!! convertir une lettre en sa valeur décimale [ par Gabalgabow ] Comment compter le nombre d'enregistrement dans une base de données à partir de VB?GRIND YER FACE!!


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales