exemple : un million ==> 1000000
deux cent soixante douze ==> 272
il y a un programme qui transforme des chiffres en lettre, il doit o6 y avoir un programme qui fait l'inverse
LETTRE EN CHIFFRE
c'est à dire les chiffres en lettre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim groupemilliard As String Dim groupemillion As String Dim groupemille As String Dim restegroup As String Private Sub SplitInGroup(Chaine As String) Dim mille As Integer Dim milliard As Integer Dim million As Integer Dim strmilliard As String Dim strmillion As String Dim pos As Integer strm = "" pos = 1 'on cherche le milliard Chaine = LCase(Chaine) milliard = InStr(1, Chaine, "milliard") If milliard > 0 Then groupemilliard = Mid(Chaine, 1, milliard - 1) groupemilliard = Trim(groupemilliard) strmilliard = Mid(Chaine, milliard, Len("milliards")) strmilliard = Trim(strmilliard) pos = milliard + Len(strmilliard) End If 'verifie si milliard ou milliards million = InStr(milliard + Len(strmilliard) + 1, Chaine, "million") If million > 0 Then groupemillion = Mid(Chaine, milliard + Len(strmilliard) + 1, million - (milliard + Len(strmilliard) + 1)) groupemillion = Trim(groupemillion) strmillion = Mid(Chaine, million, Len("millions")) strmillion = Trim(strmillion) pos = million + Len(strmillion) End If If million > 0 Then mille = InStr(million + Len(strmillion) + 1, Chaine, "mille") If mille > 0 Then groupemille = Mid(Chaine, million + Len(strmillion) + 1, mille - (million + Len(strmillion) + 1)) groupemille = Trim(groupemille) pos = mille + Len("mille") End If Else mille = InStr(milliard + Len(strmilliard) + 1, Chaine, "mille") If mille > 0 Then If mille = 1 Then groupemille = "un" Else groupemille = Mid(Chaine, milliard + Len(strmilliard) + 1, mille - (milliard + Len(strmilliard) + 1)) groupemille = Trim(groupemille) End If End If End If If Len(Chaine) - pos >= 1 Then restegroup = Mid(Chaine, pos) End If If mille > 0 Then restegroup = Mid(Chaine, mille + Len("mille")) End If End Sub Public Function WordsToNumber(strword As String) As Double SplitInGroup strword WordsToNumber = LettreToNumber(groupemilliard) * 10 ^ 9 + LettreToNumber(groupemillion) * 10 ^ 6 + LettreToNumber(groupemille) * 10 ^ 3 + LettreToNumber(restegroup) End Function Private Function LettreToNumber(group As String) As Integer Dim parts() As String Dim acc As Integer Dim acc20 As Integer Dim acc100 As Integer Dim flag20 As Boolean Dim flag100 As Boolean Dim lenparts As Integer flag20 = False flag100 = False acc = 0 group = Replace(group, "-", " ") parts = Split(group, " ") lenparts = UBound(parts) While lenparts >= 0 Select Case parts(lenparts) Case "un": acc = acc + 1 Case "deux" If flag100 Then acc = acc * 2 + acc100 flag100 = False Else acc = acc + 2 End If Case "trois" If flag100 Then acc = acc * 3 + acc100 flag100 = False Else acc = acc + 3 End If Case "quatre" If flag20 Then acc = acc * 4 + acc20 Else acc = acc + 4 End If If flag100 Then acc = acc * 4 + acc100 flag100 = False End If Case "cinq" If flag100 Then acc = acc * 5 + acc100 flag100 = False Else acc = acc + 5 End If Case "six" If flag100 Then acc = acc * 6 + acc100 flag100 = False Else acc = acc + 6 End If Case "sept" If flag100 Then acc = acc * 7 + acc100 flag100 = False Else acc = acc + 7 End If Case "huit" If flag100 Then acc = acc * 8 + acc100 flag100 = False Else acc = acc + 8 End If Case "neuf" If flag100 Then acc = acc * 9 + acc100 flag100 = False Else acc = acc + 9 End If Case "dix": acc = acc + 10 Case "onze": acc = acc + 11 Case "douze": acc = acc + 12 Case "treize": acc = acc + 13 Case "quatorze": acc = acc + 14 Case "quinze": acc = acc + 15 Case "seize": acc = acc + 16 Case "vingt": acc20 = acc acc = 20 flag20 = True Case "vingts": acc20 = acc acc = 20 flag20 = True Case "trente": acc = acc + 30 Case "quarante": acc = acc + 40 Case "cinquante": acc = acc + 50 Case "soixante": acc = acc + 60 Case "cent": acc100 = acc acc = 100 flag100 = True Case "cents": acc100 = acc acc = 100 flag100 = True End Select lenparts = lenparts - 1 Wend If flag100 Then acc = acc100 + acc End If LettreToNumber = acc End Function
Dim groupemilliard As String Dim groupemillion As String Dim groupemille As String Dim restegroup As String
La "chose" n'arrive qu'après plusieurs essais à partir du texte d'une textbox.
Dim groupemilliard As String
Dim groupemillion As String
Dim groupemille As String
Dim restegroup As String
Private Sub Command1_Click() Dim toto As String toto = TextBox1.Text MsgBox WordsToNumber(toto) End Sub
Dim groupemilliard As String Dim groupemillion As String Dim groupemille As String Dim restegroup As String Private Sub SplitInGroup(Chaine As String) Dim mille As Integer Dim milliard As Integer Dim million As Integer Dim strmilliard As String Dim strmillion As String Dim pos As Integer ' initialiser groupemilliard = "" groupemillion = "" groupemille = "" restegroup = "" strm = "" pos = 1 'on cherche le milliard Chaine = LCase(Chaine) milliard = InStr(1, Chaine, "milliard") If milliard > 0 Then groupemilliard = Mid(Chaine, 1, milliard - 1) groupemilliard = Trim(groupemilliard) strmilliard = Mid(Chaine, milliard, Len("milliards")) strmilliard = Trim(strmilliard) pos = milliard + Len(strmilliard) End If 'verifie si milliard ou milliards million = InStr(milliard + Len(strmilliard) + 1, Chaine, "million") If million > 0 Then groupemillion = Mid(Chaine, milliard + Len(strmilliard) + 1, million - (milliard + Len(strmilliard) + 1)) groupemillion = Trim(groupemillion) strmillion = Mid(Chaine, million, Len("millions")) strmillion = Trim(strmillion) pos = million + Len(strmillion) End If If million > 0 Then mille = InStr(million + Len(strmillion) + 1, Chaine, "mille") If mille > 0 Then groupemille = Mid(Chaine, million + Len(strmillion) + 1, mille - (million + Len(strmillion) + 1)) groupemille = Trim(groupemille) pos = mille + Len("mille") End If Else mille = InStr(milliard + Len(strmilliard) + 1, Chaine, "mille") If mille > 0 Then If mille = 1 Then groupemille = "un" Else groupemille = Mid(Chaine, milliard + Len(strmilliard) + 1, mille - (milliard + Len(strmilliard) + 1)) groupemille = Trim(groupemille) End If End If End If If Len(Chaine) - pos >= 1 Then restegroup = Mid(Chaine, pos) End If End Sub Public Function WordsToNumber(strword As String) As Double SplitInGroup strword WordsToNumber = LettreToNumber(groupemilliard) * 10 ^ 9 + LettreToNumber(groupemillion) * 10 ^ 6 + LettreToNumber(groupemille) * 10 ^ 3 + LettreToNumber(restegroup) End Function Private Function LettreToNumber(group As String) As Integer Dim parts() As String Dim acc As Integer Dim acc20 As Integer Dim acc100 As Integer Dim flag20 As Boolean Dim flag100 As Boolean Dim lenparts As Integer flag20 = False flag100 = False acc = 0 group = Replace(group, "-", " ") parts = Split(group, " ") lenparts = UBound(parts) While lenparts >= 0 Select Case parts(lenparts) Case "un": acc = acc + 1 Case "deux" If flag100 Then acc = acc * 2 + acc100 flag100 = False Else acc = acc + 2 End If Case "trois" If flag100 Then acc = acc * 3 + acc100 flag100 = False Else acc = acc + 3 End If Case "quatre" If flag20 Then acc = acc * 4 + acc20 Else acc = acc + 4 End If If flag100 Then acc = acc * 4 + acc100 flag100 = False End If Case "cinq" If flag100 Then acc = acc * 5 + acc100 flag100 = False Else acc = acc + 5 End If Case "six" If flag100 Then acc = acc * 6 + acc100 flag100 = False Else acc = acc + 6 End If Case "sept" If flag100 Then acc = acc * 7 + acc100 flag100 = False Else acc = acc + 7 End If Case "huit" If flag100 Then acc = acc * 8 + acc100 flag100 = False Else acc = acc + 8 End If Case "neuf" If flag100 Then acc = acc * 9 + acc100 flag100 = False Else acc = acc + 9 End If Case "dix": acc = acc + 10 Case "onze": acc = acc + 11 Case "douze": acc = acc + 12 Case "treize": acc = acc + 13 Case "quatorze": acc = acc + 14 Case "quinze": acc = acc + 15 Case "seize": acc = acc + 16 Case "vingt": acc20 = acc acc = 20 flag20 = True Case "vingts": acc20 = acc acc = 20 flag20 = True Case "trente": acc = acc + 30 Case "quarante": acc = acc + 40 Case "cinquante": acc = acc + 50 Case "soixante": acc = acc + 60 Case "cent": acc100 = acc acc = 100 flag100 = True Case "cents": acc100 = acc acc = 100 flag100 = True End Select lenparts = lenparts - 1 Wend If flag100 Then acc = acc100 + acc End If LettreToNumber = acc End Function
Dim groupemilliard As String Dim groupemillion As String Dim groupemille As String Dim restegroup As String Private Sub SplitInGroup(Chaine As String) Dim mille As Integer Dim milliard As Integer Dim million As Integer Dim strmilliard As String Dim strmillion As String Dim pos As Integer groupemilliard = "" groupemillion = "" groupemille = "" restegroup = "" strm = "" pos = 1 'on cherche le milliard Chaine = LCase(Chaine) milliard = InStr(1, Chaine, "milliard") If milliard > 0 Then groupemilliard = Mid(Chaine, 1, milliard - 1) groupemilliard = Trim(groupemilliard) strmilliard = Mid(Chaine, milliard, Len("milliards")) strmilliard = Trim(strmilliard) pos = milliard + Len(strmilliard) End If 'verifie si milliard ou milliards million = InStr(milliard + Len(strmilliard) + 1, Chaine, "million") If million > 0 Then groupemillion = Mid(Chaine, milliard + Len(strmilliard) + 1, million - (milliard + Len(strmilliard) + 1)) groupemillion = Trim(groupemillion) strmillion = Mid(Chaine, million, Len("millions")) strmillion = Trim(strmillion) pos = million + Len(strmillion) End If If million > 0 Then mille = InStr(million + Len(strmillion) + 1, Chaine, "mille") If mille > 0 Then groupemille = Mid(Chaine, million + Len(strmillion) + 1, mille - (million + Len(strmillion) + 1)) If groupmille = "" Then groupemille = "un" Else groupemille = Trim(groupemille) End If pos = mille + Len("mille") End If Else mille = InStr(milliard + Len(strmilliard) + 1, Chaine, "mille") If mille > 0 Then If mille = 1 Then groupemille = "un" Else groupemille = Mid(Chaine, milliard + Len(strmilliard) + 1, mille - (milliard + Len(strmilliard) + 1)) groupemille = Trim(groupemille) End If pos = mille + Len("mille") End If End If If Len(Chaine) - pos >= 1 Then restegroup = Mid(Chaine, pos) End If End Sub Public Function WordsToNumber(strword As String) As Double SplitInGroup strword WordsToNumber = LettreToNumber(groupemilliard) * 10 ^ 9 + LettreToNumber(groupemillion) * 10 ^ 6 + LettreToNumber(groupemille) * 10 ^ 3 + LettreToNumber(restegroup) End Function Private Function LettreToNumber(group As String) As Integer Dim parts() As String Dim acc As Integer Dim acc20 As Integer Dim acc100 As Integer Dim flag20 As Boolean Dim flag100 As Boolean Dim lenparts As Integer flag20 = False flag100 = False acc = 0 group = Replace(group, "-", " ") parts = Split(group, " ") lenparts = UBound(parts) While lenparts >= 0 Select Case parts(lenparts) Case "un": acc = acc + 1 Case "deux" If flag100 Then acc = acc * 2 + acc100 flag100 = False Else acc = acc + 2 End If Case "trois" If flag100 Then acc = acc * 3 + acc100 flag100 = False Else acc = acc + 3 End If Case "quatre" If flag20 Then acc = acc * 4 + acc20 Else acc = acc + 4 End If If flag100 Then acc = acc * 4 + acc100 flag100 = False End If Case "cinq" If flag100 Then acc = acc * 5 + acc100 flag100 = False Else acc = acc + 5 End If Case "six" If flag100 Then acc = acc * 6 + acc100 flag100 = False Else acc = acc + 6 End If Case "sept" If flag100 Then acc = acc * 7 + acc100 flag100 = False Else acc = acc + 7 End If Case "huit" If flag100 Then acc = acc * 8 + acc100 flag100 = False Else acc = acc + 8 End If Case "neuf" If flag100 Then acc = acc * 9 + acc100 flag100 = False Else acc = acc + 9 End If Case "dix": acc = acc + 10 Case "onze": acc = acc + 11 Case "douze": acc = acc + 12 Case "treize": acc = acc + 13 Case "quatorze": acc = acc + 14 Case "quinze": acc = acc + 15 Case "seize": acc = acc + 16 Case "vingt": acc20 = acc acc = 20 flag20 = True Case "vingts": acc20 = acc acc = 20 flag20 = True Case "trente": acc = acc + 30 Case "quarante": acc = acc + 40 Case "cinquante": acc = acc + 50 Case "soixante": acc = acc + 60 Case "cent": acc100 = acc acc = 100 flag100 = True Case "cents": acc100 = acc acc = 100 flag100 = True End Select lenparts = lenparts - 1 Wend If flag100 Then acc = acc100 + acc End If LettreToNumber = acc End Function
Dim Crypter() as Integer ,Lnom as Integer Dim nom as string , Nomcrypter as Long Nom=text1.Text Lnom=Len(Nom) Redim Crypter(Lnom) For i=1 to Lnom Crypter(i)=Asc(Mid(Nom,i,1)) nomcrypter=nomcrypter & crypter(i) text1=nomcrypter Next i