Como passar um número por extenso no Excel?
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 + F11para 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!
- Quais são os instrumentos usados no alto mar durante a navegação?
- Quais são os países que foram colonizados pelos portugueses?
- Quais são as línguas oficiais do continente africano?
- Qual é o trajeto correto do alimento no sistema digestivo?
- Quem foi Dr. Antônio Augusto Neto?
- Qual foi o último país africano a se tornar independente?
- Quais são as línguas nacionais de Angola e as suas respectivas províncias?
- Quanto ganha um engenheiro em Moçambique?
- Quanto ganha um técnico em Angola?
- Quais são os cursos que mais empregam em Moçambique?
- Quanto custa a passagem de avião de Angola para Portugal?
- O que aconteceu no dia 7 de setembro para Moçambique?
- Como falar de um jeito formal?
- Quando usar a palavra senti?
- Quais são os três elementos da concordância nominal?
- Quais livros devo ler para ficar rico?
- Quantas línguas nativas há no Brasil?
- Quais são as línguas mais faladas do mundo e quais são elas?
- Quais são os tipos de língua escrita?
- Como estimular o cérebro para ficar mais inteligente?
- O que é uma pessoa limitrofe?
- Qual é o impacto da língua portuguesa?
Comentar a resposta:
Obrigado pelo seu feedback! Seu comentário é muito importante e nos ajuda a melhorar as respostas no futuro.