Como passar um número por extenso no Excel?
Para exibir números por extenso no Excel, use a função SpellNumber. Em uma célula vazia, insira =SpellNumber(A1)
, substituindo A1 pela célula com o número a ser convertido. Alternativamente, use =SpellNumber(valor)
, inserindo o número diretamente. Pressione Enter.
Desvende o Segredo dos Números por Extenso no Excel: Uma Abordagem Completa e Exclusiva
Você já se viu precisando transformar valores numéricos em suas representações por extenso no Excel? Seja para preenchimento de cheques, elaboração de relatórios financeiros detalhados ou simplesmente para dar um toque de formalidade à sua planilha, essa habilidade pode ser incrivelmente útil.
Embora o Excel não ofereça uma função nativa para isso, não se preocupe! Apresentamos uma solução engenhosa e fácil de implementar que vai te permitir converter números em texto de maneira rápida e eficiente. Esqueça as complicações e prepare-se para dominar essa técnica valiosa!
O Desafio da Conversão Numérica no Excel
O Excel é uma ferramenta poderosa para cálculos e manipulação de dados, mas sua funcionalidade de conversão de números por extenso é limitada. A necessidade de escrever números em texto surge frequentemente em contextos como:
- Preenchimento de Cheques: As instituições financeiras exigem a representação do valor tanto em números quanto por extenso.
- Documentos Financeiros: Relatórios, contratos e outros documentos formais exigem precisão e clareza, incluindo a descrição dos valores por extenso.
- Personalização de Planilhas: Adicionar um toque profissional e informativo às suas planilhas.
A Solução Elegante: A Função SpellNumber Personalizada
A chave para resolver este problema é criar uma função personalizada no Excel utilizando o Visual Basic for Applications (VBA). Essa função, que chamaremos de “SpellNumber”, fará a mágica da conversão.
Passo a Passo para Criar a Função SpellNumber
-
Acesse o Editor VBA:
- Abra o Excel e pressione
Alt + F11
para abrir o editor VBA.
- Abra o Excel e pressione
-
Insira um Novo Módulo:
- No editor VBA, vá em
Inserir > Módulo
.
- No editor VBA, vá em
-
Cole o Código VBA:
- Copie e cole o seguinte código no módulo:
Function SpellNumber(ByVal MyNumber) As String
Dim DecimalPlace, Count
Dim ReturnString As String
' Converte MyNumber para string.
MyNumber = Trim(Str(MyNumber))
' Determina a posição da casa decimal.
DecimalPlace = InStr(1, MyNumber, ".")
' Se houver casa decimal, remove-a.
If DecimalPlace > 0 Then
MyNumber = Left(MyNumber, DecimalPlace - 1)
End If
' Inicializa as variáveis.
Count = 1
Do While MyNumber <> ""
Select Case Count
Case 1:
Place = " "
Case 2:
Place = " mil "
Case 3:
Place = " milhão "
Case 4:
Place = " bilhão "
End Select
Num = Right(MyNumber, 3)
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
If Val(Num) <> 0 Then
ReturnString = TranslateThree(Num) & Place & ReturnString
End If
Count = Count + 1
Loop
' Trata casos especiais
If Trim(ReturnString) = "" Then
ReturnString = "zero"
End If
SpellNumber = Trim(ReturnString)
End Function
Function TranslateThree(ByVal MyNumber) As String
Dim ReturnString As String
Dim Hundreds, Tens, Ones
' Extrai as centenas, dezenas e unidades.
Hundreds = Int(MyNumber / 100)
Tens = Int((MyNumber Mod 100) / 10)
Ones = MyNumber Mod 10
' Traduz as centenas.
If Hundreds > 0 Then
ReturnString = TranslateHundreds(Hundreds) & " e "
End If
' Traduz as dezenas e unidades.
If Tens > 1 Then
ReturnString = ReturnString & TranslateTens(Tens)
If Ones > 0 Then
ReturnString = ReturnString & " e " & TranslateOnes(Ones)
End If
Else
If Tens = 1 Then
ReturnString = ReturnString & TranslateTeens(Ones)
Else
If Ones > 0 Then
ReturnString = ReturnString & TranslateOnes(Ones)
End If
End If
End If
TranslateThree = ReturnString
End Function
Function TranslateHundreds(ByVal Number) As String
Select Case Number
Case 1: TranslateHundreds = "cento"
Case 2: TranslateHundreds = "duzentos"
Case 3: TranslateHundreds = "trezentos"
Case 4: TranslateHundreds = "quatrocentos"
Case 5: TranslateHundreds = "quinhentos"
Case 6: TranslateHundreds = "seiscentos"
Case 7: TranslateHundreds = "setecentos"
Case 8: TranslateHundreds = "oitocentos"
Case 9: TranslateHundreds = "novecentos"
End Select
End Function
Function TranslateTens(ByVal Number) As String
Select Case Number
Case 2: TranslateTens = "vinte"
Case 3: TranslateTens = "trinta"
Case 4: TranslateTens = "quarenta"
Case 5: TranslateTens = "cinquenta"
Case 6: TranslateTens = "sessenta"
Case 7: TranslateTens = "setenta"
Case 8: TranslateTens = "oitenta"
Case 9: TranslateTens = "noventa"
End Select
End Function
Function TranslateTeens(ByVal Number) As String
Select Case Number
Case 0: TranslateTeens = "dez"
Case 1: TranslateTeens = "onze"
Case 2: TranslateTeens = "doze"
Case 3: TranslateTeens = "treze"
Case 4: TranslateTeens = "quatorze"
Case 5: TranslateTeens = "quinze"
Case 6: TranslateTeens = "dezesseis"
Case 7: TranslateTeens = "dezessete"
Case 8: TranslateTeens = "dezoito"
Case 9: TranslateTeens = "dezenove"
End Select
End Function
Function TranslateOnes(ByVal Number) As String
Select Case Number
Case 1: TranslateOnes = "um"
Case 2: TranslateOnes = "dois"
Case 3: TranslateOnes = "três"
Case 4: TranslateOnes = "quatro"
Case 5: TranslateOnes = "cinco"
Case 6: TranslateOnes = "seis"
Case 7: TranslateOnes = "sete"
Case 8: TranslateOnes = "oito"
Case 9: TranslateOnes = "nove"
End Select
End Function
- Salve a Planilha:
- Feche o editor VBA e salve a planilha do Excel como um arquivo habilitado para macro (extensão
.xlsm
). É crucial salvar neste formato para que a função personalizada funcione corretamente.
- Feche o editor VBA e salve a planilha do Excel como um arquivo habilitado para macro (extensão
Como Usar a Função SpellNumber na sua Planilha
Agora que a função está criada, utilizá-la é extremamente simples:
-
Abra a Planilha:
- Abra a planilha do Excel onde você salvou a função.
-
Utilize a Função:
- Em uma célula vazia, digite
=SpellNumber(A1)
(substituindo A1 pela célula que contém o número que você quer converter) ou=SpellNumber(1234.56)
(substituindo 1234.56 pelo número que você quer converter diretamente).
- Em uma célula vazia, digite
-
Pressione Enter:
- O Excel exibirá o número por extenso na célula.
Exemplo Prático
Se a célula A1 contém o valor 1579.85
, ao inserir a fórmula =SpellNumber(A1)
em outra célula, o resultado será: mil quinhentos e setenta e nove
.
Considerações Importantes
- Formato da Célula: Certifique-se de que a célula que contém o número a ser convertido esteja formatada como “Número” para evitar erros.
- Moeda: A função acima não formata o resultado para exibir a moeda (Reais, Dólares, etc.). Para adicionar a moeda, você pode concatenar o texto da moeda ao resultado da função. Por exemplo:
="Reais: " & SpellNumber(A1)
. - Vírgula vs. Ponto: A função considera o ponto (
.
) como separador decimal. - Limite de Valor: A função demonstrada suporta valores até bilhões. Para valores maiores, o código precisará ser adaptado.
- Personalização: Sinta-se à vontade para modificar o código VBA para ajustar o formato da saída, adicionar suporte para outros idiomas ou lidar com casos específicos.
Conclusão
Com essa função personalizada, você desbloqueia um novo nível de automação e profissionalismo em suas planilhas do Excel. A capacidade de converter números por extenso é uma ferramenta poderosa que economiza tempo e garante precisão em diversas aplicações. Domine essa técnica e eleve suas habilidades no Excel!
#Converter Número #Excel #Número ExtensoFeedback sobre a resposta:
Obrigado por compartilhar sua opinião! Seu feedback é muito importante para nos ajudar a melhorar as respostas no futuro.