Converter um numero para extenso adaptado ao Euro - JJoão (03/2002)
Exemplo que converte um numero até 999.999.999,99 em extenso, parametrizável para outras moedas incluindo o Euro, claro. Pode ser adaptado para ser
usado com o Word
Adaptação para o Word: Duas macros que em conjunto com o código do extenso para o Excel permite traduzir um numérico para extenso, todas as macros
podem ser colocadas no normal.dot dentro de um modulo, associe uma tecla de atalho para as macros.
Para traduzir basta seleccionar o valor e executar uma das macros, o valor pode estar assim 1.200,00 ou assim 1200,00 que será a mesma coisa, terá que levar em conta que as macros tomam como
separador decimal a virgula, eliminando todos os pontos encontrados.
Esta irá substituir no documento o valor seleccionado pelo seu extenso:
Sub TraduzParaExtenso_Substituir()
Dim num As Double
Dim anterior
On Error GoTo Erro
anterior = Selection.Text
With Selection.Find
.Text = "."
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll, Forward:=True
End With
num = Format(Selection.Text, "#.00")
If IsNumeric(num) = True Then Selection.Text = xExtenso(num) & " "
Exit Sub
Erro:
Selection.Text = anterior
MsgBox Err.Description
End Sub
Esta macro adiciona o extenso ao documento logo a seguir ao valor p.ex: 1.200,00 (mil duzentos euro(s) )
Sub TraduzParaExtenso_Inserir()
Dim num As Double
Dim anterior
On Error GoTo Erro
anterior = Selection.Text
With Selection.Find
.Text = "."
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll, Forward:=True
End With
num = Format(Selection.Text, "#.00")
If IsNumeric(num) = True Then
Selection.Text = anterior
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=" (" & xExtenso(num) & ") "
End If
Exit Sub
Erro:
Selection.Text = anterior
MsgBox Err.Description
End Sub
|