Excel : Extraire nombre de décimales

Résolu
Elodie -  
 kawtar ben -
Bonjour,

Je voudrais pouvoir extraire le nombre de décimales affichées et non réelles.
Je m'explique :
Je rentre dans une cellule 0.517683
Je fais afficher 0.52 (2 chiffres après la virgule) mais pour les calculs il utilise 0.517683
je fais afficher 0.518 (3 chiffres après la virgule) mais pour les calculs il utilise 0.517683

Je voudrais obtenir le 2 et le 3 respectivement (nombre de chiffres après la virgule) dans d'autres cellules.
Quelqu'un sait-il comment faire ?

Merci d'avance.

Elodie

6 réponses

melanie1324 Messages postés 1561 Statut Membre 155
 
Bonjour,

utilise la fonction arrondi :

=arrondi(A2;2) pour 2 chiffres
= arrondi (a2;3) pour 3

si c'est avec formule :
=arrondi(somme(a1:a2);2)
1
pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bonjour,
En A1 votre nombre décimal avec le format que vous souhaitez... En A2 écrivez :
=DROITE(CELLULE("format";A1);1)
1
ccm81 Messages postés 11033 Statut Membre 2 433
 
re

en relisant mieux la question peut être ceci

N17=NBCAR(DROITE(M17;NBCAR(M17)-CHERCHE(",";M17)))

bonne suite
1
ccm81 Messages postés 11033 Statut Membre 2 433
 
bonjour

le pb c'est que le nombre de décimales affichées (hors formatage ou arrondi) dépend de la largeur de la colonne et de la taille de la police

donc la cellule doit etre soit formatée soit calculée avec arrondi comme le propose melanie, et le pb ne se pose plus

bonne suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonsoir tout le monde,

Ben tant qu'on y est, on peut avoir une 3ème lecture : donner le nombre de décimales affichées en tenant compte du format de cellule.

Une fonction personnalisée en vba :
Function nbDecimales(c As Range) As Integer 
    Application.Volatile 
    Dim f As String 
    f = c.NumberFormatLocal 
    If InStr(f, ".") > 0 Then 
        nbDecimales = Len(Split(c.NumberFormatLocal, ".")(1)) 
    ElseIf f = "Standard" Then 
        f = c 
    Else 
        f = "." 
    End If 
    nbDecimales = Len(Split(f, ".")(1)) 
End Function


eric

edit : mais je pense que l'interprétation de mélanie est la bonne..
0
kawtar ben
 
nbr de chiffres après virgule

=NBCAR(D8)-CHERCHE(",";D8)

nbr de chiffres avant virgule

=NBCAR(D8)-((NBCAR(D8)-CHERCHE(",";D8))+1)
0