Ir para conteúdo
Fórum Script Brasil
  • 0

Data E Valores Por Extenso


Markinhuu

Pergunta

11 respostass a esta questão

Posts Recomendados

  • 0
Salve Brother...

Então...eu respondi um post com essa mesma dúvida há um bom tempinho atrás cara....Dê uma olhadinha nele

Data por extenso wink.gif

Ah...

Se quiser saber mais de como trabalhar com Datas, faça uma busca aqui no fórum ou visite a nossa Lista de Sites wink.gif

Abraços,

William Rodrigues

vlw brother william

a respeito de valores.. teria como ajudar ?

Link para o comentário
Compartilhar em outros sites

  • 0

Rascunhei essa função aqui (coloque em um módulo):

Public Function PorExtenso(ByVal valor As String) As String
    Dim s As String
    s = Replace(valor, "R$ ", "")
    partes = Split(s, ",")
    If partes(0) = "1" Then
        nome1 = " real"
    Else
        nome1 = " reais"
    End If
    
    If partes(1) = "01" Then
        nome2 = " centavo"
    Else
        nome2 = " centavos"
    End If
    PorExtenso = partes(0) & nome1 & " e " & partes(1) & nome2
End Function
Ela não está completa, mas já pra ter uma idéia. Um exemplo de uso:
msgbox porextenso("R$ 5,24")

Agora... isso é por extenso??? blink.gif Não seria algo do tipo "cinco reais e vinte e quatro centavos"? Que eu saiba isso é por extenso.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Ótima função brother...
Agora... isso é por extenso???  Não seria algo do tipo "cinco reais e vinte e quatro centavos"? Que eu saiba isso é por extenso.

Eu vi mas deixei queto...não quero comprar mal entendido com ninguém...deixa prá lá vai...

Abraços,

William Rodrigues

sobre o extenso... fiz o exemplo para ajudar no meu pedido... e não deixa d ser por extenso tb..

obrigado ae pela ajuda

[]s

Link para o comentário
Compartilhar em outros sites

  • 0
Ótima função brother...
Agora... isso é por extenso???  Não seria algo do tipo "cinco reais e vinte e quatro centavos"? Que eu saiba isso é por extenso.

Eu vi mas deixei queto...não quero comprar mal entendido com ninguém...deixa prá lá vai...

Abraços,

William Rodrigues

sobre o extenso... fiz o exemplo para ajudar no meu pedido... e não deixa d ser por extenso tb..

obrigado ae pela ajuda

[]s

Sem problemas. biggrin.gif . Apenas é que vejo mais gente procurando rotinas do tipo extenso "cinco reais e vinte e quatro centavos" e achei que talvez fosse essa que você estivesse procurando.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Ótima função brother...
Agora... isso é por extenso???  Não seria algo do tipo "cinco reais e vinte e quatro centavos"? Que eu saiba isso é por extenso.

Eu vi mas deixei queto...não quero comprar mal entendido com ninguém...deixa prá lá vai...

Abraços,

William Rodrigues

sobre o extenso... fiz o exemplo para ajudar no meu pedido... e não deixa d ser por extenso tb..

obrigado ae pela ajuda

[]s

Sem problemas. biggrin.gif . Apenas é que vejo mais gente procurando rotinas do tipo extenso "cinco reais e vinte e quatro centavos" e achei que talvez fosse essa que você estivesse procurando.

Abraços,

Graymalkin

eu queria a sua explicação de rotina mesmo , + na hora do exemplo q citei coloquei pra pessoa se ligar no q eu estava falando...

obrigado mesmo brother...

[]s

wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0
eu queria a sua explicação de rotina mesmo , + na hora do exemplo q citei coloquei pra pessoa se ligar no q eu estava falando...

Beleza cara...

Te compreendemos...

Mas æ...nada pessoal nem nada cara...

Espero que entenda !

Abraços,

William Rodrigues

po brother jamais... somos uma família aki

intuito de ajudar o próximo...

Link para o comentário
Compartilhar em outros sites

  • 0

Ah brother....

Dê uma olhadinha nesta função....

Num módulo:

Public Function Extenso(ByVal Valor As _
       Double, ByVal MoedaPlural As _
       String, ByVal MoedaSingular As _
       String) As String
  Dim StrValor As String, Negativo As Boolean
  Dim Buf As String, Parcial As Integer
  Dim Posicao As Integer, Unidades
  Dim Dezenas, Centenas, PotenciasSingular
  Dim PotenciasPlural

  Negativo = (Valor < 0)
  Valor = Abs(CDec(Valor))
  If Valor Then
    Unidades = Array(vbNullString, "Um", "Dois", _
               "Três", "Quatro", "Cinco", _
               "Seis", "Sete", "Oito", "Nove", _
               "Dez", "Onze", "Doze", "Treze", _
               "Quatorze", "Quinze", "Dezesseis", _
               "Dezessete", "Dezoito", "Dezenove")
    Dezenas = Array(vbNullString, vbNullString, _
              "Vinte", "Trinta", "Quarenta", _
              "Cinqüenta", "Sessenta", "Setenta", _
              "Oitenta", "Noventa")
    Centenas = Array(vbNullString, "Cento", _
               "Duzentos", "Trezentos", _
               "Quatrocentos", "Quinhentos", _
               "Seiscentos", "Setecentos", _
               "Oitocentos", "Novecentos")
    PotenciasSingular = Array(vbNullString, " Mil", _
                        " Milhão", " Bilhão", _
                        " Trilhão", " Quatrilhão")
    PotenciasPlural = Array(vbNullString, " Mil", _
                      " Milhões", " Bilhões", _
                      " Trilhões", " Quatrilhões")

    StrValor = Left(Format(Valor, String(18, "0") & _
               ".000"), 18)
    For Posicao = 1 To 18 Step 3
      Parcial = Val(Mid(StrValor, Posicao, 3))
      If Parcial Then
        If Parcial = 1 Then
          Buf = "Um" & PotenciasSingular((18 - _
                Posicao) \ 3)
        ElseIf Parcial = 100 Then
          Buf = "Cem" & PotenciasSingular((18 - _
                Posicao) \ 3)
        Else
          Buf = Centenas(Parcial \ 100)
          Parcial = Parcial Mod 100
          If Parcial <> 0 And Buf <> vbNullString Then
            Buf = Buf & " e "
          End If
          If Parcial < 20 Then
            Buf = Buf & Unidades(Parcial)
          Else
            Buf = Buf & Dezenas(Parcial \ 10)
            Parcial = Parcial Mod 10
            If Parcial <> 0 And Buf <> vbNullString Then
              Buf = Buf & " e "
            End If
            Buf = Buf & Unidades(Parcial)
          End If
          Buf = Buf & PotenciasPlural((18 - Posicao) \ 3)
        End If
        If Buf <> vbNullString Then
          If Extenso <> vbNullString Then
            Parcial = Val(Mid(StrValor, Posicao, 3))
            If Posicao = 16 And (Parcial < 100 Or _
                (Parcial Mod 100) = 0) Then
              Extenso = Extenso & " e "
            Else
              Extenso = Extenso & ", "
            End If
          End If
          Extenso = Extenso & Buf
        End If
      End If
    Next
    If Extenso <> vbNullString Then
      If Negativo Then
        Extenso = "Menos " & Extenso
      End If
      If Int(Valor) = 1 Then
        Extenso = Extenso & " " & MoedaSingular
      Else
        Extenso = Extenso & " " & MoedaPlural
      End If
    End If
    Parcial = Int((Valor - Int(Valor)) * _
              100 + 0.1)
    If Parcial Then
      Buf = Extenso(Parcial, "Centavos", _
            "Centavo")
      If Extenso <> vbNullString Then
        Extenso = Extenso & " e "
      End If
      Extenso = Extenso & Buf
    End If
  End If
End Function
E para chamar a função use:
Dim sRet As String
Dim dValor As Double
dValor = 1500.50
sRet = Extenso(dValor, "Reais", "Real")
MsgBox sRet

Testa aí e vê no que te ajuda wink.gif

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...