Equivalents de fonctions locales en VBA

Gisamark

XLDnaute Junior
[RESOLU]

Bonjour à tous,

J'ai un fichier excel avec pleins de fonctions locales (entrées directement dans les cases).
Mais j'aimerais que l'application soit utilisable aussi bien en français qu'en anglais et donc traduire toutes ces fonctions en VBA.

Avez-vous un lien où l'on puisse trouver de telles équivalences ?

Mes formules : (qui sont donc rentrées directement dans des cases)
=SI(D14<20;SI(D14<10;D14;PLAFOND(D14;5));PLAFOND(D14;10))
=PLANCHER(D23;10)
=ENT(LOG(D23))
=ARRONDI(D23/10^D25/10;0)
=COS(RADIANS(G9-G17))

Voilà, j'aimerais rentrer ces formule par VBA en utilsant Range("XY").Value = ...

Merci beaucoup ! :)
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Bonjour,

Pour information, dess formules saisies en Francais dans un Excel en Francais seront traduites et interpretées correctement dans un Excel Anglais.

Dans le dossier : C:\Program Files\Microsoft Office\Officexx\1036 tu trouveras également un fichier VBALIST.XLS qui contient les équivalences
Où xx = la version d'Office.

Un autre moyen est d'utiliser l'enregistreur de Macro.

Voilà, j'aimerais rentrer ces formule par VBA en utilsant Range("XY").Value = ...
Je n'ai pas bien compris ce que tu voulais faire :
Code:
ActiveCell.Formula = "=INT(LOG(" & Range("A2").Address(0, 0) & "))"
'ou
MsgBox Int(Log(Range("A2").Value))
'??
 
Dernière édition:

Gisamark

XLDnaute Junior
Re : Equivalents de fonctions locales en VBA

Merci de cette première réponse.

Pour information, dess formules saisies en Francais dans un Excel en Francais seront traduites et interpretées correctement dans un Excel Anglais.
Je ne voudrais pas mettre tes propos en doute, mais je préferais dans ce cas que quelqu'un qui a une version anglaise puisse tester pour me confirmer.
J'ai une version FR.

C'est pour une entreprise, et les clients auront des version FR ou EN.

Je n'ai pas bien compris ce que tu voulais faire :
Citation:
Voilà, j'aimerais rentrer ces formule par VBA en utilsant Range("XY").Value = ...
En fait, au lieu d'écrire directement dans une case =ENT(D2), je voudrais écrire dans visual basic editor Range("la case en question").Value = Int ("D2")
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Re,

C'est garanti. quelqu'un va sans doute faire le test sur le Forum.
Régulierement on voit sur le forum des questions qui sont posées en anglais et en ouvrant le fichier les fontion sont traduites.

Les seules restrictions sont :
- Si tu écrit des arguments entre guillemets, ils ne seront pas traduits et là ça ne fontionnera pas.
Par exemple =TEXTE(A3,"jj/mm/aaaa") va se traduire par =TEXT(A3,"jj/mm/aaaa") alors qu'en version anglaise, c'est =TEXT(A3,"dd/mm/yyyy") qui fontionnera.
- Et eventuellement l'utilisation de fontions macros complementaires (mais ça c'est à confirmer)
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Re,

Il faut ecrire :
Range("la case en question").Value = Int (Range("D2"))

Si tu dois creer un feuille Excel qui doit fontionner en EN/FR, le mieux est quand meme de la tester (faire tester) un fois en dans chaque langue pour voir à quoi ça ressemble ...
 

ROGER2327

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Bonjour à tous
La procédure
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim cel As Range
   For Each cel In Selection.Cells
      If cel.Formula <> "" Then MsgBox cel.Address & " " & cel.Formula
   Next cel
End Sub[/B][/COLOR]
affiche successivement les formules en Anglais (si l'on peut dire ainsi sans offenser nos amis réellement anglophones) des cellules sélectionnées.
Mais, aux réserves émises par Catrice près, je vois pas vraiment l'intérêt de traduire les formules.​
ROGER2327
#2163
 

Gisamark

XLDnaute Junior
Re : Equivalents de fonctions locales en VBA

Merci.

J'ai essayé de rentrer cette ligne dans VBE, et le code plante :
Worksheets("Fantôme").Range("E5").FormulaLocal = "=if(E4<20,if(E4<10,E4,CEILING(E4,5)),CEILING(E4,10))"

J'ai aussi essayé en remplaçant .FormulaLocal par .Value mais ça ne fonctionne pas non plus.

Il y a donc quelque chose que j'ai mal fait ou que je n'ai pas comprise.
(j'ai remplacer les "si" par des "if" et les ; par des ,)

Quelqu'un a une idée ?
 

MJ13

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Bonjour à tous

Sinon à tester:

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 19/11/2009 par MJ
'
'
ActiveCell.FormulaR1C1 = _
"=IF(R[13]C[3]<20,IF(R[13]C[3]<10,R[13]C[3],CEILING(R[13]C[3],5)),CEILING(R[13]C[3],10))"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=FLOOR(R[21]C[3],10)"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=INT(LOG(R[20]C[3]))"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=ROUND(R[19]C[3]/10^R[21]C[3]/10,0)"
Range("A5").Select
ActiveCell.FormulaR1C1 = "=COS(RADIANS(R[4]C[6]-R[12]C[6]))"
Range("A6").Select
End Sub
 

chris

XLDnaute Barbatruc
Re : Equivalents de fonctions locales en VBA

Bonjour
Je ne voudrais pas mettre tes propos en doute

Ce que tu fais néanmoins...

Je confirme : j'ai FR à la maison, US au boulot et c'est transparent sauf si on utilise les fonctions de l'utilitaire d'analyse (cas assez limités).

J'ai développé une appli qui tourne dans tous les pays du monde sans souci et je l'ai faite en version FR.

Ce sera donc totalement contreproductif de réécrire en VBA ce qui se fait nativement dans Excel d'autant que selon le niveau de sécurité, les macros seront peut-être désactivées.
De plus tu va rencontrer d'autres problèmes liés aux paramètres qu'Excel récupère dans les paramètres régionaux de Windows.

Enfin nombre de fonctions Excel ne sont pas utilisables via VBA, n'ont pas d'équivalent VBA et nécessitent une réécriture.
 

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame