J'aimerais pouvoir utiliser une variable locale dans une
formule : par exemple :
A B C D E
1 2 3 4 5
=SI(VARDEF(A1:E1)>2;VARGET())
De sorte que je ne suis pas obligé de reprendre A1:E1 dans la formule
lors de sa deuxième occurrence.
Ici l'exemple est simple, mais VARDEF pourrait être par exemple:
RECHERCHEV(...;....;...;FAUX)*RECHERCHEH(...;...;...;FAUX)
et là, c'est pénible de taper deux fois l'argument.
Est-ce que quelqu'un a une solution ?
Merci d'avance.
Je m'en suis finalement sorti avec une fonction VBA et une variable statique, mais ça à l'air de ramer un peu...
Merci si vous avez une autre idée (une sorte de "NOMS" mais en références relatives sur les lignes pour cet exemple...)
MichD
Ce que je voulais signifier :
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM. Cela peut être aussi une formule plutôt qu'une référence à une plage de cellules
Exemple :
Je crée un NOM que je nomme "Ind" et dans la ligne du bas de la fenêtre de la création du nom j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 ) Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind Tu peux inscrire ta formule complète : SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ; J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble de la colonne. Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le nom soit plus représentatif de ce que signifie le résultat de cette formule dans ton application.
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM.
Cela peut être aussi une formule plutôt qu'une référence à une plage de
cellules
Exemple :
Je crée un NOM que je nomme "Ind"
et dans la ligne du bas de la fenêtre de la création du nom
j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 )
Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind
Tu peux inscrire ta formule complète :
SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ;
J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble de la
colonne.
Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le
nom soit plus représentatif de ce que signifie le résultat de cette formule
dans ton
application.
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM. Cela peut être aussi une formule plutôt qu'une référence à une plage de cellules
Exemple :
Je crée un NOM que je nomme "Ind" et dans la ligne du bas de la fenêtre de la création du nom j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 ) Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind Tu peux inscrire ta formule complète : SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ; J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble de la colonne. Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le nom soit plus représentatif de ce que signifie le résultat de cette formule dans ton application.
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM. Cela peut être aussi une formule plutôt qu'une référence à une plage de cellules
Exemple :
Je crée un NOM que je nomme "Ind" et dans la ligne du bas de la fenêtre de la création du nom j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 ) Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind Tu peux inscrire ta formule complète : SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ; J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble de la colonne. Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le nom soit plus représentatif de ce que signifie le résultat de cette formule dans ton application.
D'accord merci ! J'avais oublié en effet qu'un NOM peut aussi être une formule.
Ca marche effectivement très bien. Mais l'intérêt de VARDEF / VARGET c'est que je vois dans ma formule la définition du "NOM" -- donc plus facile pour modifier ou repérer une erreur.
Par exemple si le "NOM" `TheNumber` est défini comme "=L[-1]C" (la cellule du dessus), utiliser la formule "=TheNumber" n'est franchement pas éclairant...
Et puisque les "NOMS" peuvent stocker des formules, on aimerait qu'ils acceptent aussi des paramètres...
Bonne soirée, et merci pour ce rappel sur les "NOMS"
Le 30/04/2013 19:46, MichD a écrit :
Ce que je voulais signifier :
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM.
Cela peut être aussi une formule plutôt qu'une référence à une
plage de cellules
Exemple :
Je crée un NOM que je nomme "Ind"
et dans la ligne du bas de la fenêtre de la création du nom
j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 )
Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind
Tu peux inscrire ta formule complète :
SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ;
J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble
de la colonne.
Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le
nom soit plus représentatif de ce que signifie le résultat de cette
formule dans ton
application.
D'accord merci !
J'avais oublié en effet qu'un NOM peut aussi être une formule.
Ca marche effectivement très bien. Mais l'intérêt de VARDEF / VARGET
c'est que je vois dans ma formule la définition du "NOM" -- donc plus
facile pour modifier ou repérer une erreur.
Par exemple si le "NOM" `TheNumber` est défini comme "=L[-1]C"
(la cellule du dessus), utiliser la formule "=TheNumber" n'est
franchement pas éclairant...
Et puisque les "NOMS" peuvent stocker des formules, on aimerait
qu'ils acceptent aussi des paramètres...
Bonne soirée, et merci pour ce rappel sur les "NOMS"
A ) D'abord, tu dois d'abord apprendre ce qu'est un NOM. Cela peut être aussi une formule plutôt qu'une référence à une plage de cellules
Exemple :
Je crée un NOM que je nomme "Ind" et dans la ligne du bas de la fenêtre de la création du nom j'insère la formule suivante :
=INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)
Dans la cellule, je peux simplement écrire : =SI(Ind<>0; J1/Ind; 0 ) Cela facilite la saisie.
Tu peux même aller plus loin : Dans fait référence au "NOM" -> Ind Tu peux inscrire ta formule complète : SI (INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1)<>0 ; J1/INDEX(Feuil1!$B1:$H1;1;Feuil1!$A1); 0 )
Et dans la cellule, tu inscris : =Ind et tu recopies sur l'ensemble de la colonne. Évidemment, tu peux trouver un nom plus représentatif que "Ind" afin que le nom soit plus représentatif de ce que signifie le résultat de cette formule dans ton application.
D'accord merci ! J'avais oublié en effet qu'un NOM peut aussi être une formule.
Ca marche effectivement très bien. Mais l'intérêt de VARDEF / VARGET c'est que je vois dans ma formule la définition du "NOM" -- donc plus facile pour modifier ou repérer une erreur.
Par exemple si le "NOM" `TheNumber` est défini comme "=L[-1]C" (la cellule du dessus), utiliser la formule "=TheNumber" n'est franchement pas éclairant...
Et puisque les "NOMS" peuvent stocker des formules, on aimerait qu'ils acceptent aussi des paramètres...
Bonne soirée, et merci pour ce rappel sur les "NOMS"
MichD
À part les "NOMS", je ne vois pas ce qui peut servir comme variable! Dans certains cas, il est possible de définir certaines cellules comme expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
À part les "NOMS", je ne vois pas ce qui peut servir comme variable!
Dans certains cas, il est possible de définir certaines cellules comme
expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
À part les "NOMS", je ne vois pas ce qui peut servir comme variable! Dans certains cas, il est possible de définir certaines cellules comme expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
À part les "NOMS", je ne vois pas ce qui peut servir comme variable! Dans certains cas, il est possible de définir certaines cellules comme expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
Oui et non : par exemple j'ai un vecteur colonne de mettons 4 élements et je cherche le plus petit qui soit positif :
Où la plage est le vecteur : ensemble relatif à la cellule constitué des 4 cellules au dessus dans cet exemple...
On peut aussi définir un "NOM" relatif : =SI(L[-5]C:L[-1]C<0;"neg";L[-5]C:L[-1]C)
et alors: EQUIV(VRAI;NOM=MIN(NOM);0) mais finalement c'est moins lisible...
Bonne journée.
Le 30/04/2013 21:45, MichD a écrit :
À part les "NOMS", je ne vois pas ce qui peut servir comme variable!
Dans certains cas, il est possible de définir certaines cellules comme
expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
Oui et non : par exemple j'ai un vecteur colonne de mettons 4 élements
et je cherche le plus petit qui soit positif :
À part les "NOMS", je ne vois pas ce qui peut servir comme variable! Dans certains cas, il est possible de définir certaines cellules comme expression de certaines valeurs pour des formules...
| TheNumber` est défini comme "=L[-1]C"
Faut être vraiment mal pris pour utiliser ce type de syntaxe!
Oui et non : par exemple j'ai un vecteur colonne de mettons 4 élements et je cherche le plus petit qui soit positif :
Je n'ai nulle envie de modifie ta façon de travailler ! ;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !
Bonne journée du 1er mai.
Le 01/05/2013 14:34, MichD a écrit :
Je n'ai nulle envie de modifie ta façon de travailler !
;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres
qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins
compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche
pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !
Je n'ai nulle envie de modifie ta façon de travailler ! ;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !
Bonne journée du 1er mai.
MichD
| mais je suis passé à XL 64 bits et le .xll ne marche pas
Sur le site de Misange : Excelabo.Net , tu peux lui envoyer un message. Son site héberger celui de Laurent Longre. Si tu veux savoir si la difficulté que tu rencontres est normale ou non pour Excel 64 bits, elle est peut-être en mesure de t'apporter une réponse. Laurent Longre n'est plus un participant sur les forums Excel.
MichD --------------------------------------------------------------- "GL" a écrit dans le message de groupe de discussion : 5181397a$0$2227$
Le 01/05/2013 14:34, MichD a écrit :
Je n'ai nulle envie de modifie ta façon de travailler ! ;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !
Bonne journée du 1er mai.
| mais je suis passé à XL 64 bits et le .xll ne marche pas
Sur le site de Misange : Excelabo.Net , tu peux lui envoyer
un message. Son site héberger celui de Laurent Longre.
Si tu veux savoir si la difficulté que tu rencontres est
normale ou non pour Excel 64 bits, elle est peut-être
en mesure de t'apporter une réponse.
Laurent Longre n'est plus un participant sur les forums Excel.
MichD
---------------------------------------------------------------
"GL" a écrit dans le message de groupe de discussion :
5181397a$0$2227$426a74cc@news.free.fr...
Le 01/05/2013 14:34, MichD a écrit :
Je n'ai nulle envie de modifie ta façon de travailler !
;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres
qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins
compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche
pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !
| mais je suis passé à XL 64 bits et le .xll ne marche pas
Sur le site de Misange : Excelabo.Net , tu peux lui envoyer un message. Son site héberger celui de Laurent Longre. Si tu veux savoir si la difficulté que tu rencontres est normale ou non pour Excel 64 bits, elle est peut-être en mesure de t'apporter une réponse. Laurent Longre n'est plus un participant sur les forums Excel.
MichD --------------------------------------------------------------- "GL" a écrit dans le message de groupe de discussion : 5181397a$0$2227$
Le 01/05/2013 14:34, MichD a écrit :
Je n'ai nulle envie de modifie ta façon de travailler ! ;-)
Oui en fait avant j'utilisais l'extension morefunc de Laurent Longres qui fournissait les DVAR / LVAR et fonctionnait très bien (un addins compilé en .xll) mais je suis passé à XL 64 bits et le .xll ne marche pas et malheureusement l'auteur n'a pas publié ses sources.
En VBA ça passe, mais ça reste super lent... une misère !