GNT sans publicité, site mobile, fonctionnalitées exclusives...

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

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Ellimac
Le #338066
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


.



Pascale
Le #338036
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" 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


.



Daniel.M
Le #338031
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" 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




Pascale
Le #337976
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" 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" 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








Daniel.M
Le #337947
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" 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" 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" 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












Publicité
Suivre les réponses
Poster une réponse
Anonyme