Excel: entrer des formules en anglais avec Excel en français [Résolu]

Signaler
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
Salut,

Je genère un document Excel à partir d'un programme C#. Dans ce document, il y a des formules. Comment entrer ces formules dans mon code C# pour que:
-si le programme tourne sur un pc avec un Excel Fr, alors ça génère les formules en fr
-si le programme tourne sur un pc avec un Excel anglais, alors ça génère les formules en anglais?

Si je fais

string formule = "=NB(A1:A10)";
_currentWorkSheet.Cells[1, 1] = formule;
Alors ça marche sur mon pc qui a les paramètres régionaux à FR, mais ça ne marche pas sur un pc dont les paramètres sont mis à Anglais.

Mais si je fais


string formule = "=Count(A1:A10)";

_currentWorkSheet.Cells[1, 1] = formule;
alors, ça ne marche pas sur mon pc avec paramètres fr (ça me genère une exception COM)

J'ai aussi essayé, sans succès:

((Excel.Range)_currentWorkSheet.Cells[1, 1]).Formula = formule; (exception COM si la formule est en anglais sur mon pc fr)

et

((Excel.Range)_currentWorkSheet.Cells[1, 1]).FormulaLocal = formule; (pas d'exception, mais Excel ne reconnaît pas la formule et m'affiche #NOM? dans la cellule si la formule est en anglais)

Dans l'idéal, je voudrais pouvoir rentrer la formule en anglais dans mon code et qu'excel se charge du reste.

Quelqu'un a une idée?
Merci

2 réponses

Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
7
J'ai trouvé:

Il faut d'abord mettre la culture du thread en anglais US (pas NZ, GB ou autre! US!), puis écrire la formule an anglais, et finalement l'intégrer comme ça:

((Excel.Range)_currentWorkSheet.Cells[rowIndex, colIndex]).Formula = formula;

Puis après Excel se charge de traduire la formule si il n'est pas installé en anglais.
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
7
J'ai aussi essayé de jouer avec la culture du thread courant, mais sans grand succès non plus.