Formula para Extenso no Excel 2007

Infelizmente, o Excel 2007 não possui uma função nativa para converter números em extenso. No entanto, é possível criar uma fórmula personalizada usando VBA (Visual Basic for Applications) para realizar essa conversão.

Segue abaixo um exemplo de código para criar essa fórmula personalizada:

  1. Pressione ALT + F11 para abrir o Editor do Visual Basic.
  2. No menu "Inserir", selecione "Módulo".
  3. Copie e cole o código abaixo no módulo recém-criado:

Function NumPorExtenso(ByVal x As Double) As StringDim c, d, u, z, r As IntegerDim s As String

'Recipientes para centena, dezena e unidade c = Int(x / 100) d = Int((x Mod 100) / 10) u = x Mod 10 'Recipientes para os valores entre 10 e 19 z = x Mod 100 'Valores especiais If z = 10 Then s = "Dez" If z = 11 Then s = "Onze" If z = 12 Then s = "Doze" If z = 13 Then s = "Treze" If z = 14 Then s = "Catorze" If z = 15 Then s = "Quinze" If z = 16 Then s = "Dezesseis" If z = 17 Then s = "Dezessete" If z = 18 Then s = "Dezoito" If z = 19 Then s = "Dezenove" 'Centena Select Case cCase 1: s = "Cem"Case 2: s = "Duzentos"Case 3: s = "Trezentos"Case 4: s = "Quatrocentos"Case 5: s = "Quinhentos"Case 6: s = "Seiscentos"Case 7: s = "Setecentos"Case 8: s = "Oitocentos"Case 9: s = "Novecentos" End Select 'Dezena Select Case dCase 1: If z > 19 Then s = "Dez"Case 2: s = IIf(s = "", "Vinte", s & " e Vinte")Case 3: s = IIf(s = "", "Trinta", s & " e Trinta")Case 4: s = IIf(s = "", "Quarenta", s & " e Quarenta")Case 5: s = IIf(s = "", "Cinquenta", s & " e Cinquenta")Case 6: s = IIf(s = "", "Sessenta", s & " e Sessenta")Case 7: s = IIf(s = "", "Setenta", s & " e Setenta")Case 8: s = IIf(s = "", "Oitenta", s & " e Oitenta")Case 9: s = IIf(s = "", "Noventa", s & " e Noventa") End Select 'Unidade Select Case uCase 1: If z < 10 Or z > 19 Then s = IIf(s = "", "Um", s & " e Um")Case 2: If z < 10 Or z > 19 Then s = IIf(s = "", "Dois", s & " e Dois")Case 3: If z < 10 Or z > 19 Then s = IIf(s = "", "Três", s & " e Três")Case 4: If z < 10 Or z > 19 Then s = IIf(s = "", "Quatro", s & " e Quatro")Case 5: If z < 10 Or z > 19 Then s = IIf(s = "", "Cinco", s & " e Cinco")Case 6: If z < 10 Or z > 19 Then s = IIf(s = "", "Seis", s & " e Seis")Case 7: If z < 10 Or z > 19 Then s = IIf(s = "", "Sete", s & " e Sete")Case 8: If z < 10 Or z > 19 Then s = IIf(s = "", "Oito", s & " e Oito")Case 9: If z < 10 Or z > 19 Then s = IIf(s = "", "Nove", s & " e Nove") End Select 'Número zero If x = 0 Then s = "Zero" NumPorExtenso = s 

End Function

  1. Salve o módulo.
  2. Feche o Editor do Visual Basic.
  3. Volte para a planilha do Excel.
  4. Na célula onde deseja ver o número por extenso, digite a seguinte fórmula: =NumPorExtenso(A1), onde A1 é a célula que contém o número que você deseja converter.

Exemplo:

Suponha que você queira converter o número 123 em extenso. Siga os passos acima para criar a fórmula personalizada.

Na célula A1, digite o número 123. Na célula B1, digite a fórmula =NumPorExtenso(A1).

A célula B1 exibirá o resultado "Cento e Vinte e Três".

Observação: essa fórmula personalizada funciona para números inteiros positivos de até 999. Para números decimais, você precisaria adaptar a fórmula. Além disso, o código foi escrito em Português Brasileiro, portanto, se você estiver usando outra versão do Excel, pode ser necessário ajustar as palavras usadas na fórmula.

Veja também mais Fórmulas com a letra F

Fórmulas que começam com:

Comentários