Re: remplacer en VBA en respectant la casse |
Titre du sujet : Re: remplacer en VBA en respectant la casse par myDearFriend! le 08/09/2010 21:34:36 Bonsoir yaka, le Forum, Là, tu tombes sur LE piège « classique » VBA et fort pénible pour tout le monde... La première chose à prendre en compte, c'est que si en France le séparateur décimale est la virgule, chez les anglo-saxons, ça reste le point. La deuxième chose à assimiler, c'est que VBA c'est le côté sombre de la force : dans l'environnement VBA, tout est en anglais. Pour s'en convaincre, il suffit de saisir dans l'éditeur VBA :
Range("A1").Value = 13.4 'avec un "point" Sur nos versions Excel en français, il y a donc une multitude de conversions automatiques de format réalisées par le système pour traiter, puis ré-afficher les données numériques. J'ai testé dans tous les sens, il me semble impossible d'y arriver en utilisant globalement la méthode Replace comme tu l'as fait. En lieu et place, j'ai utilisé Replace() dans une boucle, mais en tant que fonction cette fois (voir l'aide VBA sur le mot clé Replace pour la distinction entre méthode Excel et fonction VBA). J'ai aussi usé de la propriété FormulaLocal des cellules et, pour rendre l'ensemble pas trop lent, j'ai optimisé pour ne cibler que les seules cellules concernées (celles contenant un nombre uniquement). Je te propose donc cette procédure à la place de la tienne : Sub ChangerVirguleEnPoint() J'espère que ça pourra te convenir... Cordialement, |
Forums