Muitas vezes acontece que precisamos exibir números escritos em ucraniano no Excel . Por exemplo, exiba o número de páginas do documento por escrito - o número "27" como
Além disso, para fins contábeis, o custo de uma transação comercial deve ser escrito por extenso. Por exemplo, a soma de 10.568,23 deve ser apresentada por escrito como
Abaixo você encontrará uma função pronta em VBA, que traduz qualquer número em sua representação de texto no idioma ucraniano, ou seja, em um número escrito. Este recurso deve ser adicionado ao seu livro antes do uso.
Por esta:
Function SUMINWORDS(n As Double, curr As Variant, kop As Variant) As String 'moonexcel.com.ua Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums0 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums1 = Array("", "один ", "два ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums2 = Array("", "десять ", "двадцять ", "тридцять ", "сорок ", "п'ятдесят ", "шістдесят ", "сімдесят ", _ "вісімдесят ", "дев'яносто ") Nums3 = Array("", "сто ", "двісті ", "триста ", "чотириста ", "п'ятсот ", "шістсот ", "сімсот ", _ "вісімсот ", "дев'ятсот ") Nums4 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums5 = Array("десять ", "одинадцять ", "дванадцять ", "тринадцять ", "чотирнадцять ", _ "п'ятнадцять ", "шістнадцять ", "сімнадцять ", "вісімнадцять ", "дев'ятнадцять ") If n < 1 Then SUMINWORDS = "Нуль " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = "Нуль" End If Exit Function End If 'dividimos o número em dígitos usando a função auxiliar Classe 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) sotmil = Class(n, 9) bil = Class(n, 10) 'verificando bilhões Select Case bil Case 1 bil_txt = Nums1(bil) & "мільярд " Case 2 To 4 bil_txt = Nums1(bil) & "мільярди " Case 5 To 9 bil_txt = Nums1(bil) & "мільярдів " End Select 'verificando milhões Select Case sotmil Case 1 To 9 sotmil_txt = Nums3(sotmil) End Select Select Case decmil Case 1 mil_txt = Nums5(mil) & "мільйонів " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 0 If decmil > 0 Then mil_txt = Nums4(mil) & "мільйонів " Case 1 mil_txt = Nums1(mil) & "мільйон " Case 2, 3, 4 mil_txt = Nums1(mil) & "мільйона " Case 5 To 9 mil_txt = Nums1(mil) & "мільйонів " End Select If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "мільйонів " www: sottys_txt = Nums3(sottys) 'verificamos milhares Select Case dectys Case 1 tys_txt = Nums5(tys) & "тисяч " 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) & "тисяч " Case 1 tys_txt = Nums4(tys) & "тисячa " Case 2, 3, 4 tys_txt = Nums4(tys) & "тисячі " Case 5 To 9 tys_txt = Nums4(tys) & "тисяч " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тисяч " eee: sot_txt = Nums3(sot) 'verificamos dezenas Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums0(ed) rrr: 'formar a linha final SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt End If SUMINWORDS = UCase(Mid(SUMINWORDS, 1, 1)) + Mid(SUMINWORDS, 2) End Function 'função auxiliar para seleção do número de dígitos Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) End Function
Salve o arquivo e retorne para Excel.
Agora você pode inserir a função criada em qualquer célula da planilha deste livro da maneira usual - através do assistente de função (botão na barra de fórmulas, categoria Definido pelo usuário) ou simplesmente digitando-o manualmente na célula e especificando a célula com a soma como argumento. Além disso, nos parâmetros da função, você pode especificar o nome da moeda (hryvnia, dólar, euro...) e o nome dos centésimos (centavos, centavos...):
=SUMINWORDS(texto; moeda; centenas)
Se no parâmetro "moeda" coloque aspas duplas vazias (""), então a soma será exibida como um número inteiro por escrito: