OVH Cloud OVH Cloud

Problème de circulaire

9 réponses
Avatar
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

9 réponses

Avatar
Ellimac
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

-----Message d'origine-----
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


.



Avatar
Pascale
Merci pour ta réponse, mais hélas, je ne comprends pas le terme application
volatile (je ne suis pas une experte en fonction) que dois-je rajouter pour
que cela fonctionne ?

Merci encore
"Ellimac" a écrit dans le message de
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

-----Message d'origine-----
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


.



Avatar
Daniel.M
Salut Pascale,

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" wrote in message
news:%
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




Avatar
Pascale
Bonjour Daniel et merci

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" a écrit dans le message de
news: #
Salut Pascale,

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" wrote in message
news:%
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








Avatar
Daniel.M
Bonjour,

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" wrote in message
news:
Bonjour Daniel et merci

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" a écrit dans le message de
news: #
Salut Pascale,

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" wrote in message
news:%
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












Avatar
Pascale
Bonjour,

cela m'affiche Valeur dans la formule
"Daniel.M" a écrit dans le message de
news:
Bonjour,

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" wrote in message
news:
Bonjour Daniel et merci

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" a écrit dans le message de
news: #
Salut Pascale,

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" wrote in message
news:%
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
















Avatar
Daniel.M
Pascale,

J'ai pas d'idée sur la cause.
As-tu la possibilité de m'envoyer ta feuille (en enlevant l'info
confidentielle)?

Si oui, tu remplaces prenom par daniel et tu enlèves inutil. dans mon courriel.

Salutations,

Daniel M.


"Pascale" wrote in message
news:
Bonjour,

cela m'affiche Valeur dans la formule
"Daniel.M" a écrit dans le message de
news:
Bonjour,

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" wrote in message
news:
Bonjour Daniel et merci

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" a écrit dans le message de
news: #
Salut Pascale,

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" wrote in message
news:%
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




















Avatar
Pascale
Mille excuses Daniel mais après vérification dans la fonction NPS() à la
ligne NPS = C.Parent.Previous.Name
il y avait NPS =C.Parent.PreviousSelections.Name !!!

Désolée d'avoir abusé de ton temps

Un grand merci

Pascale
"Daniel.M" a écrit dans le message de
news:
Pascale,

J'ai pas d'idée sur la cause.
As-tu la possibilité de m'envoyer ta feuille (en enlevant l'info
confidentielle)?

Si oui, tu remplaces prenom par daniel et tu enlèves inutil. dans mon
courriel.


Salutations,

Daniel M.


"Pascale" wrote in message
news:
Bonjour,

cela m'affiche Valeur dans la formule
"Daniel.M" a écrit dans le message de
news:
Bonjour,

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" wrote in message
news:
Bonjour Daniel et merci

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" a écrit dans le message
de




news: #
Salut Pascale,

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" wrote in message
news:%
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
























Avatar
Daniel.M
Au plaisir Pascale.

Salutations,

Daniel M. (qui croit que le copier/coller n'a plus la cote. ;-)

"Pascale" wrote in message
news:
Mille excuses Daniel mais après vérification dans la fonction NPS() à la
ligne NPS = C.Parent.Previous.Name
il y avait NPS =C.Parent.PreviousSelections.Name !!!

Désolée d'avoir abusé de ton temps

Un grand merci

Pascale