Ken a demandé s’il était possible de maintenir le nombre de chiffres significatifs sur les valeurs entrées dans Excel. Par exemple, « 12.345600 » et « 1.230 ».

La réponse courte, Ken, est que vous ne pouvez pas. Pourquoi? Parce qu’Excel transforme toujours tout en 15 chiffres significatifs en interne. Ceci, si vous entrez 12 ou 12,0 ou 12,00000, Excel les considère toujours comme 12,0000000000000, même si cela peut ne pas être techniquement correct dans le sens mathématique le plus vrai. De plus, étant donné qu’Excel convertit tout en 15 chiffres significatifs, il tronque tous les zéros de fin dans tous les nombres affichés à l’aide du format de nombre général.

(Il devrait être évident d’après l’explication ci-dessus que les termes «chiffres significatifs», «précision» et «nombre de décimales» signifient des choses entièrement différentes. Par exemple, le nombre 12 000 comporte trois décimales, mais cinq chiffres significatifs. (Je suis sûr que les théoriciens des mathématiques du public seront trop heureux de me corriger si je me trompe.)

Vous pouvez utiliser un format numérique personnalisé pour les cellules individuelles, qui affichera votre informations en utilisant le nombre approprié de chiffres significatifs, mais cela n’affectera pas le fonctionnement d’Excel en interne. Par exemple, vous pouvez mettre en forme une cellule pour afficher 12 ou 12,0 ou 12,00000, mais cela ne change pas le fait qu’Excel considère toujours tous les nombres comme être 12,0000000000000.

Une façon de contourner ce problème consiste à saisir vos nombres sous forme de texte, en mettant une apostrophe devant eux. En d’autres termes, au lieu de saisir 12,0, vous saisirez «12 .0. Excel puis analyse l’entrée sous forme de texte (à cause de l’apos trophe) et affiche 12,0 dans la cellule. Le seul inconvénient de cette approche est que vous ne pouvez pas référencer directement la cellule dans toutes les fonctions mathématiques; certains d’entre eux renverront une erreur car vous incluez ce que Excel considère comme du texte dans la fonction. Le moyen le plus simple de gérer cela est de vous assurer que vous incluez la fonction = VALUE dans votre formule globale. Par exemple, si vous entrez un nombre sous forme de texte dans la cellule B7 et que vous devez ensuite le référencer dans une formule, vous pouvez le faire de cette manière:

=VALUE(B7) * 100

Cela fonctionne parfaitement pour les formules avec des références à une seule cellule. Cela ne fonctionne pas bien pour les références de gamme, cependant. Si vous devez faire une somme ou une moyenne sur une plage de valeurs saisies sous forme de texte, Excel s’étouffera à chaque fois, renvoyant une erreur en fonction de ce que la fonction essaie de faire.

Ceci nous amène à la deuxième solution potentielle: maintenir soit les chiffres significatifs, soit le nombre de décimales séparés de la valeur réelle. Pour de nombreux objectifs mathématiques techniques, c’est la meilleure façon de gérer la situation. Par exemple, dans la colonne C, vous pouvez entrer vos nombres sous forme de nombres. Excel, bien sûr, les convertit en interne en 15 chiffres significatifs. Dans la colonne D, vous pouvez entrer différents nombres qui représentent le nombre de décimales que vous souhaitez appliquer aux valeurs de la colonne C. Vous pouvez ensuite utiliser les valeurs de la colonne D pour vous aider dans les formules qui font référence aux valeurs de la colonne C.

Une dernière solution potentielle consiste simplement à formater chaque cellule individuelle afin qu’elle n’affiche que le nombre de décimales que vous souhaitez afficher.

Avec l’avertissement noté ci-dessus (qu’une telle mise en forme n’affecte pas la représentation interne des nombres par Excel), cela pourrait être la meilleure solution. Bien sûr, il est facile d’ajuster individuellement la mise en forme d’affichage de quelques cellules, mais le faire sur cent ou cinq cents cellules est une autre histoire. C’est là qu’une macro peut être utile. Considérez la macro suivante:

Sub SigPlaces()

Dim c As Range Dim strcell As String, NumFormat As String, DecSep As String Dim DecPtLoc As Integer, stringLen As Integer Dim numDecPlaces As Long

DecSep = "."



For Each c In Selection.Cells     strcell = c.Value     If IsNumeric(strcell) Then         NumFormat = "#0"

DecPtLoc = InStr(strcell, DecSep)

If DecPtLoc > 0 Then             NumFormat = NumFormat & DecSep             stringLen = Len(strcell)

numDecPlaces = stringLen - DecPtLoc             NumFormat = NumFormat & String(numDecPlaces, "0")

End If         c.Value = Val(strcell)

c.NumberFormat = NumFormat     End If Next c End Sub

Si vous entrez vos nombres sous forme de texte (avec l’apostrophe mentionnée ci-dessus), vous pouvez ensuite sélectionner les cellules et exécuter cette macro. Les entrées de texte sont converties en nombres et la mise en forme appliquée à ces cellules est modifiée de sorte que le même nombre de décimales s’affiche comme vous l’avez entré dans l’entrée de texte.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2045) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.