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

Traduction de fonction crée par VBA

2 réponses
Avatar
Yom
Bonjour à tous

Je vous décris ma situation : j'ai fait un outil de chiffrage dans lequel
j'alimente beaucoup de cellule par des formules que je crée via une macro
(exemple :

Sheets("PRU_POI_SF").Cells((58 + countXT), cp3 + 2 * I).FormulaLocal
= "=" & "(" & addiprod & "(" & lign & "57" & cln & (7 + 2 * I) & ":" & lign &
(57 + countXT - 1) & cln & (7 + 2 * I) & sepa & power & "(1-(" & lign & "57"
& cln & "5" & ":" & lign & (57 + countXT - 1) & cln & "5" & ")" & sepa &
"-1))-" & addiprod & "(" & lign & "57" & cln & (7 + 2 * I) & ":" & lign & (57
+ countXT - 1) & cln & (7 + 2 * I) & "))*(1+" & lign & (57 + countXT) & cln &
(6 + 2 * I) & ")"

Dans cet exemple "addiprod" contient la chaine "SOMMEPRODUIT", lign la
lettre "L", cln la lettre "C", sepa = ";", power = "puissance", enfin bref
vous avez compris que je renommais les fonctions d'excel.

J'initialise ces variables au début de ma macro en fonction du langage
utilisé sur le poste sur lequel se déroule la macro. (Je ne pouvais pas
passer par un appel simple meme pour les lignes et les colonnes en français
ligne & colonne correspondent à L&C, en anglais à R&C, en allemand à Z&S etc
...) cette macro est utilisée sur des postes couvrant un eventail de 5
langues diffèrentes, d'ou ma bidouille pour éviter de me servir des noms de
fonctions "en dur".

Aprés ce plantage de décor qui me semble complet, ma question est la
suivante :

n'y aurait il pas un système de nommage des fonctions Excel par reference
qui me permettrait d'ecrire un code un peu plus "pro" ? Je pense à un système
universel qui ne tiendrait pas compte des variations d'environnement (en
terme de langue) auquels je suis confrontés

Par exemple au lieu d'ecrire " "=" & "(" & addiprod & "(" ", j'ecrirai " "="
& "(" & functcode0001 & "(" " qui correspondrait à SOMMEPRODUIT.

D'avance merci aux futurs "solutionneurs"

Yom

2 réponses

Avatar
Daniel
Bonjour.
A priori, en utilisant :
Sheets("PRU_POI_SF").Cells((58 + countXT), cp3 + 2 * I).Formula
et en codant la fonction sumproduct, tu dois retrouver la fonction en
langage local sur ta feuille.
Cordialement.
Daniel
"Yom" a écrit dans le message de news:

Bonjour à tous

Je vous décris ma situation : j'ai fait un outil de chiffrage dans lequel
j'alimente beaucoup de cellule par des formules que je crée via une macro
(exemple :

Sheets("PRU_POI_SF").Cells((58 + countXT), cp3 + 2 *
I).FormulaLocal
= "=" & "(" & addiprod & "(" & lign & "57" & cln & (7 + 2 * I) & ":" &
lign &
(57 + countXT - 1) & cln & (7 + 2 * I) & sepa & power & "(1-(" & lign &
"57"
& cln & "5" & ":" & lign & (57 + countXT - 1) & cln & "5" & ")" & sepa &
"-1))-" & addiprod & "(" & lign & "57" & cln & (7 + 2 * I) & ":" & lign &
(57
+ countXT - 1) & cln & (7 + 2 * I) & "))*(1+" & lign & (57 + countXT) &
cln &
(6 + 2 * I) & ")"

Dans cet exemple "addiprod" contient la chaine "SOMMEPRODUIT", lign la
lettre "L", cln la lettre "C", sepa = ";", power = "puissance", enfin bref
vous avez compris que je renommais les fonctions d'excel.

J'initialise ces variables au début de ma macro en fonction du langage
utilisé sur le poste sur lequel se déroule la macro. (Je ne pouvais pas
passer par un appel simple meme pour les lignes et les colonnes en
français
ligne & colonne correspondent à L&C, en anglais à R&C, en allemand à Z&S
etc
...) cette macro est utilisée sur des postes couvrant un eventail de 5
langues diffèrentes, d'ou ma bidouille pour éviter de me servir des noms
de
fonctions "en dur".

Aprés ce plantage de décor qui me semble complet, ma question est la
suivante :

n'y aurait il pas un système de nommage des fonctions Excel par reference
qui me permettrait d'ecrire un code un peu plus "pro" ? Je pense à un
système
universel qui ne tiendrait pas compte des variations d'environnement (en
terme de langue) auquels je suis confrontés

Par exemple au lieu d'ecrire " "=" & "(" & addiprod & "(" ", j'ecrirai "
"="
& "(" & functcode0001 & "(" " qui correspondrait à SOMMEPRODUIT.

D'avance merci aux futurs "solutionneurs"

Yom



Avatar
Yom
J'avais pensé à cette solution meis les coordonnées des cellules à prendre en
compte dans les fonctions (somme, sommeproduit etc ..) ne sont pas fixes et
apparement formulalocal est la seule method à autoriser le style de reference
L1C1

Quand je me sert de "formula" avec des coorodonnées variable je me retrouve
avec des #NOM? dans les cellules que j'ai renseignées via la macro.