Você está na página 1de 4

Function Val2 (tx) ' retorna o val com as casas decimais de valores como 55,55 ou 55.

55 v1 = Val(tx) ' parte inteira x1 = InStr(tx, ",") If x1 <> 0 Then v1 = v1 + (Val(Mid(tx, x1 + 1, 2)) / 100) End If 'x2 = InStr(tx, ".") 'If x1 <> 0 Then ' v1 = v1 + (Val(Mid(tx, x2 + 1, 2)) / 100) 'End If Val2 = v1 End Function Function Val3 (tx) ' trasnforma de , para ponto . tx = Trim(tx) x1 = InStr(tx, ",") 'MsgBox (tx) v1h = tx If x1 <> 0 Then v1h = Mid(tx, 1, x1 - 1) + "." + Mid(tx, x1 + 1, 2) End If Val3 = Val(v1h) End Function Function extenso (mnumext) extenso2 = "" num = Val(Format(mnumext, "################.00")) 'MsgBox (Str(num)) ' inverte para sistema nacional If True Then '123.434,56 mvalor2 = "" flag = False For t = 1 To mnumext If Mid(mnumext, t, 1) = "," Then 'decimal flag = True t=t+1 End If If flag Then mvalor2 = mvalor2 + Mid(mnumext, t, 1) End If Next t If flag Then 'MsgBox (mvalor2) num = num + (Val(mvalor2) / 100) End If End If 'Dim num As Double 'programa de escrita em extenso ReDim extenvet(5, 10) As String

extenvet(1, 1) = "um" extenvet(1, 2) = "dois" extenvet(1, 3) = "trs" extenvet(1, 4) = "quatro" extenvet(1, 5) = "cinco" extenvet(1, 6) = "seis" extenvet(1, 7) = "sete" extenvet(1, 8) = "oito" extenvet(1, 9) = "nove" extenvet(2, 1) = "dez" extenvet(2, 2) = "vinte" extenvet(2, 3) = "trinta" extenvet(2, 4) = "quarenta" extenvet(2, 5) = "cinqenta" extenvet(2, 6) = "sessenta" extenvet(2, 7) = "setenta" extenvet(2, 8) = "oitenta" extenvet(2, 9) = "noventa" extenvet(3, 1) = "cento" extenvet(3, 2) = "duzentos" extenvet(3, 3) = "trezentos" extenvet(3, 4) = "quatrocentos" extenvet(3, 5) = "quinhentos" extenvet(3, 6) = "seiscentos" extenvet(3, 7) = "setecentos" extenvet(3, 8) = "oitocentos" extenvet(3, 9) = "novecentos" extenvet(5, 1) = "onze" extenvet(5, 2) = "doze" extenvet(5, 3) = "treze" extenvet(5, 4) = "quatorze" extenvet(5, 5) = "quinze" extenvet(5, 6) = "dezesseis" extenvet(5, 7) = "dezessete" extenvet(5, 8) = "dezoito" extenvet(5, 9) = "dezenove"

'MsgBox (Str(num)) mflag = False 'reais mflag2 = False 'centavos For k = 10 To 0 Step -1 numk = 1 For t = 1 To k numk = numk * 10 Next t 'MsgBox (numk) mmod = Int(num / numk) If mmod >= 1 Then mflag = True

'num = Format(num - (mmod * numk), "#################.00") num = num - (mmod * numk) num = num + .001 'MsgBox (Str(num)) 'extenso2 = extenso2 + Str(num) pos = k + 1 'MsgBox (Str(mmod) + " - " + Str(pos)) Do While (pos) >= 3 pos = pos - 3 Loop If pos = 0 Then pos = 3 End If 'MsgBox (" posicao final = " + Str(pos)) '11-19 If pos = 2 And mmod = 1 Then numk = 1 For t = 1 To k - 1 numk = numk * 10 Next t 'MsgBox (numk) mmod = Int(num / numk) extenso2 = extenso2 + " " + extenvet(5, mmod) If mmod = 0 Then extenso2 = extenso2 + "dez" Else End If num = Format(num - (mmod * numk), "#################.00") k=k-1 Else extenso2 = extenso2 + " " + extenvet(pos, mmod) End If End If If k = 3 And mflag Then extenso2 = extenso2 + " mil " End If If k = 6 And mflag Then extenso2 = extenso2 + " milhes " End If If k = 0 And mflag Then mflag3 = True If Not mflag2 Then extenso2 = extenso2 + " reais " mflag3 = False End If mflag2 = True num = Int(num * 100) If num <> 0 Then k=2 Else If mflag3 Then extenso2 = extenso2 + " centavos " End If End If

End If Next k extenso2 = extenso2 + "." 'MsgBox (extenso2) extenso = UCase(Mid(extenso2, 1, 1)) + Mid(extenso2, 2, 1000) 'MsgBox (extenso) End Function

Você também pode gostar