Saskia avait un problème pour convertir des informations, sous le contrôle d’une macro, et les avoir toujours utilisables dans Excel. Lorsqu’elle recevait une feuille de calcul qui montrait des nombres formatés avec des points décimaux, elle aurait besoin de convertir les valeurs afin qu’elles utilisent des virgules décimales, conformément à la façon dont les nombres sont affichés en Hollande. Elle ferait une recherche et un remplacement, et tout fonctionnerait bien. Cependant, lorsqu’elle a enregistré une macro qui effectuait la recherche et le remplacement, les cellules résultantes étaient traitées comme du texte plutôt que comme des valeurs numériques.

La raison de ce comportement est qu’Excel VBA « parle » américain et que certaines actions effectuées à l’aide d’une macro enregistrée ne fonctionnent pas comme prévu en raison de ce fait. Étant donné qu’American Excel s’attend à ce que le séparateur décimal soit un point, l’interprétation d’un «nombre» dans VBA avec un autre séparateur (tel qu’une virgule) obligera Excel à considérer la valeur comme étant du texte.

La solution de contournement n’est pas d’utiliser rechercher et remplacer, mais d’utiliser une astuce différente. Considérez la macro courte suivante:

Sub ConvertNumbers()

Dim oConRange As Range     Set oConRange = ActiveSheet.UsedRange.Cells.SpecialCells(xlConstants)

oConRange.Value = oConRange.Value End Sub

Cette macro définit une plage composée de toutes les cellules contenant des constantes. Ensuite, il définit la valeur de chaque cellule de la plage égale à elle-même. Au cours de cette opération, Excel réévalue le contenu de chaque cellule et le convertit en la valeur numérique appropriée. En d’autres termes, les nombres contenant des points décimaux sont convertis en nombres contenant des virgules décimales.

Il existe d’autres moyens de traiter les cellules à l’aide d’une macro, mais la procédure ci-dessus semble fonctionner le mieux et le plus rapidement.

_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 (2291) 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-Replacing_and_Converting_in_a_Macro [Remplacement et conversion dans une macro].