TOP

Somme, nombres, nombre écrit en ukrainien

Description

Il arrive très souvent que nous ayons besoin d'afficher nombres écrits en ukrainien dans Excel . Par exemple, afficher le nombre de pages d'un document écrit - un nombre "27" comme "Двадцять сім" .

De plus, à des fins comptables, le coût d’une transaction commerciale doit être écrit en lettres. Par exemple, le montant 10 568,23 montrer par écrit comment "Десять тисяч п'ятсот шістдесят вісім грн. 23 коп." , c'est-à-dire nécessaire somme en langue ukrainienne , mais Excel n'a pas de fonction standard à ces fins.


VBA code pour la fonction SUMINWORDS

Vous trouverez ci-dessous une fonction prête à l'emploi sur VBA, qui traduit n'importe quel nombre en sa représentation textuelle en ukrainien, c'est-à-dire en numéro écrit . Cette fonctionnalité doit être ajoutée à votre livre avant utilisation.

Pour ça:

  1. Appuyez sur ALT+F11 pour ouvrir l'éditeur Visual Basic
  2. Ajouter un nouveau module vide via le menu Insert - Module
  3. Copiez et collez ici le texte de cette fonction :
  1. Function SUMINWORDS(n As Double, curr As Variant, kop As VariantAs String  
  2.  ' moonexcel.com.ua   
  3.  Dim Nums1, Nums2, Nums3, Nums4 As Variant  
  4.    
  5.  Nums0 = Array("""одна ""дві ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  6.  Nums1 = Array("""один ""два ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  7.  Nums2 = Array("""десять ""двадцять ""тридцять ""сорок ""п'ятдесят ""шістдесят ""сімдесят ", _  
  8.                         "вісімдесят ""дев'яносто ")  
  9.  Nums3 = Array("""сто ""двісті ""триста ""чотириста ""п'ятсот ""шістсот ""сімсот ", _  
  10.                         "вісімсот ""дев'ятсот ")  
  11.  Nums4 = Array("""одна ""дві ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  12.  Nums5 = Array("десять ""одинадцять ""дванадцять ""тринадцять ""чотирнадцять ", _  
  13.                         "п'ятнадцять ""шістнадцять ""сімнадцять ""вісімнадцять ""дев'ятнадцять ")  
  14.     
  15.  If n < 1 Then  
  16.    SUMINWORDS = "Нуль " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop  
  17.      
  18. If curr = "" Then  
  19.    SUMINWORDS = "Нуль"  
  20. End If  
  21.         
  22.    Exit Function  
  23.  End If  
  24.  ' nous divisons le nombre en chiffres à l'aide de la fonction auxiliaire Classe   
  25.  ed     = Class(n, 1)  
  26.  dec    = Class(n, 2)  
  27.  sot    = Class(n, 3)  
  28.  tys    = Class(n, 4)  
  29.  dectys = Class(n, 5)  
  30.  sottys = Class(n, 6)  
  31.  mil    = Class(n, 7)  
  32.  decmil = Class(n, 8)  
  33.  sotmil = Class(n, 9)  
  34.  bil    = Class(n, 10)  
  35.      
  36.  ' vérifier des milliards   
  37.  Select Case bil  
  38.     Case 1  
  39.       bil_txt = Nums1(bil) & "мільярд "  
  40.     Case 2 To 4  
  41.       bil_txt = Nums1(bil) & "мільярди "  
  42.     Case 5 To 9  
  43.       bil_txt = Nums1(bil) & "мільярдів "  
  44.  End Select  
  45.      
  46.  ' vérifier des millions   
  47.  Select Case sotmil  
  48.    Case 1 To 9  
  49.      sotmil_txt = Nums3(sotmil)  
  50.  End Select  
  51.     
  52.  Select Case decmil  
  53.    Case 1  
  54.      mil_txt = Nums5(mil) & "мільйонів "  
  55.      GoTo www  
  56.    Case 2 To 9  
  57.      decmil_txt = Nums2(decmil)  
  58.  End Select  
  59.    
  60.  Select Case mil  
  61.    Case 0  
  62.      If decmil > 0 Then mil_txt = Nums4(mil) & "мільйонів "  
  63.    Case 1  
  64.      mil_txt = Nums1(mil) & "мільйон "  
  65.    Case 2, 3, 4  
  66.      mil_txt = Nums1(mil) & "мільйона "  
  67.    Case 5 To 9  
  68.      mil_txt = Nums1(mil) & "мільйонів "  
  69.  End Select  
  70.    
  71.  If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "мільйонів "  
  72.    
  73. www:  
  74.  sottys_txt = Nums3(sottys)  
  75.    
  76.  ' nous vérifions des milliers   
  77.  Select Case dectys  
  78.    Case 1  
  79.      tys_txt = Nums5(tys) & "тисяч "  
  80.      GoTo eee  
  81.    Case 2 To 9  
  82.      dectys_txt = Nums2(dectys)  
  83.  End Select  
  84.    
  85.  Select Case tys  
  86.    Case 0  
  87.      If dectys > 0 Then tys_txt = Nums4(tys) & "тисяч "  
  88.    Case 1  
  89.      tys_txt = Nums4(tys) & "тисячa "  
  90.    Case 2, 3, 4  
  91.      tys_txt = Nums4(tys) & "тисячі "  
  92.    Case 5 To 9  
  93.      tys_txt = Nums4(tys) & "тисяч "  
  94.  End Select  
  95.    
  96.  If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тисяч "  
  97.    
  98. eee:  
  99.  sot_txt = Nums3(sot)  
  100.    
  101.  ' nous vérifions des dizaines   
  102.  Select Case dec  
  103.    Case 1  
  104.      ed_txt = Nums5(ed)  
  105.      GoTo rrr  
  106.    Case 2 To 9  
  107.      dec_txt = Nums2(dec)  
  108.  End Select  
  109.     
  110.  ed_txt = Nums0(ed)  
  111.   
  112. rrr:  
  113.  ' former la dernière ligne   
  114.  SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _  
  115.  & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop  
  116.   
  117.  If curr = "" Then  
  118.    SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _  
  119.  & tys_txt & sot_txt & dec_txt & ed_txt  
  120.  End If  
  121.    
  122.  SUMINWORDS = UCase(Mid(SUMINWORDS, 1, 1)) + Mid(SUMINWORDS, 2)  
  123.    
  124. End Function  
  125.     
  126.  ' fonction auxiliaire pour la sélection à partir du nombre de chiffres   
  127. Private Function Class(M, I)  
  128.   Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))  
  129. End Function  

Enregistrez le fichier et revenez à Excel.

Utilisation de la fonction

Vous pouvez maintenant insérer la fonction créée dans n'importe quelle cellule de la feuille de ce livre de la manière habituelle - via l'assistant de fonction (bouton dans la barre de formule, catégorie Défini par l'utilisateur (User defined) ou en le tapant simplement manuellement dans la cellule et en spécifiant la cellule avec la somme comme argument. De plus, dans les paramètres de la fonction, vous pouvez préciser le nom de la devise (hryvnia, dollar, euro, etc.) et le nom des centièmes (centimes, centimes, etc.) :

=SUMINWORDS(texte; devise; centaines)

Si dans le paramètre "concevoir" insérer des guillemets doubles vides ( "" ), alors le montant sera affiché dans son ensemble numéro écrit :

Articles sur le sujet :