Raccourci formule =NumText

vorttex Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
vorttex Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, TLM
Je souhaite avoir un racourci d'une formule excel sans l'ecrire ou passé par FONCTION
Exemple : =NumText(D3;"DA";"Cts";2;" et ") ===> (=ALT A)
Cordialement
A bientôt merci
A voir également:

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Toutes les explication ici (§ macros) :
https://www.commentcamarche.net/contents/bureautique-871410403
0
vorttex Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup Patrice33740
0
vorttex Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
jai cherche mais jai pas bien saisie SVP aidé moi je veux juste trouvé un raccourci pour exécute sans passé par fonction (f) jai la macro je veux juste un raccourci la voila :
( jai pas crée la macro juste copier coller )

Option Explicit
Function NumText(Nombre As Currency, Optional Unité As String, Optional no_chiffres As Integer, Optional SousUnité As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_chiffres
TxtDécimal = Format(PartieDécimal, String(no_chiffres, "0"))
End If
NumText = TxtEntier & Unité & " " & TxtDécimal & " " & SousUnité
End Function

Function NumTextEntier(ByVal Entier As Currency) As String
Dim no_Classe As Integer, Classe As Integer
If Entier = 0 Then
NumTextEntier = "zéro "
Else
While Entier > 0
Classe = Entier - Int(Entier / 1000) * 1000
NumTextEntier = TxtClasse(Classe, no_Classe) & NumTextEntier
no_Classe = no_Classe + 1
Entier = Int(Entier / 1000)
Wend
End If
End Function

Function TxtClasse(Classe As Integer, no_Classe As Integer) As String
Dim Centaine As Integer, Dizaine As Integer, Unité As Integer, Unités2Chiffres As Integer
Dim TxtCentaines As String, TxtDizaines As String, TxtUnités As String
Dim TClasses As Variant, Tdizaines As Variant, TUnités As Variant
TClasses = Array("", "mille", "million", "milliard", "billion")
Tdizaines = Array("", "", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante", "quatre-vingt", "quatre-vingt")
TUnités = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", _
"dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf")
If Classe = 0 Then Exit Function
' Pas de un pour mille
If Classe = 1 And no_Classe = 1 Then
TxtClasse = "mille "
Exit Function
End If
'
Centaine = Classe \ 100
Unités2Chiffres = Classe Mod 100
Dizaine = Unités2Chiffres \ 10
Unité = Unités2Chiffres Mod 10
' Les centaines -----
If Centaine = 1 Then
TxtCentaines = "cent "
ElseIf Centaine > 1 Then
TxtCentaines = TUnités(Centaine) & " cent" & IIf(Unités2Chiffres > 0, " ", "s ")
End If
' Les dizaines ------
TxtDizaines = Tdizaines(Dizaine)
If Unité = 1 And Dizaine > 1 And Dizaine < 8 Then
TxtDizaines = TxtDizaines & "-et"
End If
If Dizaine = 1 Or Dizaine = 7 Or Dizaine = 9 Then
Unité = Unité + 10: Dizaine = 0
End If
TxtDizaines = TxtDizaines & IIf(Unités2Chiffres = 80, "s", "")
If Unités2Chiffres > 19 And Unité > 0 Then
TxtDizaines = TxtDizaines & "-"
ElseIf Dizaine > 0 Then
TxtDizaines = TxtDizaines & " "
End If
' Les unités -------- Espace si unité > 0
TxtUnités = TUnités(Unité) & IIf(Unité > 0, " ", "")
' La classe --------- un s sauf pour mille
TxtClasse = TClasses(no_Classe) & IIf(no_Classe > 1 And Classe > 1, "s", "") & IIf(no_Classe > 0, " ", "")
' Résultat ----------
TxtClasse = TxtCentaines & TxtDizaines & TxtUnités & TxtClasse
End Function
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

« Je souhaite avoir un racourci d'une formule » ???
Il est difficile de deviner ce qui doit se passer lorsque tu appuies sur le raccourci (Crtl A) !!!!

De plus, la syntaxe que tu souhaite, =NumText(D3;"DA";"Cts";2;" et "), ne correspond pas à la fonction ci-dessus, il y a un argument en trop et les autres ne sont pas dans le bon ordre.
Je te propose d'utiliser =NumText(D3;"DA";2;"Cts")

Dans tous les cas tu doit écrire une macro qui fait ce que tu désires et y affecter le raccourci.

1ère supposition : Tu voudrais afficher le résultat de la fonction appliquée à la cellule active :
Sub afficheNumText()
  MsgBox NumText(ActiveCell.Value, "DA", 2, "Cts")
End Sub

2ème supposition : Tu voudrais écrire le résultat de la fonction appliquée à la cellule active dans la cellule située à sa droite (i.e dans la colonne à coté) :
Sub InsèreNumText()
  ActiveCell.Offset(0, 1).Value = NumText(ActiveCell.Value, "DA", 2, "Cts")
End Sub

PS : essaies d'être plus précis dans tes demandes.
Cordialement
Patrice
0
vorttex Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup Patrice33740
0