Problème de circulaire
Le
Pascale
Bonjour à Toutes et à tous
Dans un classeur (Excel97) j'ai plusieurs feuilles de salaires. Pour le
calcul des congés j'ai les formules suivantes :
Col D Col E
D50 Droit du mois E50 : 2.5
D51 Droits antérieurs E51 : =DroitsAntérieurs() Macro complémentaire
D52 Droits utilisés E52 : 1
D53 Droits à ce jour E53 =(D50+D51)-D52
Macro complémentaire (Mise en place grâce à Isabelle)
Function DroitsAntérieurs()
DroitsAntérieurs = Sheets(ActiveSheet.Previous.Name).Range("E53")
End Function
Excel m'annonce une circulaire en E51 vers E53 je ne vois pas pourquoi ?
Est-ce à cause de cette circulaire que la fonction DroitsAntérieurs()
fonctionne une fois sur deux. A chaque ouverture du classeur je dois refaire
la fonction =DroitsAntérieurs()
Merci beaucoup pour votre aide
Pascale
Dans un classeur (Excel97) j'ai plusieurs feuilles de salaires. Pour le
calcul des congés j'ai les formules suivantes :
Col D Col E
D50 Droit du mois E50 : 2.5
D51 Droits antérieurs E51 : =DroitsAntérieurs() Macro complémentaire
D52 Droits utilisés E52 : 1
D53 Droits à ce jour E53 =(D50+D51)-D52
Macro complémentaire (Mise en place grâce à Isabelle)
Function DroitsAntérieurs()
DroitsAntérieurs = Sheets(ActiveSheet.Previous.Name).Range("E53")
End Function
Excel m'annonce une circulaire en E51 vers E53 je ne vois pas pourquoi ?
Est-ce à cause de cette circulaire que la fonction DroitsAntérieurs()
fonctionne une fois sur deux. A chaque ouverture du classeur je dois refaire
la fonction =DroitsAntérieurs()
Merci beaucoup pour votre aide
Pascale

Poser une question


Il y a de fortes chances pour que ce soit un problème de
rafraîchissement. Ajoute peut-être un Application.Volatile
dans ta fonction.
Camille
volatile (je ne suis pas une experte en fonction) que dois-je rajouter pour
que cela fonctionne ?
Merci encore
"Ellimac" news: 09c101c3df5c$71bea290$
Bonjour,
Il y a de fortes chances pour que ce soit un problème de
rafraîchissement. Ajoute peut-être un Application.Volatile
dans ta fonction.
Camille
AMA, tu serais mieux avec une fonction VBA qui retourne simplement le nom de la
feuille précédente. Ensuite, tu te sers de ce résultat pour appeler la fonction
INDIRECT().
Ainsi, lorsque E53 de la feuille précédente va changer, la mise-à-jour sera
automatique, parce que relié au moteur de recalculation d'Excel.
Mise-en-oeuvre:
Dans la cellule E51 de la feuille courante, la formule suivante:
=INDIRECT("'"&nps(A1)&"'!E53")
J'ai mis A1 mais cela aurait pu être n'importe quelle cellule non-dépendante et
non-précédentes des formules. Donc une cellule qui ne contient RIEN ou une
constante.
Ensuite, le code de NPS()
Function NPS(C As Range) As String ' Name Previous Sheet
NPS = C.Parent.Previous.Name
End Function
Salutations,
Daniel M.
"Pascale" news:%
j'ai fait ce que tu mas dis j'ai créé la fonction nps et lorsque je rentre
la formule =INDIRECT("'"&nps(A1)&"'!E53") cela donne comme résultat
#VALEUR! où ai-je fait l'erreur
"Daniel.M" news: #
Moi ça fonctionnait sauf si j'étais sur la première feuille (évidemment, il n'y
a pas de feuille précédente).
Ceci dit, qu'est-ce que ça t'affiche sur tu vas dans la formule, sélectionnes
nps(a1) et appuies sur F9.
Salutations,
Daniel M.
"Pascale" news: