Código da Fórmula Extenso do Excell

1018 palavras 5 páginas
Function Extenso(dValor AsDouble) AsString
Dim sMoeda AsString
Dim dCents AsVariant

'Se o valor for igual ou maior que 1 quatrilhão
'não será possível proceder com a função
If dValor > 999999999999999# Then Extenso = "valor muito grande"
ExitFunction
EndIf

'Se o valor for menor que 1 centavo, considerar-se-á zero para a função:
If dValor < 0.01 Then Extenso = "zero reais"
ExitFunction
EndIf

'Se o valor da unidade for igual a 1, a unidade está no singular
'Caso contrário, estará no plural.
If Fix(dValor) = 1 Then sMoeda = " real"
Else
sMoeda = " reais"
EndIf

'Remove os centavos dCents = dValor - Fix(dValor)

'Remove os centavos do valor dValor = dValor - CDbl(dCents)

'Chamar função de extenso para os centavos dCents = Centavos(CDbl(dCents) * 100)

'Caso a string seja diferente de branco e valor seja maior ou igual a 1
If dCents vbNullString And dValor >= 1 Then
'acrescentar uma vírgula antes do extenso dCents = " e "& dCents
EndIf
'Iniciar o processo de conversao dos valores longos sMoeda = Trim(Trilhões(dValor)) & sMoeda & dCents sMoeda = Replace(sMoeda, ", e", " e") sMoeda = Replace(sMoeda, ", r", " r")
If Left(sMoeda, 2) = "e "Then sMoeda = Mid(sMoeda, 3, Len(sMoeda))
'ElseIf Left(sMoeda, 5) = "mil e" Then
'sMoeda = Mid(sMoeda, 5, Len(sMoeda))
EndIf
Extenso = sMoeda
EndFunction

PrivateFunction Centavos(dValor AsDouble) AsString

'Passa o valor para base decimal dValor = Round(CDbl(dValor / 100), 2)

'Se for um centavo, escrever valor e sair da função
If dValor = 0.01 Then Centavos = "um centavo"
ExitFunction
EndIf

'Repassa valor para dezenas dValor = dValor * 100

'Se nao houver dezenas no valor passado
If Dezenas(dValor) = vbNullString Then
'a string centavos fica em branco Centavos = vbNullString
Else
'caso contrário, passar extenso das dezenas e concatenar
'com a palavra centavos

Relacionados

  • Alternativas aos Softwares Proprietários
    10438 palavras | 42 páginas
  • ANALISE CRIMINAL CFS 2012 APOSTILA Unidades I II E III
    10956 palavras | 44 páginas
  • Celula
    47696 palavras | 191 páginas
  • Apostila Análise de Mercado
    17821 palavras | 72 páginas
  • Manual da monografia
    8180 palavras | 33 páginas
  • Analise de mercado
    10200 palavras | 41 páginas
  • Trabalho de adm
    16648 palavras | 67 páginas
  • Manual Estudos Trafego
    98776 palavras | 396 páginas
  • 20111024162406 cartilha conexao aprendiz
    29797 palavras | 120 páginas
  • 2 Tese Silviadotta Aprendizagem Dial Gica
    75463 palavras | 302 páginas