Suma en cuirsif

Table des matières

Vous trouverez ci-dessous une fonction prédéfinie définie par l'utilisateur dans VBA qui traduit n'importe quel nombre à partir de 0 9 dans sa représentation textuelle, c'est-à-dire dans le montant en mots. Avant utilisation, cette fonction doit être ajoutée à votre livre. Pour ça:

  1. appuyez sur le raccourci clavier ALT + F11pour ouvrir l'éditeur Visual Basic
  2. ajouter un nouveau module vide via le menu Insertion – Module
  3. copier et coller le texte de cette fonction ici :
Fonction SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "one", "two", "three", "four", "five", "six", "sept", "huit", "neuf") Nums2 = Array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante-dix", _ "quatre-vingts ", "quatre-vingt-dix") Nums3 = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", _ " huit cent", "neuf cent") Nums4 = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf ") Nums5 = Array("dix", "onze", "douze", "treize", "quatorze", _ "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf") Si n < = 0 Then SUMWRITE = "zero" Exit Function End If 'divise le nombre en chiffres à l'aide de la fonction d'assistance 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) 'check millions Select Case decmil Case 1 mil_txt = Nums5(mil ) & "millions " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) 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) & "millions" End Select www: sottys_txt = Nums3(sottys) ' vérifier les milliers Select Case dectys Case 1 tys_txt = Nums5(tys) & "milliers" GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Alors tys_txt = Nums4(tys) & "milliers " Case 1 tys_txt = Nums4(tys) & "milliers " Case 2, 3, 4 tys_txt = Nums4(tys) & "milliers " Cas 5 à 9 tys_txt = Nums4(tys) & "milliers" End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) 'check tens Select 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 : 'former la dernière ligne avec SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Fin Fu nction ' fonction d'assistance pour extraire du nombre de chiffres Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) Fonction de fin    

Enregistrez le fichier (si vous avez Excel 2007 ou 2010, le type de fichier doit être compatible avec les macros, c'est-à-dire au format xlsm !) et revenez à Excel. Vous pouvez maintenant insérer la fonction créée dans n'importe quelle cellule de la feuille de calcul de la manière habituelle - via l'assistant de fonction (bouton fx dans la barre de formule, catégorie Défini par l'utilisateur) ou simplement en le tapant manuellement dans la cellule et en spécifiant la cellule avec le montant en argument :

Si vous devez ajouter des centimes au texte reçu, vous pouvez utiliser une construction légèrement plus complexe :

 u3d SOMME EN ECRITURE (A3) & ” frotter. "& TEXTE ((A3-ENTIER (A100)) * 00;" XNUMX ") &" flic ". 

u3d SOMME EN ECRITURE (A3) & ” frotter. "& TEXTE ((A3-INT (A100)) * 00;" XNUMX ") &" flic ".

Ensuite, par exemple, pour le nombre 35,15, le résultat de la fonction ressemblera à «trente-cinq roubles. 15 kopecks.

 

  • Une version plus puissante de la fonction avec des roubles et des kopecks en / anglais du module complémentaire PLEX
  • Que sont les macros, où insérer le code macro, comment les utiliser

 

Soyez sympa! Laissez un commentaire