Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

incompatibilité langue Ang ->Fr

6 réponses
Avatar
Pascal
Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent des
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal

6 réponses

Avatar
Daniel.C
Bonjour.
Poste le code qui provoque l'erreur. Il est rare que tu aies besoin de
distinguer les versions anglaises des autres.
Pour tester la version :
If Application.International(xlCountryCode) = 1 Then
MsgBox "Version anglaise"
End If
--
Cordialement.
Daniel
"Pascal" ,com> a écrit dans le message de news:

Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent des
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal





Avatar
Pascal
hello Daniel,
merci pour ta réponse
je ne poste que la boucle qui génère cet erreur
'----------------------------------------
For cpt = 3 To PlaceLigne
Range("J" & cpt).FormulaLocal = "=SI(B" & cpt & "="""";""""
;SOMMEPROD(($B$3:$B$1000=B" & cpt & ")*($E$3:$E$1000=" & "E" & cpt & ")))"
Next cpt

Range("AE" & PlaceLigne).FormulaLocal = "=SI(B" & PlaceLigne &
"=0;"""";SI(ET(ESTNUM(AC" & PlaceLigne & ");AC" & PlaceLigne & "=0);0;SI(AC"
& PlaceLigne & "=2;Tarifs!$B$5;SI(AC" & PlaceLigne & "=3;Tarifs!$B$6;SI(AC"
& PlaceLigne & "=1;Tarifs!$B$4;SI(J" & PlaceLigne & "=1;Tarifs!$B$4;SI(J" &
PlaceLigne & "=2;Tarifs!$B$5;Tarifs!$B$6 )))))))"

je suppose que je devrai mettre en fonction de la version FR= SOMME ANG=
SUM c'est cela?

Pascal


"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Poste le code qui provoque l'erreur. Il est rare que tu aies besoin de
distinguer les versions anglaises des autres.
Pour tester la version :
If Application.International(xlCountryCode) = 1 Then
MsgBox "Version anglaise"
End If
--
Cordialement.
Daniel
"Pascal" ,com> a écrit dans le message de news:

Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent des
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal









Avatar
Pascal
hello,
ou puis-je trouver la liste des codes, je sais déjà 1=anglais
merci
Pascal

"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour.
Poste le code qui provoque l'erreur. Il est rare que tu aies besoin de
distinguer les versions anglaises des autres.
Pour tester la version :
If Application.International(xlCountryCode) = 1 Then
MsgBox "Version anglaise"
End If
--
Cordialement.
Daniel
"Pascal" ,com> a écrit dans le message de news:

Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent des
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal









Avatar
Corto
Bonjour Pascal,
Si tu ne veux pas te compliquer la vie, utilise la propriété Formula au
lieu de FormulaLocal et tu mets la fonction en Anglais quelque soit la
langue de l'utilisateur.

Corto

Pascal a écrit :
Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent de s
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal






Avatar
Modeste
Bonsour® Pascal avec ferveur ;o))) vous nous disiez :

je ne poste que la boucle qui génère cet erreur



;o)))
le probleme précisément est l'usage de FormulaLocal....
sur un poste Anglais le langage utilisé par FormulaLocal est :.... l'ANGLAIS !!!!!

dans ta macro utilise donc la forme :
Range("AE" & PlaceLigne).Formula = "=IF(B" & PlaceLigne &
"=0, """", IF(AND(ISNUM(AC" & PlaceLigne & "),AC" & PlaceLigne & "=0),0,IF(AC"
& PlaceLigne & "=2,Tarifs!$B$5,IF(AC" & PlaceLigne & "=3,Tarifs!$B$6,IF(AC"
& PlaceLigne & "=1,Tarifs!$B$4,IF(J" & PlaceLigne & "=1,Tarifs!$B$4,IF(J" &
PlaceLigne & "=2,Tarifs!$B$5,Tarifs!$B$6 )))))))"

les noms de fonctions sont sous leurs formes US
les ";" sont renplacés par ","



--
--
@+
;o)))
Avatar
Pascal
merci à vous c'est génial,
Si j'ai donc bien compris:
quelque soit la langue utilisée, si la formule est déjà dans la cellule elle
se changera en fonction de la langue de l'utilisateur et si j'entre la
formule par vba dans la cellule, j'utilise Formula plutôt que formulalocal

super génial merci à vous

Pascal


"Corto" a écrit dans le message de groupe de
discussion :
Bonjour Pascal,
Si tu ne veux pas te compliquer la vie, utilise la propriété Formula au
lieu de FormulaLocal et tu mets la fonction en Anglais quelque soit la
langue de l'utilisateur.

Corto

Pascal a écrit :
Bonjour,
sur une application, avec Excel en FR, lorsque je le transmet sur une
version Anglaise, j'ai des erreurs dans les cellules qui contiennent des
macros (le code est insérer en partie par VBA)

ex:
=SI(SOMME(O5:R5)=0;"";Prix-SI(OU((SOMME(O5:R5)>1);S5>0);T5))
me donne #Nom
Existe t'il une façon de parer à cela?
OU
comment détecter (en VBA) la version Fr ou Ang et agir en fonction

merci de vos idées

Pascal