Lorsque vous utilisez une formule pour fusionner le contenu de plusieurs cellules dans une seule cellule, Kris a du mal à faire en sorte qu’Excel conserve la mise en forme des cellules d’origine. Par exemple, supposons que les cellules A1 et B1 contiennent 1 et 0,33, respectivement. Dans la cellule C1, il entre la formule suivante:

=A1 & " : " & B1

Le résultat dans la cellule C1 ressemble à ceci:

1:0.3333333333

La raison pour laquelle le C1 résultant ne correspond pas à ce qui est montré dans B1 (0,33) est que la valeur de B1 n’est pas vraiment de 0,33. En interne, Excel conserve les valeurs à 15 chiffres, de sorte que si la cellule B1 contient une formule telle que = 1/3, elle est conservée en interne sous la forme 0.33333333333333. Ce que vous voyez dans la cellule B1, cependant, dépend de la façon dont la cellule est formatée. Dans ce cas, la mise en forme est probablement définie pour n’afficher que deux chiffres au-delà du point décimal.

Il existe cependant plusieurs façons d’obtenir les résultats souhaités dans la cellule C1. Une méthode consiste simplement à modifier un peu votre formule afin que les valeurs extraites des cellules A1 et B1 soient formatées. Par exemple, l’exemple suivant utilise la fonction TEXT pour effectuer le formatage:

=TEXT(A1,"0") & " : " & TEXT(B1,"0.00")

Dans ce cas, A1 est formaté pour afficher uniquement des nombres entiers et B1 est formaté pour n’afficher que deux décimales. Vous pouvez également utiliser la fonction ROUND pour obtenir un résultat similaire:

=ROUND(A1,0) & " : " & ROUND(B1,2)

Une autre solution possible consiste à modifier la façon dont Excel traite la précision dans le classeur. Suivez ces étapes:

  1. Affichez la boîte de dialogue Options Excel. (Dans Excel 2007, cliquez sur le bouton Office, puis sur Options Excel. Dans Excel 2010 ou une version ultérieure, affichez l’onglet Fichier du ruban, puis cliquez sur Options.)

  2. Cliquez sur l’option Avancé à gauche de la boîte de dialogue.

  3. Faites défiler les options disponibles jusqu’à ce que vous voyiez la section Lors du calcul de ce classeur. (Voir la figure 1.)

  4. Assurez-vous que la case à cocher Définir la précision comme affiché est activée.

  5. Cliquez sur OK.

Désormais, Excel utilise la précision affichée à l’écran dans tous ses calculs et concaténations au lieu de faire des calculs avec la précision à 15 chiffres qu’il maintient normalement. Bien que cette approche puisse être acceptable pour certains utilisateurs, pour d’autres, elle présentera plus de problèmes qu’elle n’en résout. Vous devrez déterminer si vous pouvez vivre avec la précision la plus faible afin d’obtenir la sortie formatée comme vous le souhaitez.

Une autre approche encore consiste à créer votre propre fonction définie par l’utilisateur qui renverra ce qui est affiché pour la cellule cible, plutôt que ce qui y est stocké. La macro suivante fonctionnera très bien à cet égard:

Function FmtText(rng As Range)

Application.Volatile     FmtText = rng.Cells(1).Text End Function

Pour utiliser cette macro, vous utiliseriez une formule comme celle-ci dans votre feuille de calcul:

=FmtText(A1) & " : " & FmtText(B1)

_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 (8886) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Matching_Formatting_when_Concatenating [Mise en forme correspondante lors de la concaténation].