Henk a demandé s’il existe un moyen dans Excel d’afficher un nombre à six chiffres, indépendamment de l’emplacement de la virgule décimale. Par exemple, 0.1 serait affiché comme 0.10000, 200 serait affiché comme 200.000 et 25000 serait affiché comme 25000.0.

Malheureusement, il n’y a pas de formatage qui fera l’affaire; tout le formatage d’affichage semble dépendre de la position du point décimal. Vous pouvez formater un affichage pour un nombre spécifique de chiffres après la virgule décimale, mais ce nombre de chiffres sera utilisé quel que soit le nombre de chiffres qui apparaissent avant la virgule décimale.

Plusieurs abonnés ExcelTips ont proposé des suggestions qui impliquent l’utilisation de formules pour afficher le nombre comme souhaité. Par exemple, la formule suivante affichera la valeur en A1 en utilisant six chiffres:

=FIXED(A1,IF(ABS(A1)<1,5,5-INT(LOG(ABS(A1)))),TRUE)

D’autres lecteurs ont fourni des formules reposant sur la conversion du nombre en chaîne de texte et son affichage en tant que tel. La conversion d’un nombre en son équivalent textuel présente cependant l’inconvénient distinct de ne plus pouvoir utiliser le nombre dans d’autres formules. (Rappelez-vous – c’est du texte à ce stade, pas un nombre.) La formule ci-dessus n’a pas cette limitation.

Si vous le souhaitez, vous pouvez également utiliser une macro pour définir la mise en forme dans une cellule contenant une valeur. L’avantage d’une telle macro est que vous n’avez pas besoin d’utiliser une cellule pour une formule, comme indiqué ci-dessus. L’inconvénient d’une macro est que vous devez vous rappeler de l’exécuter sur les cellules chaque fois que leurs valeurs changent. La macro suivante est un exemple d’une telle approche:

Sub SetFigures()

Dim iDecimals As Integer     Dim bCommas As Boolean     Dim sFormat As String     Dim CellRange As Range     Dim TestCell As Range

bCommas = False 'Change as desired

Set CellRange = Selection     For Each TestCell In CellRange         If Abs(TestCell.Value) < 1 Then             iDecimals = 5         Else             iDecimals = 5 - Int(Log(Abs(TestCell.Value)) / Log(10#))

End If

sFormat = "0"

If bCommas Then sFormat = "#,##0"

If iDecimals < 0 Then sFormat = "General"

If iDecimals > 0 Then sFormat = sFormat & _           "." & String(iDecimals, "0")



TestCell.NumberFormat = sFormat     Next TestCell End Sub

Pour utiliser la macro, sélectionnez simplement les cellules que vous souhaitez formater, puis exécutez-la. Chaque cellule de la plage que vous avez sélectionnée est définie pour afficher six chiffres, sauf si le nombre de la cellule est trop grand ou trop petit.

_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 (1933) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Using_an_Exact_Number_of_Digits [Utilisation d’un nombre exact de chiffres].