MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Valor de vendas por extenso 4 casas decimais

    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  beto.calculadora em 11/1/2018, 13:24

    Boa tarde,

    Tenho um bom tempo que utilizo access, mas sempre para soluções simples, como agenda, etc. No momento estou desenvolvendo um sistema de vendas, e tenho a necessidade que o recibo de vendas contenha o valor vendido exibido por extenso, meu problema é que preciso que ele consiga "ler" o valor com 4 casas decimais. Utilizei exemplos aqui do forum e funcionaram muito bem, mas todos q vi limitavam-se à 2 casas decimais. Como sou "barbeiro" em VBA, até q tentei completar o código, mas sem sucesso. Então se puderem me ajudar, agradeço!
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  Noobezinho em 12/1/2018, 12:55

    Olá Beto

    Que dureza, Isso heim?

    Valor moeda com 4 casas decimais nunca vi.

    veja um número decimal com 4 casas por extenso:

    45,4321
    Quarenta e cinco inteiros e quatro mil, trezentos e vinte e um décimos de milésimo (forma convencional, utilizada em textos legislativos);

    Como seria em moeda: R$ 45,4321

    Quarenta e cinco reais, quatro mil, trezentos e vinte e um décimos de milésimo de centavos.

    Para utilizar esse tipo de moeda no Access, você terá que desenvolver uma função.

    Posso saber onde irá utilizar isso?

    [ ]'s
    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  beto.calculadora em 12/1/2018, 13:32

    Boa tarde,

    A necessidade é para um sistema de registro de preços que será alimentado de plataformas que gerenciam pregões de compra de materiais diversos. Atualmente não há padrão, a depender da plataforma, são utilizadas duas, três ou quatro casa decimais.
    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  beto.calculadora em 12/1/2018, 13:35

    Consegui esse código aqui no MaximoAccess, ta funcionando perfeitamente, mas ele só reconhece até duas casas decimais.
    segue o código:

    Código:
    Option Compare Database

    Function Extenso95(nValor)
    If IsNull(nValor) Or nValor <= 0 Or nValor > 9999999.99 Then
    Exit Function
    End If
    Dim nContador, nTamanho As Integer
    Dim cValor, cParte, cFinal As String
    ReDim aGrupo(4), aTexto(4) As String
    ReDim aUnid(19) As String
    aUnid(1) = "UM ": aUnid(2) = "DOIS ": aUnid(3) = "TRES "
    aUnid(4) = "QUATRO ": aUnid(5) = "CINCO ": aUnid(6) = "SEIS "
    aUnid(7) = "SETE ": aUnid(8) = "OITO ": aUnid(9) = "NOVE "
    aUnid(10) = "DEZ ": aUnid(11) = "ONZE ": aUnid(12) = "DOZE "
    aUnid(13) = "TREZE ": aUnid(14) = "QUATORZE ": aUnid(15) = "QUINZE "
    aUnid(16) = "DEZESSEIS ": aUnid(17) = "DEZESSETE ": aUnid(18) = "DEZOITO "
    aUnid(19) = "DEZENOVE "
    ReDim aDezena(9) As String
    aDezena(1) = "DEZ ": aDezena(2) = "VINTE ": aDezena(3) = "TRINTA "
    aDezena(4) = "QUARENTA ": aDezena(5) = "CINQUENTA "
    aDezena(6) = "SESSENTA ": aDezena(7) = "SETENTA ": aDezena(8) = "OITENTA "
    aDezena(9) = "NOVENTA "
    ReDim aCentena(9) As String
    aCentena(1) = "CENTO ": aCentena(2) = "DUZENTOS "
    aCentena(3) = "TREZENTOS ": aCentena(4) = "QUATROCENTOS "
    aCentena(5) = "QUINHENTOS ": aCentena(6) = "SEISCENTOS "
    aCentena(7) = "SETECENTOS ": aCentena(8) = "OITOCENTOS "
    aCentena(9) = "NOVECENTOS "
    cValor = Format$(nValor, "0000000000.00")
    aGrupo(1) = Mid$(cValor, 2, 3)
    aGrupo(2) = Mid$(cValor, 5, 3)
    aGrupo(3) = Mid$(cValor, 8, 3)
    aGrupo(4) = "0" + Mid$(cValor, 12, 2)
    For nContador = 1 To 4
    cParte = aGrupo(nContador)
    nTamanho = Switch(Val(cParte) < 10, 1, Val(cParte) < 100, 2, Val(cParte) < 1000, 3)
    If nTamanho = 3 Then
    If Right$(cParte, 2) <> "00" Then
    aTexto(nContador) = aTexto(nContador) + aCentena(Left(cParte, 1)) + "E "
    nTamanho = 2
    Else
    aTexto(nContador) = aTexto(nContador) + IIf(Left$(cParte, 1) = "1", "CEM ", aCentena(Left(cParte, 1)))
    End If
    End If
    If nTamanho = 2 Then
    If Val(Right(cParte, 2)) < 20 Then
    aTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 2))
    Else
    aTexto(nContador) = aTexto(nContador) + aDezena(Mid(cParte, 2, 1))
    If Right$(cParte, 1) <> "0" Then
    aTexto(nContador) = aTexto(nContador) + "E "
    nTamanho = 1
    End If
    End If
    End If
    If nTamanho = 1 Then
    aTexto(nContador) = aTexto(nContador) + aUnid(Right(cParte, 1))
    End If
    Next
    If Val(aGrupo(1) + aGrupo(2) + aGrupo(3)) = 0 And Val(aGrupo(4)) <> 0 Then
    cFinal = aTexto(4) + IIf(Val(aGrupo(4)) = 1, "CENTAVO", "CENTAVOS")
    Else
    cFinal = ""
    cFinal = cFinal + IIf(Val(aGrupo(1)) <> 0, aTexto(1) + IIf(Val(aGrupo(1)) > 1, IIf(aGrupo(2) Mod 100 = 0, "MILHÕES ", "MILHÕES, "), IIf(aGrupo(2) Mod 100 = 0, "MILHÃO E ", IIf(aGrupo(2) = 0 And aGrupo(3) = 0, "MILHÃO ", "MILHÃO, "))), "")
    If Val(aGrupo(2) + aGrupo(3)) = 0 Then
    cFinal = cFinal + "DE "
    Else
    If Val(aGrupo(3)) = 0 Then
    cFinal = cFinal + IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL ", "")
    Else
    cFinal = cFinal + IIf(Val(aGrupo(3)) Mod 100 = 0 And aGrupo(4) = 0, IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL E ", ""), IIf(Val(aGrupo(2)) <> 0, aTexto(2) + "MIL, ", ""))
    End If
    End If
    cFinal = cFinal + aTexto(3) + IIf(Val(aGrupo(1) + aGrupo(2) + aGrupo(3)) = 1, "REAL ", "REAIS ")
    cFinal = cFinal + IIf(Val(aGrupo(4)) <> 0, "E " + aTexto(4) + IIf(Val(aGrupo(4)) = 1, "CENTAVO", "CENTAVOS"), "")
    End If
    Extenso95 = cFinal
    End Function
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3633
    Registrado : 29/06/2012

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  Noobezinho em 12/1/2018, 13:59

    exato

    Para 2 casa decimais, tem em toda internet.

    Baseando-se nesse código, você pode fazer para 3 e 4 casas decimais

    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  beto.calculadora em 12/1/2018, 14:40

    Como disse na mensagem, até tentei montar, mas sou muito verde em Vba, fiz varias tentativas mas sempre dá algum erro. Se alguem tiver sugestão de video explicando como faz c duas casas, talvez eu pegue o gancho e consiga completar. Falei do video pq o código simplesmente copiei e colei.
    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  beto.calculadora em 15/1/2018, 12:59

    Boa tarde,

    Continuo tentando acrescentar o restante do código, mas sem sucesso. Alguns dos nobres colegas não poderia me ajudar completando esse código, de modo que ele possa colocar por extenso até 4 casas decimais?

    Obrigado
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6817
    Registrado : 15/03/2013

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  ahteixeira em 19/1/2018, 09:53

    Olá a todos

    Adalberto Canuto, é como o colega Noob referiu é só por a "mão na massa".

    No entanto, fiz uma adatação de um extenso que já cá está no fórum, veja link abaixo se é o que pretende:
    https://www.maximoaccess.com/t23414-valor-por-extenso-em-euros-eur-sem-dll

    Abraço a todos
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6817
    Registrado : 15/03/2013

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  ahteixeira em 12/2/2018, 12:10

    Olá a todos

    Adalberto Canuto como ficou a situação?
    Os membros do fórum merecem e agradecem o retorno.

    Caso a dúvida esteja esclarecida, não se esqueça de dar o tópico como Resolvido, veja como fazer:
    https://www.maximoaccess.com/t860-resolucao-de-topicos

    Abraço a todos

    avatar
    beto.calculadora
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 11/01/2018

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Agradecimento a todos

    Mensagem  beto.calculadora em 11/7/2020, 16:25

    Desculpem a falta de cortesia e respeito aos membros do Forum, acabei não dando retorno ao tópico.
    O cliente ficou satisfeito penas com as duas casas decimais, até pq não consegui desenvolver o restante do código, pois minha habilidade em VBA ainda é muito pequena.

    Obrigado a todos pela ajuda!
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6817
    Registrado : 15/03/2013

    [Resolvido]Valor de vendas por extenso 4 casas decimais Empty Re: [Resolvido]Valor de vendas por extenso 4 casas decimais

    Mensagem  ahteixeira em 11/7/2020, 19:53

    cheers

      Data/hora atual: 6/8/2020, 16:49