Suma em cuirsive

Conteúdo

Abaixo você encontrará uma função definida pelo usuário pronta no VBA que traduz qualquer número de 0 para 9 em sua representação textual, ou seja, na quantidade em palavras. Antes de usar, esta função deve ser adicionada ao seu livro. Por esta:

  1. pressione o atalho de teclado ALT + F11para abrir o Editor do Visual Basic
  2. adicionar novo módulo vazio via menu Inserir - Módulo
  3. copie e cole o texto desta função lá:
Função SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove") Nums2 = Array("", "dez", "vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", _ "oitenta ", "noventa") Nums3 = Array("", "cem", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", _ " oitocentos", "novecentos") Nums4 = Array("", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove ") Nums5 = Array("dez", "onze", "doze", "treze", "quatorze", _ "quinze", "dezesseis", "dezessete", "dezoito", "dezenove") If n < = 0 Then SUMWRITE = "zero" Exit Function End If 'divide o número em dígitos usando a função auxiliar Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Class(n , 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'cheque em milhões Selecione Case decmil Case 1 mil_txt = Nums5(mil ) & "milhões " GoTo www Case 2 To 9 decmil_txt = Nums2(decimal) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million " Case 2, 3, 4 mil_txt = Nums1(mil) & "million " Case 5 To 20 mil_txt = Nums1(mil) & "milhões " End Select www: sottys_txt = Nums3(sottys) ' verificar milhares Select Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "thousands " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "milhares" Caso 5 a 9 tys_txt = Nums4(tys) & "milhares" Fim Selecione Se dectys = 0 E tys = 0 E sottys <> 0 Então sottys_txt = sottys_txt & "milhares" eee: sot_txt = Nums3(sot) ' verifique dezenas Selecione Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'forme a linha final com SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' função auxiliar para extrair do número de dígitos Private Function Class(M, I) Class = Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Função final    

Salve o arquivo (se você tiver o Excel 2007 ou 2010, então o tipo de arquivo deve ser habilitado para macro, ou seja, formato xlsm!) e retorne ao Excel. Agora você pode inserir a função criada em qualquer célula da planilha da maneira usual – através do assistente de função (botão fx na barra de fórmulas, categoria Usuário definido) ou simplesmente digitando-o na célula manualmente e especificando a célula com o valor como argumento:

Se você precisar adicionar centavos ao texto recebido, poderá usar uma construção um pouco mais complexa:

 u3d SUM IN WRITE (A3) & ” esfregue. “&TEXT((A3-INTEIRO(A100))*00;”XNUMX″)&”policial.” 

u3d SUM IN WRITE (A3) & ” esfregue. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”policial.”

Então, por exemplo, para o número 35,15, o resultado da função será semelhante a “trinta e cinco rublos. 15 centavos.”

 

  • Uma versão mais poderosa da função com rublos e copeques em / inglês do complemento PLEX
  • O que são macros, onde inserir código de macro, como usá-los

 

Deixe um comentário