USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Número por Extenso
jcmweb
ARARAQUARA
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 11:57 hs            
Como que eu escrevo um número por extenso em um label por exemplo tem algum comando???
   
rdeletric
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 12:07 hs            

'FUNÇÃO:

Public Function numeroExtenso(vNumero As Variant, Optional bMoeda As Boolean = True) As String

    Dim iContador As Integer
    Dim iTamanho As Integer
   
    Dim sValor As String
    Dim sParte As String
    Dim sFinal As String
   
    If IsNull(vNumero) Or vNumero <= 0 Or vNumero > 9999999.99 Or Not IsNumeric(vNumero) Then Exit Function
   
    ReDim matGrupo(4), matTexto(4) As String

    ReDim matUnidades(19) As String
    matUnidades(1) = "Um "
    matUnidades(2) = "Dois "
    matUnidades(3) = "Tres "
    matUnidades(4) = "Quatro "
    matUnidades(5) = "Cinco "
    matUnidades(6) = "Seis "
    matUnidades(7) = "Sete "
    matUnidades(8) = "Oito "
    matUnidades(9) = "Nove "
    matUnidades(10) = "Dez "
    matUnidades(11) = "Onze "
    matUnidades(12) = "Doze "
    matUnidades(13) = "Treze "
    matUnidades(14) = "Quatorze "
    matUnidades(15) = "Quinze "
    matUnidades(16) = "Dezesseis "
    matUnidades(17) = "Dezessete "
    matUnidades(18) = "Dezoito "
    matUnidades(19) = "Dezenove "
   
    ReDim matDezenas(9) As String
    matDezenas(1) = "Dez "
    matDezenas(2) = "Vinte "
    matDezenas(3) = "Trinta "
    matDezenas(4) = "Quarenta "
    matDezenas(5) = "Cinquenta "
    matDezenas(6) = "Sessenta "
    matDezenas(7) = "Setenta "
    matDezenas(8) = "Oitenta "
    matDezenas(9) = "Noventa "
   
    ReDim matCentenas(9) As String
    matCentenas(1) = "Cento "
    matCentenas(2) = "Duzentos "
    matCentenas(3) = "Trezentos "
    matCentenas(4) = "Quatrocentos "
    matCentenas(5) = "Quinhentos "
    matCentenas(6) = "Seiscentos "
    matCentenas(7) = "Setecentos "
    matCentenas(8) = "Oitocentos "
    matCentenas(9) = "Novecentos "
   
    sValor = Format(vNumero, "0000000000.00")
    matGrupo(1) = Mid(sValor, 2, 3)
    matGrupo(2) = Mid(sValor, 5, 3)
    matGrupo(3) = Mid(sValor, 8, 3)
    matGrupo(4) = "0" + Mid(sValor, 12, 2)
   
    For iContador = 1 To 4

      sParte = matGrupo(iContador)

      iTamanho = Switch(Val(sParte) < 10, 1, Val(sParte) < 100, 2, Val(sParte) < 1000, 3)

      If iTamanho = 3 Then
        If Right(sParte, 2) <> "00" Then
          matTexto(iContador) = matTexto(iContador) + matCentenas(Left(sParte, 1)) + "e "
          iTamanho = 2
        Else
          matTexto(iContador) = matTexto(iContador) + IIf(Left(sParte, 1) = "1", "Cem ", _
          matCentenas(Left(sParte, 1)))
        End If
      End If

      If iTamanho = 2 Then
        If Val(Right(sParte, 2)) < 20 Then
          matTexto(iContador) = matTexto(iContador) + matUnidades(Right(sParte, 2))
        Else
          matTexto(iContador) = matTexto(iContador) + matDezenas(Mid(sParte, 2, 1))
          If Right(sParte, 1) <> "0" Then
            matTexto(iContador) = matTexto(iContador) + "e "
            iTamanho = 1
          End If
        End If
      End If

      If iTamanho = 1 Then
        matTexto(iContador) = matTexto(iContador) + matUnidades(Right(sParte, 1))
      End If

    Next

    If Val(matGrupo(1) + matGrupo(2) + matGrupo(3)) = 0 And Val(matGrupo(4)) <> 0 Then
      sFinal = matTexto(4) + IIf(Val(matGrupo(4)) = 1, "centavo", "centavos")
    Else
      sFinal = ""
      sFinal = sFinal + IIf(Val(matGrupo(1)) <> 0, matTexto(1) + IIf(Val(matGrupo(1)) > 1, _
               "milhões ", "milhão "), "")
     
      If Val(matGrupo(2) + matGrupo(3)) = 0 Then
        sFinal = sFinal + "de "
      Else
        sFinal = sFinal + IIf(Val(matGrupo(2)) <> 0, matTexto(2) + "Mil ", "")
      End If
     
      If Not bMoeda Then
          sFinal = sFinal + matTexto(3) + IIf(Val(matGrupo(4)) <> 0, "Virgula " + matTexto(4), "")
      Else
        sFinal = sFinal + matTexto(3) + IIf(Val(matGrupo(1) + matGrupo(2) + matGrupo(3)) = 1, " ", _
                  " ")
        sFinal = sFinal + IIf(Val(matGrupo(4)) <> 0, "e " + matTexto(4) + IIf(Val(matGrupo(4)) = 1, _
                 "centavo", "centavos"), "")
        End If

    End If

    numeroExtenso = sFinal

End Function

 

 

'**Chamada da Função

     
Label1.Caption = numeroExtenso(Text1.Text)

   
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
ENUNCIADA !
Postada em 26/10/2005 12:17 hs         
com a DLL Extens32.dll
 
Public Declare Function extenso Lib "Extens32.dll"(ByVal Valor As String, ByVal Retorno As String) As Integer
Public Function PassaExtenso(ValorII As Double) As String
  ' Passa um número para a DLL e
  ' recebe-o de volta por extenso
  On Error GoTo Passa_Err
  Dim Retorno$, x%
  Retorno$ = Space$(512)
  x% = extenso(ValorII, Retorno$)
  PassaExtenso = UCase(Trim$(Retorno$))
Passa_Fim:
  Exit Function
Passa_Err:
  MsgBox Error$(Err)
  Resume Passa_Fim
End Function
 
usar  ...
ucase(PassaExtenso(Valor_pago))
   
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 14:54 hs            
veja se serve esse aki irmao
 
Public Function Extenso_Monetario(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_Monetario <> vbNullString Then
           Parcial = Val(Mid(strValor, Posicao, 3))
           If Posicao = 16 And (Parcial < 100 Or _
               (Parcial Mod 100) = 0) Then
             Extenso_Monetario = Extenso_Monetario & " e "
           Else
             Extenso_Monetario = Extenso_Monetario & ", "
           End If
         End If
         Extenso_Monetario = Extenso_Monetario & Buf
       End If
     End If
   Next
   If Extenso_Monetario <> vbNullString Then
     If Negativo Then
       Extenso_Monetario = "Menos " & Extenso_Monetario
     End If
     If Int(VALOR) = 1 Then
       Extenso_Monetario = Extenso_Monetario & " " & MoedaSingular
     Else
       Extenso_Monetario = Extenso_Monetario & " " & MoedaPlural
     End If
   End If
   Parcial = Int((VALOR - Int(VALOR)) * _
             100 + 0.1)
   If Parcial Then
     Buf = Extenso_Monetario(Parcial, "Centavos", _
           "Centavo")
     If Extenso_Monetario <> vbNullString Then
       Extenso_Monetario = Extenso_Monetario & " e "
     End If
     Extenso_Monetario = Extenso_Monetario & Buf
   End If
End If
End Function
 
depois ponha isso no lost do txt
 
 
txtvalorentenso = Extenso_Monetario(txtvalor, "Reais", "Real")

Jesus Cristo é O Senhor!!!
   
Gboese
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 27/10/2005 13:43 hs            
Se vc não quiser escrever o código para transformar, pegue uma ocx aqui no VBWeb chamada TomCaixa... Com ela você consegue isso..
 
Abraços
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página