Remplacer les points virgule par des virgules par macro

Bonjour,

J'aimerais savoir comment faire pour remplacer des points virgules par des virgules et l'inverse parce que j'ai un fichier en français que je dois convertir en anglais et par la suite d'anglais à français par une macro.

Donc comment changer dans les modules et les Microsoft Excel Objects (le code associé à chacune des feuilles) toutes les points virgules par des virgules?

Est-ce que cela peut se faire par un InputBox pour demander le rechercher ( ; ) et le remplacer par ( , ) à l'intérieur d'une macro?

J'utilise des FormulaLocal dans les modules et le code associé aux feuilles.

Exemple :

Range("F" & derLn).FormulaLocal = "=INDEX(Calcul;EQUIV(TEXTE(C" & derLn & ";""0"");'Détail'!$A:$A;0);" & _

"EQUIV($K$2;Calcul_Mois;0)+1)-INDEX(Calcul;EQUIV(TEXTE(C" & derLn & ;""0"");'Détail'!$A:$A;0);EQUIV($K$2;Calcul_Mois;0))"

Et en anglais c'est des virgules dans les formules alors ça plante alors comment faire?

Je l'ai fait manuellement mais je cherche la façon de le faire par une macro.

Merci,

Oiseau bleu

Bonjour oiseaubleu,

l'éditeur VBA dispose de fonctionnalités de recherche et de remplacement. Il suffit de sélectionner la commande Remplacer du menu Édition ou de taper le raccourci clavier Ctrl+H après avoir sélectionné la partie de texte concernée.

Il ne suffit pas de remplacer le point-virgule par une virgule, le nom de la fonction est différent dans chaque langue, tu trouve un outil de traduction en ligne à cette adresse: https://fr.excel-translator.de/translator/

Salut oiseaubleu, le fil

Oui sinon t'as la fonction Replace qui fait ça aussi, tu devra traiter toutes les cellules qui ont des formules, avec une boucle For Next par exemple, sinon le code VBA est en anglais par défaut. juste quelques truc à changer du style Format ou autre bon courage..

Bonjour,

Je crois que j'ai été mal compris.

Effectivement tu peux faire la modification dans VBA en utilisant dans Édition Rechercher ; et Remplacer , ;c'est ce que j'ai fait quand je dit que je l'ai fait manuellement. (sans l'aide de macros).

Par contre lorsque tu vas chercher une feuille excel en anglais et que tu l'ouvres avec un excel en français la conversion des fonctions d'excel se fait automatiquement.

Mais lorsque tu utilises en VBA Formula.Local tu vas porter une formule dans un fichier déjà ouvert en anglais et la conversion ne ce fait pas puisque tu essaie de lui passer un point-virgule au lieu d'une virgule dans le Formula.Local

Merci quand même pour les réponses; mais je cherche la façon de travailler avec une macro directement dans les modules et le code des feuilles pour changer les points-virgules par des virgules dans les Formula.Local.

Oiseau bleu

Bonsoir

Je ne suis pas sûr d'avoir tout compris.

Tu dois traduire en anglais puis en français, hors dans une formule, un point-virgule reste un point-virgule, que ce soit en fançais ou en anglais.

Ne parlerai-tu pas plutôt du résultat, du style tu attends un point comme dans = 31.64 et non une virgule comme = 31,64 ?

Car si c'est cela, alors pas besoin de macro.

Panneau de configuration, Région, tout en bas : Paramètres supplémentaires, et là Symbole décimale :

Choisi entre point, point-virgule. attention entre le point du pavé numérique et le point du clavier alpha en mode Maj.

En espérant que cela puisse t'aider.

Cordia5

bonjour à tous ,

Je ne comprend pas pourquoi changer , en ; et vice versa:

d'autant qu'il faudrait également franciser ou "angliciser" les noms de fonction.

FormulaLocal donne la formule dans la langue utilisée par Excel (Français, Allemand ....)

Formula donne la formule contenu dans la cellule en "version originale VBA" (anglais)

En utilisant toujours Formula la formule reste valable quelque soit la langue d'Excel.

Petit test :

Range("F1").FormulaLocal = "=somme(A1;A10)"
Range("F4").Formula = "=sum(A1,A10)"

MsgBox Range("F1").FormulaLocal & " " & Range("F1").Formula
MsgBox Range("F4").FormulaLocal & " " & Range("F4").Formula

A+

Bonjour et merci pour vos réponses.

Désolé; mais si j'utilise Formula dans Excel français j'ai une erreur 1004.

Merci,

Oiseau bleu

Bonjour,

la proposition d'algoplus est celle à privilégier.

Si tu as des erreurs c'est que tu écris mal tes formules.

Le mieux est de la valider sur feuille en enregistrement de macro, tu auras une bonne base de départ.

Elle est en R1C1, ce qui n'est pas forcément plus mal, voire avec des erreurs en moins dans certains cas. Autant la garder ainsi et utiliser .FormulaR1C1. Juste un copier-coller à faire et aucune modif à faire sauf si tu as des parties variables à adapter par macro.

eric

Salut oiseaubleu,le fil

Comme dis l'aide d'Excel

Range. Formula, propriété (Excel)

Renvoie ou définit une valeur de type Variant qui représente la formule de l’objet dans une notation de style A1 et dans la langue de la macro.

Désolé; mais si j'utilise Formula dans Excel français j'ai une erreur 1004.

Tu dois lui parler en anglais, et là plus de problème normalement,

Bonjour,

J'aimerais savoir comment faire pour remplacer des points virgules par des virgules et l'inverse parce que j'ai un fichier en français que je dois convertir en anglais et par la suite d'anglais à français par une macro.

Donc comment changer dans les modules et les Microsoft Excel Objects (le code associé à chacune des feuilles) toutes les points virgules par des virgules?

Est-ce que cela peut se faire par un InputBox pour demander le rechercher ( ; ) et le remplacer par ( , ) à l'intérieur d'une macro?

J'utilise des FormulaLocal dans les modules et le code associé aux feuilles.

Exemple :

Range("F" & derLn).FormulaLocal = "=INDEX(Calcul;EQUIV(TEXTE(C" & derLn & ";""0"");'Détail'!$A:$A;0);" & _

"EQUIV($K$2;Calcul_Mois;0)+1)-INDEX(Calcul;EQUIV(TEXTE(C" & derLn & ;""0"");'Détail'!$A:$A;0);EQUIV($K$2;Calcul_Mois;0))"

Et en anglais c'est des virgules dans les formules alors ça plante alors comment faire?

Je l'ai fait manuellement mais je cherche la façon de le faire par une macro.

Merci,

Oiseau bleu

Je ne sais pas si ca marche pour les compatibilités anglais Francais etc. Si c'est juste changer des , en . j'utiliserai une query > split (séparer?) ma colonne en 2 colonnes en foncion de /,/. puis les regrouper (fusionner les colonnes) avec le caractère voulu

Rechercher des sujets similaires à "remplacer points virgule virgules macro"