Function ChiffresAfterVirgule(dNum As Double, opt As Byte)
'Renvoie le nombre de chiffres après la virgule ou tous les chiffres après la virgule
'- dNum : le chiffre à traiter
'- opt : si opt = 1 --> le nombre de chiffres après la virgule
' si opt <> 1 --> tous les chiffres après la virgule
'Ex : 125,587349 | opt = 1 --> 6
' opt <> 1 --> 587349
Dim SepDec$, tmp, posDec, nb As Double, cap$
SepDec = Application.International(xlDecimalSeparator)
tmp = CStr(dNum)
posDec = InStr(tmp, SepDec)
nb = Len(tmp) - Len(Right(tmp, posDec)) 'nombre de chiffres après la virgule
cap = Right(dNum, nb) 'chiffres après la virgule
'*******************************************************************************************************************
'If Left(cap, 1) <> "0" Then cap = CDbl(cap) 'ne fait strictement rien
'If Left(cap, 1) <> "0" Then TypeName(cap) = "Double" 'ne marche pas
'*******************************************************************************************************************
ChiffresAfterVirgule = IIf(opt = 1, IIf(posDec = 0, 0, nb), IIf(posDec = 0, 0, cap))
End Function