Rechercher : dans
Par :

Chiffres significatifs sur Excel

Dernière réponse le 11 avr 2008 à 10:07:36 cos2525, le 7 avr 2008 à 11:32:15 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais que les résultats de mes calculs sur Excel se présentent avec 2 chiffres significatifs après la virgule. Si j'obtiens 1.003214645, je voudrais que soit affiché 1.0032. Et je voudrais aussi que les résultats d'un autre calcul dans une autre cellule se présente avec le même nombre de chiffre après la virgule que la 1ère cellule. Dans l'exemple que j'ai donné, il y aurait 4 chiffres en tout après la virgule et donc la 2ème cellule aie 4 chiffres après la virgule. Je sais pas si je suis très clair :).

Merci d'avance.

Chris

1

S_A_M29, le 7 avr 2008 à 11:34:00

Salut

non tu n'est pas très clair, mais il suffit pour ce genre de problème de faire clic droit sur tes cellules, et de sélectionner 'format de cellule", et de choisir celui qui convient le mieux a tes atentes

++

Répondre à S_A_M29

2

rumix, le 7 avr 2008 à 11:34:58

Dans la barre d'outil il y a deux bouton pour soit incrémenter le nombre de chiffre significatif , soi le décrémenter. l'icone ressemble a une fleche avec.0.00 a coté

Répondre à rumix

3

tilion, le 7 avr 2008 à 11:35:20

Bonjour c'est tres facile : format => cellule => nombre

Répondre à tilion

4

cbauf, le 7 avr 2008 à 11:36:20

Bonjour,

Moi je formulerais cela comme ceçi
=ARRONDI(Ref;4)
Vive la Vie !
Free Tibet

Répondre à cbauf

12

 arrial, le 11 avr 2008 à 10:07:36

L'arrondi donne un résultat faux, car il ignore une floppée de décimales, au contraire du format d'affichage. arrial
"Le pire n'est jamais acquis !"

Répondre à arrial

5

chtilou, le 7 avr 2008 à 12:49:50
  • +1

Bonjour,
2 chiffres significatifs après la virgule. Si j'obtiens 1.003214645, je voudrais que soit affiché 1.0032
Ah bon!!!

Répondre à chtilou

6

michel_m, le 7 avr 2008 à 15:27:41

Bonjour tt le monde

regarde si cette macro te convient. sur cette maquette, la zone de mise au m^format est B2:C3 et la cellule "mère" doit se trouver dans cette zone

Sub cassetetedulundi()
If Intersect(ActiveCell, Range("B2:C3")) Is Nothing Then: Exit Sub
tablo = Split(ActiveCell, ",")
texto = "0," & tablo(UBound(tablo))
texto = Format("0," & tablo(UBound(tablo)), "0.00E+00")
dec = Application.Rept("0", CInt(Right(texto, 2)) + 1)
Range("B2:C3").NumberFormat = "0." & dec
End Sub

en changeant l'ent^te on peut déclencher le monstre en cliquant sur la cellule mère: tu le dis si ca t'intéresse.

j'attend ta réponse pour présenter qqchose de + propre que ce brouillon de macro

Michel

Répondre à michel_m

7

cos2525, le 8 avr 2008 à 09:35:00

Bonjour,

pour chtilou: ce qu'on appelle chiffre significatif c'est les chiffres qui sont différents de 0. En l'occurence dans 1.0032 il y en a 3 (1,2,3) mais ce qui m'interesse c'est qu'il y en ai 2 après la virgule.

pour cbauf et tilion: faire un arrondi ou le format de nombre donne un format fixe au nombre. Le problème c'et justement que le nombre de chiffre après la virgule varie. Exemples : pour 1.0032145782 je veux 1.0032, pour 0.000000004578854 je veux 0.0000000046, pour 2.241256 je veux 2.24.

pour michel_m: j'avoue que j'ai pas tout compris le macro et comment il fonctionne parce que je suis loin d'être un pro sur VBA.

Chris

Répondre à cos2525

8

michel_m, le 8 avr 2008 à 11:18:11

Bonjour,
Je ne crois pas que tu puisse faire ce que tu demandes par formule

la macro que je t'ai proposé répond (il me semble!!) à ta demande mais je n'ai pas testé un nombre sans zéro après la virgule (3,456 par ex). Je regarde, je commente le code et te dis dès que j'ai une 1/2 heure tranquille car je suios au boulot

Répondre à michel_m

10

eriiic, le 8 avr 2008 à 19:30:30
  • +1

Bonjour,

ce qu'on appelle chiffre significatif c'est les chiffres qui sont différents de 0
Pas du tout, la version de chtilou est correcte.
Dans 1.0032 tu as 5 chiffres signicatifs (dont 4 après la virgule).
Si tu avais 0.0032 là oui tu pourrais dire 2 chi significatifs.
Tu ne peux pas considérer les 0 entre 2 chiffres comme non significatifs.
Simple rigueur de vocabulaire qui ne fait pas avancer ton pb je te l'accorde...

eric

Répondre à eriiic

9

michel_m, le 8 avr 2008 à 11:43:23
  • +1

Re,

Ci joint la macro testée et commentée: tes nombres sont formatés à N zéro + 2 chiffres
Attention:le nombre en mémoire est le nombre d'origine

Sub formateraNdecimales()

Dim texto As String, dec As String

' la cellule "mère" se trouve dans la plage (ici "B2:C3") où on _
execute la mise en forme, sinon on sort de la macro
'si cette cellule est en dehors supprime cette instruction
' a toi de voir quelle est la plage concernée et modifie en conséquence
If Intersect(ActiveCell, Range("B2:C3")) Is Nothing Then: Exit Sub

'on coupe le nombre en 2: partie entière et partie décimale
tablo = Split(ActiveCell, ",")

' mise sous la forme texte 0,000123 par exemple: "0," & tablo(UBound(tablo)) 8
'la variable "texto" donne le format scientique en puissance de 10 de la partie décimale: _
par exemple 0,000123 donne la puissance 10 puissance -4 soit 4 en valeur absolue
texto = Format("0," & tablo(UBound(tablo)), "0.00E+00")

'on repète autant de fois zéro+1 fois ( 2chiffres après les zéro) que la valeur trouvée à texto (4)
dec = Application.Rept("0", CInt(Right(texto, 2)) + 1)

'on met la plage B2:C3 ( à adapter) à ce format soit ici 5 chiffres après la virgule ( 0,00032)
Range("B2:C3").NumberFormat = "0." & dec

Répondre à michel_m

11

cos2525, le 9 avr 2008 à 11:18:47

Bonjour,

Eric, effectivement tu as raison. Quand je parlais de 2 chiffres significatifs c'était en parlant après la virgule sans m'occuper de ce qu'il y a avant (ça m'interèsse pas). Mais c'est vrai que si c'est 0 ou 1 avant la virgule ça change tout et d'ailleurs j'ai fait une erreur en disant que dans 1.0032 il y a 3 chiffres signi. Tant qu'à dire quelque chose autant que ce soit correct ;)

Michel, le macro marche comme ce que j'esperait. Merci d'avoir pris de ton temps pour me faire ce prog.

Chris

Répondre à cos2525
Collection CommentÇaMarche.net