incompatibilité langue Ang ->Fr

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #17521791
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





Pascal
Le #17522581
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" 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









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

"Daniel.C" 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









Corto
Le #17523371
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






Modeste
Le #17523361
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)))
Pascal
Le #17523921
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" 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







Publicité
Poster une réponse
Anonyme