
Quem converter antes e quizer me enviar o código, fique a vontade!
Ops... o layout disto esta pessimo... qualquer hora arrumo, pelo menos agora esta postado a mensagem!
Código em VB.Net
'Valor Moeda para valor por Extenso
'Laércio - 11/11/2009
'Exemplo chamada = Extenso(CDbl(queryDocCancelados.FieldByName("valortotal").AsCurrency))
Function Extenso (Valor As Double) As String
If Valor <= 0 Or Valor > 999999999.99 Then
Exit Function
End If
'Variáveis
Dim vlsValor As String
Dim vlsParte As String
Dim vlsFinal As String
Dim vliContador As Double
Dim vliTamanho As Double
'Arrays
Dim alsGrupo() As String
ReDim alsGrupo(4)
Dim alsTexto() As String
ReDim alsTexto(4)
'Matrizes de extensos (Parciais)
Dim mlsUnidade() As String
ReDim mlsUnidade(19)
mlsUnidade(1) = "um ":
mlsUnidade(2) = "dois ":
mlsUnidade(3) = "três ":
mlsUnidade(4) = "quatro ":
mlsUnidade(5) = "cinco ":
mlsUnidade(6) = "seis ":
mlsUnidade(7) = "sete ":
mlsUnidade(8) = "oito ":
mlsUnidade(9) = "nove ":
mlsUnidade(10) = "dez ":
mlsUnidade(11) = "onze ":
mlsUnidade(12) = "doze ":
mlsUnidade(13) = "treze ":
mlsUnidade(14) = "quatorce ":
mlsUnidade(15) = "quinze ":
mlsUnidade(16) = "dezesseis ":
mlsUnidade(17) = "dezessete ":
mlsUnidade(18) = "dezoito ":
mlsUnidade(19) = "dezenove ":
Dim mlsDezena() As String
ReDim mlsDezena(9)
mlsDezena(1) = "dez ":
mlsDezena(2) = "vinte ":
mlsDezena(3) = "trinta ":
mlsDezena(4) = "quarenta ":
mlsDezena(5) = "cinqüenta ":
mlsDezena(6) = "sessenta ":
mlsDezena(7) = "setenta ":
mlsDezena(8) = "oitenta ":
mlsDezena(9) = "noventa ":
Dim mlsCentena() As String
ReDim mlsCentena(9)
mlsCentena(1) = "cento ":
mlsCentena(2) = "duzentos ":
mlsCentena(3) = "trezentos ":
mlsCentena(4) = "quatrocentos ":
mlsCentena(5) = "quinhentos ":
mlsCentena(6) = "seiscentos ":
mlsCentena(7) = "setecentos ":
mlsCentena(8) = "oitocentos ":
mlsCentena(9) = "novecentos ":
'Separa valor em grupos
vlsValor = Format(Valor,"0000000000.00") 'ToText(Valor, "0000000000.00")
alsGrupo(1) = Mid(vlsValor, 2, 3)
alsGrupo(2) = Mid(vlsValor, 5, 3)
alsGrupo(3) = Mid(vlsValor, 8, 3)
alsGrupo(4) = "0" + Mid(vlsValor, 12,2)
'Calcula cada Grupo
For vliContador = 1 To 4
vlsParte = alsGrupo(vliContador)
If Val(vlsParte) > 0 Then 'ToNumber(vlsParte) > 0 Then
'vliTamanho = Switch(Val(vlsParte) < vlitamanho =" 1" vlitamanho =" 2" vlitamanho =" 3" vlitamanho =" 3"> "00" Then
'alsTexto(vliContador) = alsTexto(vliContador) + mlsCentena(ToNumber(Left(vlsParte, 1))) + "e "
alsTexto(vliContador) = alsTexto(vliContador) + mlsCentena(Val(Left(vlsParte, 1))) + "e "
vliTamanho = 2
Else
'alsTexto(vliTamanho) = alsTexto(vliContador) + IIf(Left(vlsParte, 1) = "1", "cem ", mlsCentena(ToNumber(Left(vlsParte, 1))))
alsTexto(vliTamanho) = alsTexto(vliContador) + IIf(Left(vlsParte, 1) = "1", "cem ", mlsCentena(Val(Left(vlsParte, 1))))
End If
End If
If vliTamanho = 2 Then
If Val(Right(vlsParte, 2)) <> "0" Then
alsTexto(vliContador) = alsTexto(vliContador) + "e "
vliTamanho = 1
End If
End If
End If
If vliTamanho = 1 Then
'alsTexto(vliContador) = alsTexto(vliContador) + mlsUnidade(ToNumber(Right(vlsParte, 1)))
alsTexto(vliContador) = alsTexto(vliContador) + mlsUnidade(Val(Right(vlsParte, 1)))
End If
End If
Next
'Final
If Val(alsGrupo(1)+ alsGrupo(2) + alsGrupo(3) ) = 0 And Val(alsGrupo(4)) <> 0 Then
vlsFinal = alsTexto(4) + IIf (Val(alsGrupo(4)) = 1, "centavo", "centavos")
Else
vlsFinal = ""
vlsFinal = vlsFinal + IIf(Val(alsGrupo(1)) <> 0, alsTexto(1) + IIf(Val(alsGrupo(1)) > 1, "milhões ", "milhão "), "")
If Val(alsGrupo(2) + alsGrupo(3)) = 0 Then
vlsFinal = vlsFinal + "de "
Else
vlsFinal = vlsFinal + IIf(Val(alsGrupo(2)) <> 0 , alsTexto(2) + "mil ", "")
End If
vlsFinal = vlsFinal + alsTexto(3) + IIf(Val(alsGrupo(1) + alsGrupo(2) + alsGrupo(3)) = 1, "real ", "reais ")
vlsFinal = vlsFinal + IIf(Val(alsGrupo(4)) <> 0, "e " + alsTexto(4) + IIf(Val(alsGrupo(4)) = 1, "centavo", "centavos"), "")
End If
Extenso = UCase(Mid(vlsFinal, 1,1)) + LCase(Mid(vlsFinal, 2))
End Function




ferramentas de trabalho com ele.... ta meio precario no momento, segundo minha opinião...). Mas falta vontade de estudar.... e ainda to com um pouco de sono (ou séria somente preguiça pra começar a estudar ....).








graduação em banco de dados lá na PUC PR (que vou ver se faço ou não..., mas acho que sim....), vou para 