Function ChiffresAfterVirgule(dNum As Double, Optional opt As Boolean = True, Optional NbEnt As String)
'Renvoie le nombre de chiffres après la virgule ou tous les chiffres après la virgule
'- dNum : le chiffre à traiter
'- opt : si opt = True ou omis (opt est True par défaut) --> l'INTÉGRALITÉ des chiffres après la virgule (par ex : 574225 ou 000086574)
' si opt = False --> le nombre de chiffres après la virgule
'- NbEnt : un nombre entier qui, dans le résultat de la fonction, sera suivi d'une virgule puis des décimaux après la virgule de la variable "dNum"
'Ex : 125,587349 | opt = True (ou omis) --> 587349
' opt = False --> 6
' si dNum = 2045,0657 et NbEnt = 5 --> 5,0657
Dim SepDec$, tmp$, posDec As Long, nb As Long, cap$
SepDec = Application.International(xlDecimalSeparator)
tmp = CStr(dNum)
posDec = InStr(tmp, SepDec)
nb = IIf(posDec = 0, 0, Len(tmp) - Len(Right(tmp, posDec))) 'nombre de chiffres après la virgule
cap = Right(dNum, nb) 'chiffres après la virgule
If Not IsMissing(NbEnt) Then cap = CStr(NbEnt) & "," & cap 'on créé une chaîne avec comme préfixe la valeur entière choisie pour la variable "NbEnt" &
' comme suffixe les chiffres après la virgule de la variable "dNum", précédés d'une virgule
ChiffresAfterVirgule = IIf(IsMissing(opt) = True And IsMissing(NbEnt) = False, cap, IIf(opt = True And IsMissing(NbEnt) = True, cap, nb))
End Function