Patience : Réponse (sous forme de dissertation....Pfffff....encore des devoirs à
la maison !) en cours d'élaboration !
AV
Patience : Réponse (sous forme de dissertation....Pfffff....encore des devoirs à
la maison !) en cours d'élaboration !
AV
Patience : Réponse (sous forme de dissertation....Pfffff....encore des devoirs à
la maison !) en cours d'élaboration !
AV
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
Mais non, mais non, j'abuserais pas...mais comme ça doit figurer dans ton
prochain bouquin ("Edition du Tonneau"), je peaufine !
Et puis là, le jour est levé donc je pars aux champignons !
AV
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
Mais non, mais non, j'abuserais pas...mais comme ça doit figurer dans ton
prochain bouquin ("Edition du Tonneau"), je peaufine !
Et puis là, le jour est levé donc je pars aux champignons !
AV
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
Mais non, mais non, j'abuserais pas...mais comme ça doit figurer dans ton
prochain bouquin ("Edition du Tonneau"), je peaufine !
Et puis là, le jour est levé donc je pars aux champignons !
AV
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
--
Fred
Pour répondre enlevez nsp
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
--
Fred
Pour répondre enlevez nsp
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
--
Fred
Pour répondre enlevez nsp
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a été
prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le
paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il n'y
a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si
la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une
chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments dans
les
fonctions et le point comme symbole décimal (pour que, évidemment, il n'y
ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > virgule (beurkkk !..)
=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de
respecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument, une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une variable
chaîne
* Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets
avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de
double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm & ",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une variable
chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5 variable)
*Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &
"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &
")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," & guillm
&
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &
"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar & """"
&
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm & ","
& plg2
& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au
niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits
sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses
bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$
--
Fred
Pour répondre enlevez nsp
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a été
prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le
paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il n'y
a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si
la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une
chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments dans
les
fonctions et le point comme symbole décimal (pour que, évidemment, il n'y
ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > virgule (beurkkk !..)
=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de
respecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument, une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une variable
chaîne
* Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets
avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de
double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm & ",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une variable
chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5 variable)
*Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &
"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &
")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," & guillm
&
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &
"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar & """"
&
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm & ","
& plg2
& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au
niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits
sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses
bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." <fredpost@free.fr> a écrit dans le message news:
3fa2884d$0$27589$626a54ce@news.free.fr...
--
Fred
Pour répondre enlevez nsp
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a été
prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le
paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il n'y
a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si
la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une
chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments dans
les
fonctions et le point comme symbole décimal (pour que, évidemment, il n'y
ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > virgule (beurkkk !..)
=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de
respecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument, une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une variable
chaîne
* Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets
avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de
double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm & ",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une variable
chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5 variable)
*Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &
"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &
")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," & guillm
&
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &
"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar & """"
&
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm & ","
& plg2
& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au
niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits
sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses
bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$
--
Fred
Pour répondre enlevez nsp
Bon OK je te contacte en bal perso ;-))
--
Misange migrateuse http://www.excelabo.net
==== Attention : Disciplus a déménagé !==== >
"AV" a écrit dans le message de news:
bo01nu$jg$Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg]
&
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a
été
prisedans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit leparamétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il
n'y
a pasde variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, sila chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
unechaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments
dans
lesfonctions et le point comme symbole décimal (pour que, évidemment, il
n'y
ai pasde confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > > virgule (beurkkk !..)=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
derespecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument,
une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une
variable
chaîne* Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemetsavant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise dedouble-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm &
",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une
variable
chaîneet une plage variable (dernière ligne des plages A1:A5 et B1:B5
variable)
*Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," &
guillm
&laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que
la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar &
""""
&",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm &
","
& plg2& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
auniveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interditssans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour sesbonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$
--
Fred
Pour répondre enlevez nsp
Bon OK je te contacte en bal perso ;-))
--
Misange migrateuse http://www.excelabo.net
==== Attention : Disciplus a déménagé !==== >
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:
bo01nu$jg$1@news-reader5.wanadoo.fr...
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg]
&
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a
été
prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le
paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il
n'y
a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si
la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une
chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments
dans
les
fonctions et le point comme symbole décimal (pour que, évidemment, il
n'y
ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > > virgule (beurkkk !..)
=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de
respecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument,
une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une
variable
chaîne
* Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets
avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de
double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm &
",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une
variable
chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5
variable)
*Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &
"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &
")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," &
guillm
&
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &
"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que
la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar &
""""
&
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm &
","
& plg2
& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au
niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits
sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses
bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." <fredpost@free.fr> a écrit dans le message news:
3fa2884d$0$27589$626a54ce@news.free.fr...
--
Fred
Pour répondre enlevez nsp
Bon OK je te contacte en bal perso ;-))
--
Misange migrateuse http://www.excelabo.net
==== Attention : Disciplus a déménagé !==== >
"AV" a écrit dans le message de news:
bo01nu$jg$Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg]
&
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?
Heu. c'est pas exactemnt ça.
Allons-y !
Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a
été
prisedans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit leparamétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il
n'y
a pasde variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, sila chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
unechaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments
dans
lesfonctions et le point comme symbole décimal (pour que, évidemment, il
n'y
ai pasde confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !
## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire
## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > > virgule (beurkkk !..)=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
derespecter la casse pour le nom des fonctions
## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")
## Exemple moins simple N°4 - Calcul d'une formule avec, en argument,
une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")
## Exemple moins simple N°5 - Calcul de la même formule avec une
variable
chaîne* Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemetsavant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise dedouble-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm &
",B1:B5)")
## Exemple moins simple N°6 - Calcul de la même formule avec une
variable
chaîneet une plage variable (dernière ligne des plages A1:A5 et B1:B5
variable)
*Méthode longue obligatoire et obligation de concaténer pour
reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," &
guillm
&laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &"," & "B1:B" & derL & ")")
## Exemple moins simple N°7 - Même calcul mais la feuille est autre que
la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar &
""""
&",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm &
","
& plg2& ")")
## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
auniveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]
C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interditssans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour sesbonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"
AV
"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$
--
Fred
Pour répondre enlevez nsp
D'accord pour les bonnes ouvres , je serai à18h Gare d'Austerlitz
D'accord pour les bonnes ouvres , je serai à18h Gare d'Austerlitz
D'accord pour les bonnes ouvres , je serai à18h Gare d'Austerlitz
Juste histoire de chicaner, tu as parlé de matricielles : tu n'aurais pas un
ch'tit exemple ?
Juste histoire de chicaner, tu as parlé de matricielles : tu n'aurais pas un
ch'tit exemple ?
Juste histoire de chicaner, tu as parlé de matricielles : tu n'aurais pas un
ch'tit exemple ?