Chiffres significatifs: existe t'il une fonction?

ArcticM

XLDnaute Nouveau
Bonjour,

Je suis confronté à un master problème.

J'ai des cellules pour lesquelles je dois arrondir ma valeur à 2 ou 3 chiffres significatifs et je ne trouve pas de fonctionnalités sous Excel pour faire cela (VBA ou directement en mise en forme sur la cellule).

J'ai parcouru les forums sans trouver grand chose de concluants.

Petite précision qui a son importance: 2 chiffres significatifs ne signifie pas 2 chiffres après la virgule!! (beaucoup de gens confondent)

Merci d'avance!
Arctic M
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

Mais si ça fonctionne. Mais pourquoi voudriez vous qu'il vous affiche 3 chiffres si après arrondi il n'y en a que 2 qui définissent sa valeur ?

remarque: pour C4 cette formule donne les mêmes valeurs:
Code:
=ARRONDI($A4;2-ENT(LOG10($A4)))
 
Dernière édition:

ArcticM

XLDnaute Nouveau
Re : Chiffres significatifs: existe t'il une fonction?

Avec les chiffres significatifs, si le zéro se trouve derrière, il est significatif

Exemple: 1,5014
2 chiffres significatifs = 1,5
3 chiffres significatifs = 1,50

C'est pour cela que cela me pose problème
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

Mais… c'est la même valeur des 2 cotés !
Alors c'est un texte qu'il vous faut et pas une valeur ?
Ça peut se faire par formule mais c'est trop compliqué à mon gout. J'écrirais une fonction personnalisée…

Voici ma fonction pour 3 chiffres :
VB:
Function Edit3Ch(ByVal V As Double) As String
Dim Z As String, E As Long
Z = Format(V, ".000E+00"): E = Right$(Z, 3)
Z = Mid$(Z, 2, 3)
Select Case E
   Case Is < 1: Edit3Ch = "0," & String$(-E, "0") & Z
   Case Is < 3: Edit3Ch = Left$(Z, E) & "," & Mid$(Z, E + 1)
   Case Else:   Edit3Ch = Z & String$(E - 3, "0")
   End Select
End Function
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

Bonjour.
Autre version avec unité de mesure précisée :
VB:
Function Edit3ChU(ByVal Qté As Double, ByVal Unité As String) As String
Dim Z As String, E As Long, M As Long
Z = Format(Qté, ".000E+00"): M = Right$(Z, 3): E = M Mod 3: If E < 0 Then E = E + 3
M = (M - E) \ 3
Z = Mid$(Z, 2, 3): If E > 0 Then Z = Left$(Z, E) & "," & Mid$(Z, E + 1) Else M = M - 1
If Abs(M) > 8 Then Z = Z & "*10^" & 3 * M & " " Else Z = Z & " " & Choose(M + 9, _
   "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y")
Edit3ChU = Z & Unité
End Function
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

Bonjour.

Toujours pas de réponse !
Toujours pas satisfaisant ?

Avec changement d'unité aux grandes valeurs: g —> t, m —> ua —> al
VB:
Function Edit3ChU(ByVal Qté As Double, ByVal Unité As String) As String
Dim Z As String, E As Long, M As Long
If Unité = "m" Then
   Select Case Qté
      Case Is > 9.46098133890965E+15: Unité = "al": Qté = Qté / 9.46098133890965E+15
      Case Is > 149597870691#: Unité = "ua": Qté = Qté / 149597870691#
      End Select: End If
Z = Format(Qté, ".000E+00"): M = Right$(Z, 3): E = M Mod 3: If E < 0 Then E = E + 3
M = (M - E) \ 3
Z = Mid$(Z, 2, 3): If E > 0 Then Z = Left$(Z, E) & "," & Mid$(Z, E + 1) Else M = M - 1
If M >= 2 Then If Unité = "g" Then Unité = "t": M = M - 2
If Abs(M) > 8 Then Z = Z & "*10^" & 3 * M & Chr$(160) Else Z = Z & Chr$(160) & Choose(M + 9, _
   "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y")
Edit3ChU = Z & Unité
End Function
Évité le parsec. N'apporte pas grand chose: vaut 3,2615 années-lumières
 
Dernière édition:

ArcticM

XLDnaute Nouveau
Re : Chiffres significatifs: existe t'il une fonction?

Salut,

Ah si je suis encore intéressé! J'ai eu un long weekend ;)

Bon je reprends le cours de mon programme... je vais essayer le bout de code que tu m'as très soigneusement créé. Par contre étant un semi-novice, je ne comprends pas tout.

En tout cas je vais essayer et je reviens vers vous!

Merci
 

ArcticM

XLDnaute Nouveau
Re : Chiffres significatifs: existe t'il une fonction?

Bon, vous allez me trouver chiant mais j'ai toujours le même problème. Lorsque j'applique la fonction sur par exemple 1,5014, elle me retourne 1,5.... :(

ça m'étonne vraiment que l'on ne trouve rien dans Excel pour avoir une mise en forme avec des chiffres significatifs....
Est-ce que quelqu'un aurait une autre idée?
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

ça m'étonne vraiment que l'on ne trouve rien dans Excel pour avoir une mise en forme avec des chiffres significatifs....
Mais bien sûr qu'il y a ce qu'il faut pour cela, mais vous allez encore dire que ça ne vous convient pas ! C'est le format scientifique. Toutes nos propositions tournent autour de ça d'une façon ou d'une autre.
 

ArcticM

XLDnaute Nouveau
Re : Chiffres significatifs: existe t'il une fonction?

:D Magnifique, ça semble fonctionner effectivement. Merci pour votre aide, c'est vraiment super.

Que faut-il que je change pour avoir 2 chiffres significatifs?

' Fonction à 3 chiffres significatifs
Function Edit3Ch(ByVal V As Double) As String
Dim Z As String, E As Long
Z = Format(V, ".000E+00"): E = Right$(Z, 3)
Z = Mid$(Z, 2, 3)
Select Case E
Case Is < 1: Edit3Ch = "0," & String$(-E, "0") & Z
Case Is < 3: Edit3Ch = Left$(Z, E) & "," & Mid$(Z, E + 1)
Case Else: Edit3Ch = Z & String$(E - 3, "0")
End Select
End Function

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

La fonction Edit2Ch peut s'écrire comme ça:
VB:
Function Edit2Ch(ByVal V As Double) As String
Dim Z As String, E As Long
Z = Format(V, ".00E+00"): E = Right$(Z, 3)
Z = Mid$(Z, 2, 2)
Select Case E
   Case Is < 1: Edit2Ch = "0," & String$(-E, "0") & Z
   Case Is = 1: Edit2Ch = Left$(Z, 1) & "," & Mid$(Z, 2)
   Case Else:   Edit2Ch = Z & String$(E - 2, "0")
   End Select
End Function
Mais mettons nous bien d'accord: elle renvoie un texte, pas un nombre. Alors tant qu'à faire, je ne comprends pas bien pourquoi, pour les 3 chiffres, vous ne profitez pas de la Edit3ChU pour y ajouter l'unité de mesure. Ce sont bien des quantités, probablement calculées en grammes, non ?
 

ArcticM

XLDnaute Nouveau
Re : Chiffres significatifs: existe t'il une fonction?

Super, merci pour ces éléments Dranreb!
Effectivement, ce sont des quantités en gr ou mg.

Le truc est que ces données sont réutilisées après pour faire un calcul de pourcentage. C'est pour cela que je pense garder Edit2Ch.

Cela me permet d'avoir le bon affichage sur le rapport et de pouvoir réutiliser ces données pour faire mes ratios.
 

Dranreb

XLDnaute Barbatruc
Re : Chiffres significatifs: existe t'il une fonction?

Bonjour.
Pour calculer vos ratios, repartez plutôt de l'expression qui aura servi au Edit3ChU alors !
Vous aurez compris, je suppose, qu'il prendra toujours des valeurs en grammes, et qu'il les affichera de lui même en milligrammes si c'est plus concis ?
 
Dernière édition:

Statistiques des forums

Discussions
312 251
Messages
2 086 628
Membres
103 272
dernier inscrit
TOUFIK82