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

Nom de cellule dans des formules et recalcul

7 réponses
Avatar
Jean-Marc
Salut à tous,

Dans le but de simplifier la lecture de formules, je voudrais nommer des
cellules et utiliser les noms dans des formules.

Pour essayer, j'ai commencé par nommé C3 Largeur et C4 Hauteur
La formule donne :
=SI(AB122=1;(Largeur-3)*3+(Hauteur-3)*3;(Largeur-3)*2+(Hauteur-2.5)*2)

Cela fonctionne presque parfaitement. Je dis presque parce que si je change
la valeur de C3 ou de C4, la formule ne se recalcule pas. Je dois la
sélectionner et cliquer sur le V vert afin que la formule se recalcule et
que la bonne valeur s'affiche.

Comment cela se fait-il ?

Sans doute dois-je changer une option pour que le recalcul se fasse
automatiquement, mais laquelle ?

Sous question : Est-ce que je peux mettre le même nom sur différentes
feuilles et faire référence à une autre adresse (sur la feuille en question)
? Par exemple, est-il possible de faire Largeur avec réf !C3 sur Feuil1 et
Largeur avec réf !D12 sur Feuil4. Je pense que si je ne mets pas le nom de
la feuille devant, cela devrait fonctionner puisque dans ce cas je suis dans
la feuille active. Merci de me confirmer mon idée et que cela ne fera pas
d'interférence, ou de me prévenir si cela peut poser des pbl.

Merci de vos z'avis z'avisés,

Jean-Marc

7 réponses

Avatar
Daniel
Bonjour.
Pas bien compris.
J'ai reproduit ta formule sur un classeur et la modification d'une valeur
provoque le recalcul. Es-tu sûr que le recalcul automatique est actif ?
(Outils / Options / Calcul / Automatique).
Pour la sous-question, les noms sont définis au niveau du classeur, par
défaut, s'il n'y a pas de référence à une feuille, c'est la feuille active
qui est prise.
Cordialement.
Daniel
"Jean-Marc" a écrit dans le message de news:

Salut à tous,

Dans le but de simplifier la lecture de formules, je voudrais nommer des
cellules et utiliser les noms dans des formules.

Pour essayer, j'ai commencé par nommé C3 Largeur et C4 Hauteur
La formule donne :
=SI(AB122=1;(Largeur-3)*3+(Hauteur-3)*3;(Largeur-3)*2+(Hauteur-2.5)*2)

Cela fonctionne presque parfaitement. Je dis presque parce que si je
change
la valeur de C3 ou de C4, la formule ne se recalcule pas. Je dois la
sélectionner et cliquer sur le V vert afin que la formule se recalcule et
que la bonne valeur s'affiche.

Comment cela se fait-il ?

Sans doute dois-je changer une option pour que le recalcul se fasse
automatiquement, mais laquelle ?

Sous question : Est-ce que je peux mettre le même nom sur différentes
feuilles et faire référence à une autre adresse (sur la feuille en
question)
? Par exemple, est-il possible de faire Largeur avec réf !C3 sur Feuil1 et
Largeur avec réf !D12 sur Feuil4. Je pense que si je ne mets pas le nom de
la feuille devant, cela devrait fonctionner puisque dans ce cas je suis
dans
la feuille active. Merci de me confirmer mon idée et que cela ne fera pas
d'interférence, ou de me prévenir si cela peut poser des pbl.

Merci de vos z'avis z'avisés,

Jean-Marc




Avatar
Jean-Marc
Salut Daniel et merci de ta réponse,

Après plusieurs heures de recherches et un post ici, j'ai trouvé la source
de mon pbl (Évidemment, c'est +/- 10 min après le post que j'ai trouvé ... )

Pour ceux que cela intéresse, voici ce que j'ai trouvé :

"
Lorsque l'on définit un nom (Insertion Définir Nom) et que l'on saisit une
formule, il y a un
problème de recalcul si cette fonction est recopiée sur plusieurs onglets.
Pourquoi et comment
contourner le problème ?
1/ La portée d'un nom peut être relative à chaque onglet sans créer un nom
par onglet.
Après avoir créé MaFonc dans la Feuille1, revenir dans Insertion / Nom
/Définir pour ne laisser
que le point d'exclamation : on a =!$A$1 au lieu de Feuil1!$A$1
2/ Je peux créer =MaFonc dans l'onglet Feuil2, le $A$1 fera référence à la
cellule A1 de
l'onglet Feuil2 et non à celle de Feuil1
3/ Ceci marchait parfaitement dans Excel 5. Dans Excel 97 et 2000, le
recalcul ne se fait pas.
4/ Avec le "truc" suivant, cela fonctionne :
Dans une cellule, par exemple AutreFeuil!$A$1, mettre =si(maintenant();0;0)
et modifier le nom
MaFonc par = !$A$1 + AutreFeuil!$A$1
Cela force le recalcul.
"J'ai trouvé ceci à cette adresse : http://www.excelabo.net/xl/nommer.php
Merci Xavier (l'hauteur de ce texte)

Personnellement j'ajoute le +si(maintenant();0;0) directement dans la
formule de réf du nom. Cela à l'air de très bien fonctionner.


Jean-Marc





"Daniel" a écrit dans le message de
news:%
Bonjour.
Pas bien compris.
J'ai reproduit ta formule sur un classeur et la modification d'une valeur
provoque le recalcul. Es-tu sûr que le recalcul automatique est actif ?
(Outils / Options / Calcul / Automatique).
Pour la sous-question, les noms sont définis au niveau du classeur, par
défaut, s'il n'y a pas de référence à une feuille, c'est la feuille active
qui est prise.
Cordialement.
Daniel
"Jean-Marc" a écrit dans le message de
news:


Salut à tous,

Dans le but de simplifier la lecture de formules, je voudrais nommer des
cellules et utiliser les noms dans des formules.

Pour essayer, j'ai commencé par nommé C3 Largeur et C4 Hauteur
La formule donne :
=SI(AB122=1;(Largeur-3)*3+(Hauteur-3)*3;(Largeur-3)*2+(Hauteur-2.5)*2)

Cela fonctionne presque parfaitement. Je dis presque parce que si je
change
la valeur de C3 ou de C4, la formule ne se recalcule pas. Je dois la
sélectionner et cliquer sur le V vert afin que la formule se recalcule
et


que la bonne valeur s'affiche.

Comment cela se fait-il ?

Sans doute dois-je changer une option pour que le recalcul se fasse
automatiquement, mais laquelle ?

Sous question : Est-ce que je peux mettre le même nom sur différentes
feuilles et faire référence à une autre adresse (sur la feuille en
question)
? Par exemple, est-il possible de faire Largeur avec réf !C3 sur Feuil1
et


Largeur avec réf !D12 sur Feuil4. Je pense que si je ne mets pas le nom
de


la feuille devant, cela devrait fonctionner puisque dans ce cas je suis
dans
la feuille active. Merci de me confirmer mon idée et que cela ne fera
pas


d'interférence, ou de me prévenir si cela peut poser des pbl.

Merci de vos z'avis z'avisés,

Jean-Marc








Avatar
AV
Pourquoi et comment
contourner le problème ?


Pour un nom relatif à la feuille dans laquelle il est utilisé :
Insertion > Nom > Définir > Nom dans le classeur : "varA1" > fait référence à :
=INDIRECT("$A$1")

PS : Tu pouvais chercher et trouver la réponse dans ce lieu...
AV

Avatar
Jean-Marc
Salut et merci de ta réponse, Alain,

J'ai trouvé le =INDIRECT("$A$1") sur ce forum et je l'ai essayé, mais le
recalcul ne se faisait toujours pas automatiquement.
C'est la raison pour laquelle j'ai continué de chercher pour finir par
trouver.

Jean-Marc

"AV" a écrit dans le message de
news:%23N$
Pourquoi et comment
contourner le problème ?


Pour un nom relatif à la feuille dans laquelle il est utilisé :
Insertion > Nom > Définir > Nom dans le classeur : "varA1" > fait
référence à :

=INDIRECT("$A$1")

PS : Tu pouvais chercher et trouver la réponse dans ce lieu...
AV





Avatar
AV
J'ai trouvé le =INDIRECT("$A$1") sur ce forum et je l'ai essayé, mais le
recalcul ne se faisait toujours pas automatiquement.


Si, si....ça marche très très bien...depuis longtemps !

AV

Avatar
Jean-Marc
Lorsque j'inscris =INDIRECT("$A$1") il me le modifie automatiquement en
=INDIRECT("Feuil1!$A$1") donc je dois indiquer =INDIRECT("!$A$1")
Dans le cas de =INDIRECT("!$A$1") il ne limite plus la plage à $A$1 de la
Feuil1 mais à $A$1 de la feuille active (donc valable sur toutes les
feuilles), mais il ne fais plus le recalcul automatiquement.
Lorsqu'on ajoute le +si(maintenant();0;0), le si force le recalcul

En tout cas chez moi c'est comme cela que cela se produit.
Je suis en Office 2000 sous XP pro.
Peut-être as-tu une config différente dont les réactions sont différentes.

Jean-Marc

"AV" a écrit dans le message de
news:
J'ai trouvé le =INDIRECT("$A$1") sur ce forum et je l'ai essayé, mais le
recalcul ne se faisait toujours pas automatiquement.


Si, si....ça marche très très bien...depuis longtemps !

AV





Avatar
Starwing
Bonsoir Jean-Marc,

Lorsque j'inscris =INDIRECT("$A$1") il me le modifie automatiquement en
=INDIRECT("Feuil1!$A$1") donc je dois indiquer =INDIRECT("!$A$1")


C'est un Bug sur Excel 2000 très connu ce que tu indiques là...
Pour le contourner essaie ceci:
=INDIRECT("A1")

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
"Jean-Marc" a écrit dans le message de
news:
Lorsque j'inscris =INDIRECT("$A$1") il me le modifie automatiquement en
=INDIRECT("Feuil1!$A$1") donc je dois indiquer =INDIRECT("!$A$1")
Dans le cas de =INDIRECT("!$A$1") il ne limite plus la plage à $A$1 de la
Feuil1 mais à $A$1 de la feuille active (donc valable sur toutes les
feuilles), mais il ne fais plus le recalcul automatiquement.
Lorsqu'on ajoute le +si(maintenant();0;0), le si force le recalcul

En tout cas chez moi c'est comme cela que cela se produit.
Je suis en Office 2000 sous XP pro.
Peut-être as-tu une config différente dont les réactions sont différentes.

Jean-Marc

"AV" a écrit dans le message de
news:
J'ai trouvé le =INDIRECT("$A$1") sur ce forum et je l'ai essayé, mais
le



recalcul ne se faisait toujours pas automatiquement.


Si, si....ça marche très très bien...depuis longtemps !

AV