Como converter um valor numérico em palavras portuguesas no Excel

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

Sumário
Este artigo contém exemplos de funções do Microsoft Visual Basic for Applicationsque pode utilizar para converter um valor numérico numa folha de cálculo do Microsoft Excel no seu equivalente em palavras em português.
Mais Informação
A Microsoft fornece exemplos de programação apenas a título informativo, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador conhece a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Como criar a função de exemplo denominada EscreverNumero

  1. Inicie o Microsoft Excel.
  2. Prima ALT+F11 para iniciar o editor do Visual Basic.
  3. No menu Insert, clique em Module.
  4. Escreva o seguinte código na folha do módulo.
    Option Explicit'Main FunctionFunction SpellNumber(ByVal MyNumber)    Dim Dollars, Cents, Temp    Dim DecimalPlace, Count    ReDim Place(9) As String    Place(2) = " Thousand "    Place(3) = " Million "    Place(4) = " Billion "    Place(5) = " Trillion "    ' String representation of amount.    MyNumber = Trim(Str(MyNumber))    ' Position of decimal place 0 if none.    DecimalPlace = InStr(MyNumber, ".")    ' Convert cents and set MyNumber to dollar amount.    If DecimalPlace > 0 Then        Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _                  "00", 2))        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))    End If    Count = 1    Do While MyNumber <> ""        Temp = GetHundreds(Right(MyNumber, 3))        If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars        If Len(MyNumber) > 3 Then            MyNumber = Left(MyNumber, Len(MyNumber) - 3)        Else            MyNumber = ""        End If        Count = Count + 1    Loop    Select Case Dollars        Case ""            Dollars = "No Dollars"        Case "One"            Dollars = "One Dollar"         Case Else            Dollars = Dollars & " Dollars"    End Select    Select Case Cents        Case ""            Cents = " and No Cents"        Case "One"            Cents = " and One Cent"              Case Else            Cents = " and " & Cents & " Cents"    End Select    SpellNumber = Dollars & CentsEnd Function      ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber)    Dim Result As String    If Val(MyNumber) = 0 Then Exit Function    MyNumber = Right("000" & MyNumber, 3)    ' Convert the hundreds place.    If Mid(MyNumber, 1, 1) <> "0" Then        Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "    End If    ' Convert the tens and ones place.    If Mid(MyNumber, 2, 1) <> "0" Then        Result = Result & GetTens(Mid(MyNumber, 2))    Else        Result = Result & GetDigit(Mid(MyNumber, 3))    End If    GetHundreds = ResultEnd Function      ' Converts a number from 10 to 99 into text. Function GetTens(TensText)    Dim Result As String    Result = ""           ' Null out the temporary function value.    If Val(Left(TensText, 1)) = 1 Then   ' If value between 10-19...        Select Case Val(TensText)            Case 10: Result = "Ten"            Case 11: Result = "Eleven"            Case 12: Result = "Twelve"            Case 13: Result = "Thirteen"            Case 14: Result = "Fourteen"            Case 15: Result = "Fifteen"            Case 16: Result = "Sixteen"            Case 17: Result = "Seventeen"            Case 18: Result = "Eighteen"            Case 19: Result = "Nineteen"            Case Else        End Select    Else                                 ' If value between 20-99...        Select Case Val(Left(TensText, 1))            Case 2: Result = "Twenty "            Case 3: Result = "Thirty "            Case 4: Result = "Forty "            Case 5: Result = "Fifty "            Case 6: Result = "Sixty "            Case 7: Result = "Seventy "            Case 8: Result = "Eighty "            Case 9: Result = "Ninety "            Case Else        End Select        Result = Result & GetDigit _            (Right(TensText, 1))  ' Retrieve ones place.    End If    GetTens = ResultEnd Function     ' Converts a number from 1 to 9 into text. Function GetDigit(Digit)    Select Case Val(Digit)        Case 1: GetDigit = "One"        Case 2: GetDigit = "Two"        Case 3: GetDigit = "Three"        Case 4: GetDigit = "Four"        Case 5: GetDigit = "Five"        Case 6: GetDigit = "Six"        Case 7: GetDigit = "Seven"        Case 8: GetDigit = "Eight"        Case 9: GetDigit = "Nine"        Case Else: GetDigit = ""    End SelectEnd Function					

Como utilizar a função de exemplo EscreverNúmero

Para utilizar as funções de exemplo para converter um número em texto, utilize um dos métodos demonstrados nos seguintes exemplos:

Método 1: Introdução Direta

Pode alterar 32,50 para "Trinta e Dois Euros e Cinquenta Cêntimos" introduzindo a seguinte fórmula numa célula:
=EscreverNúmero(32,50)

Método 2: Referência da célula

Pode referenciar outras células da folha de cálculo. Por exemplo, introduza o número 32,50 na célula A1 e escreva a seguinte fórmula noutra célula:
=EscreverNúmero(A1)

Método 3: Inserir função

Para utilizar Inserir função, siga os passos seguintes:


Excel 2003:
  1. Seleccione a célula pretendida.
  2. Clique em Inserir Função na barra de ferramentas Padrão.
  3. Em Ou seleccione uma categoria, clique em Definidas pelo Utilizador.
  4. Na lista Seleccione uma função, clique em EscreverNumero e clique em OK.
  5. Introduza o número ou a referência da célula que pretende e clique em OK.

Excel 2007 e 2010:
  1. Seleccione a célula pretendida.
  2. Clique em Inserir Função no friso Fórmulas.
  3. Em Ou seleccione uma categoria, clique em Definidas pelo Utilizador.
  4. Na lista Seleccione uma Função, clique em EscreverNúmero e clique em OK.
  5. Introduza o número ou a referência da célula que pretende e clique em OK.



XL2003 XL2007 XL2010 Number Numbers Currency spell 
Nota Este é um artigo de “PUBLICAÇÃO RÁPIDA” criado directamente a partir da organização de suporte da Microsoft. As informações contidas neste artigo são fornecidas “tal como estão” em resposta a problemas recentes. Devido à urgência em disponibilizar este artigo, os materiais poderão incluir erros tipográficos e ser revistos em qualquer altura sem aviso prévio. Consulte os Termos de Utilização para outras considerações.
Propriedades

ID do Artigo: 213360 - Última Revisão: 10/29/2015 14:08:00 - Revisão: 2.0

Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010, Excel 2016, Microsoft Excel 2013

  • kbdtacode kbhowto kbprogramming KB213360
Comentários