cs_marcandres
Messages postés2Date d'inscriptionlundi 28 février 2011StatutMembreDernière intervention28 février 2011
-
28 févr. 2011 à 16:51
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
1 mars 2011 à 18:33
Bonjour,
je dois développer des macros qui doivent fonctionner en plusieurs langues (FR et anglais).
Dans mes macros j'ajoute des formules et je dois faire attention à la langue en cours sur le PC qui exécute la macro.
J'ai codé cela:
Range("S2").Select
If test_Langue_US Then
ActiveCell.FormulaLocal = "=IF(MID(F2,9,1)=""_"",IF(MID(F2,13,1)=""/"",""Item_Sol"",""Fig_Sol""),""Inv_Fig"")"
Else
ActiveCell.FormulaLocal = "=SI(STXT(F2,9,1)=""_"",SI(STXT(F2,13,1)=""/"",""Item_Sol"",""Fig_Sol""),""Inv_Fig"")"
End If
Range("S2").Select
Selection.AutoFill Destination:=Range("S2:S" & nbligneP + 1), Type:=xlFillDefault
Avec la fonction:
Function test_Langue_US()
Set objLangSet = Application.LanguageSettings
If objLangSet.LanguageID(msoLanguageIDUI) = 1033 Then
test_Langue_US = True
Else
test_Langue_US = False
End If
End Function
MAIS J'AI un gros problème concernant le séparateur de formules.
Pour certains PC, le séparateur est la virgule.
Example: =MID(F2,13,1)
Pour d'autres PC, le séparateur est le point-virgule
Example: =MID(F2;13;1)
Deux questions:
- comment passer outre de ce problème?
- sinon, comment détecter sur le PC le séparateur valable pour le Excel en cours ?
J'espère que ma question est claire.
Merci de vos réponses.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 28 févr. 2011 à 20:02
Bonjour,
A la place de FormulaLocal, préfère FormulaR1C1
Range("S2").Select
If test_Langue_US Then
ActiveCell.FormulaLocal = "=IF(MID(F2,9,1)=""_"",IF(MID(F2,13,1)=""/"",""Item_Sol"",""Fig_Sol""),""Inv_Fig"")"
Else
ActiveCell.FormulaLocal = "=SI(STXT(F2,9,1)=""_"",SI(STXT(F2,13,1)=""/"",""Item_Sol"",""Fig_Sol""),""Inv_Fig"")"
End If