Inserer automatiquement le nom de la feuille dans une formule se trouvant sur la page
12 réponses
Ramses Seth
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques
explications mais pas pour faire "exactement" ce que je souhaite sans
utiliser Visual Basic.
En effet j'ai une feuille pour chaque semaine, identique en format et
présentation. Ma formule est la suivante
C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour
la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je
sais faire. Le problème est que j'ai des dizaines de formules de ce genre
par feuille et ce n'est pas toujours moi qui fait les formules, d'où des
erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me
permettrait de faire une copie de la dernière semaine pour la semaine en
cours, avec la formule mise à jour sans avoir le #ref!.???
P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec
l'aide d'Excel .
DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";C ELLULE("nomfichier";A1))) renvoie le nom de la page en cours --
http://jacxl.free.fr/
"Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";C
ELLULE("nomfichier";A1)))
renvoie le nom de la page en cours
--
J@C
http://jacxl.free.fr/
"Ramses Seth" <Ramses_Seth@hotmail.com> a écrit dans le message de news:
uiS5BWptDHA.2464@TK2MSFTNGP12.phx.gbl...
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques
explications mais pas pour faire "exactement" ce que je souhaite sans
utiliser Visual Basic.
En effet j'ai une feuille pour chaque semaine, identique en format et
présentation. Ma formule est la suivante
C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour
la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le
numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je
sais faire. Le problème est que j'ai des dizaines de formules de ce genre
par feuille et ce n'est pas toujours moi qui fait les formules, d'où des
erreurs que je pourrais ne pas voir. Existe t-il une formule pour
spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me
permettrait de faire une copie de la dernière semaine pour la semaine en
cours, avec la formule mise à jour sans avoir le #ref!.???
P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute
parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec
l'aide d'Excel .
DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";C ELLULE("nomfichier";A1))) renvoie le nom de la page en cours --
http://jacxl.free.fr/
"Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
Ramses Seth
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
Cela est il réellement impossible ou bien sans intêret ?
Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
"Ramses Seth" <Ramses_Seth@hotmail.com> a écrit dans le message de
news:uiS5BWptDHA.2464@TK2MSFTNGP12.phx.gbl...
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques
explications mais pas pour faire "exactement" ce que je souhaite sans
utiliser Visual Basic.
En effet j'ai une feuille pour chaque semaine, identique en format et
présentation. Ma formule est la suivante
C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour
la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le
numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je
sais faire. Le problème est que j'ai des dizaines de formules de ce genre
par feuille et ce n'est pas toujours moi qui fait les formules, d'où des
erreurs que je pourrais ne pas voir. Existe t-il une formule pour
spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me
permettrait de faire une copie de la dernière semaine pour la semaine en
cours, avec la formule mise à jour sans avoir le #ref!.???
P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute
parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec
l'aide d'Excel .
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
Frédéric Sigonneau
Bonjour,
Sans VBA, comme tu le souhaites, je ne sais pas si c'est possible. Avec une fonction perso VBA (à copier dans un module standard du classeur concerné), ça pourrait peut-être te dépanner :
Function AutoConso3D(PremièreFeuille As String, Cellule As String) Application.Volatile AutoConso3D = Evaluate("SUM('" & PremièreFeuille _ & ":" & Range(Cellule).Parent.Name & "'!" & Cellule & ")") End Function
Ensuite, pour reprendre tes données exemple, dans la cellule C1 de la dernière feuille renseignée :
=AutoConso3D("Feuil1";"A1")
Quand tu recopieras les feuilles contenant cette formule, n'oublie pas un petit coup de F9 pour que la fonction soit recalculée et le résultat en C1 mis à jour.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
Bonjour,
Sans VBA, comme tu le souhaites, je ne sais pas si c'est possible. Avec une
fonction perso VBA (à copier dans un module standard du classeur concerné), ça
pourrait peut-être te dépanner :
Function AutoConso3D(PremièreFeuille As String, Cellule As String)
Application.Volatile
AutoConso3D = Evaluate("SUM('" & PremièreFeuille _
& ":" & Range(Cellule).Parent.Name & "'!" & Cellule & ")")
End Function
Ensuite, pour reprendre tes données exemple, dans la cellule C1 de la dernière
feuille renseignée :
=AutoConso3D("Feuil1";"A1")
Quand tu recopieras les feuilles contenant cette formule, n'oublie pas un petit
coup de F9 pour que la fonction soit recalculée et le résultat en C1 mis à jour.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Cela est il réellement impossible ou bien sans intêret ?
Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
"Ramses Seth" <Ramses_Seth@hotmail.com> a écrit dans le message de
news:uiS5BWptDHA.2464@TK2MSFTNGP12.phx.gbl...
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques
explications mais pas pour faire "exactement" ce que je souhaite sans
utiliser Visual Basic.
En effet j'ai une feuille pour chaque semaine, identique en format et
présentation. Ma formule est la suivante
C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour
la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le
numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je
sais faire. Le problème est que j'ai des dizaines de formules de ce genre
par feuille et ce n'est pas toujours moi qui fait les formules, d'où des
erreurs que je pourrais ne pas voir. Existe t-il une formule pour
spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me
permettrait de faire une copie de la dernière semaine pour la semaine en
cours, avec la formule mise à jour sans avoir le #ref!.???
P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute
parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec
l'aide d'Excel .
Sans VBA, comme tu le souhaites, je ne sais pas si c'est possible. Avec une fonction perso VBA (à copier dans un module standard du classeur concerné), ça pourrait peut-être te dépanner :
Function AutoConso3D(PremièreFeuille As String, Cellule As String) Application.Volatile AutoConso3D = Evaluate("SUM('" & PremièreFeuille _ & ":" & Range(Cellule).Parent.Name & "'!" & Cellule & ")") End Function
Ensuite, pour reprendre tes données exemple, dans la cellule C1 de la dernière feuille renseignée :
=AutoConso3D("Feuil1";"A1")
Quand tu recopieras les feuilles contenant cette formule, n'oublie pas un petit coup de F9 pour que la fonction soit recalculée et le résultat en C1 mis à jour.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
FxM
Bonjour,
Ramses Seth wrote:
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
Ce n'est ni sans interet, ni impossible. Avec les indications de , nous pensions que tu y serais arrivé(e) seul(e).
Sur le principe : =somme(feuil1:Feuil1!A1) pour la feuille1 =somme(feuil1:Feuil2!A1) pour la feuille2 =somme(feuil1:Feuil3!A1) pour la feuille3
On peut remarquer que "somme(feuil1: " (au début) et "!A1)" (à la fin) sont des élements fixes. J'oublie volonatirement le signe = en tout début.
***** la formule complète (attention, c'est un paquet qu'il te faut mettre sur une seule ligne) : Place-toi en C1 et copies : =EVAL("somme(feuil1:"&DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";CELLULE("nomfichier";A1)))&"!A1)")
Un peu plus en détail : =eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et "!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la feuille actuelle.
Concernant eval(...) Si tu as installée la macro complémentaire Morefun de Laurent Longre, ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11 Insertion | module. Tapes ce qui suit : function eval(inp) eval =evaluate(inp) end function
Deux contraintes : - il faut que ton classeur soit enregistré, sinon la formule renvoit #VALEUR.
- les feuilles sont sommées selon leur nom. Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs sont ajoutées. feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les autres feuilles sont oubliées. feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Voilà, voilà.
@+ FxM
Bonjour,
Ramses Seth wrote:
Cela est il réellement impossible ou bien sans intêret ?
Merci à ceux qui ont essayés de m'aider mais cela ne marche
toujours pas
Ce n'est ni sans interet, ni impossible. Avec les indications de j@c,
nous pensions que tu y serais arrivé(e) seul(e).
Sur le principe :
=somme(feuil1:Feuil1!A1) pour la feuille1
=somme(feuil1:Feuil2!A1) pour la feuille2
=somme(feuil1:Feuil3!A1) pour la feuille3
On peut remarquer que "somme(feuil1: " (au début) et
"!A1)" (à la fin) sont des élements fixes. J'oublie volonatirement le
signe = en tout début.
***** la formule complète (attention, c'est un paquet qu'il te faut
mettre sur une seule ligne) :
Place-toi en C1 et copies :
=EVAL("somme(feuil1:"&DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";CELLULE("nomfichier";A1)))&"!A1)")
Un peu plus en détail :
=eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et
"!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la
feuille actuelle.
Concernant eval(...)
Si tu as installée la macro complémentaire Morefun de Laurent Longre,
ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11
Insertion | module. Tapes ce qui suit :
function eval(inp)
eval =evaluate(inp)
end function
Deux contraintes :
- il faut que ton classeur soit enregistré, sinon la formule renvoit
#VALEUR.
- les feuilles sont sommées selon leur nom.
Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs
sont ajoutées.
feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les
autres feuilles sont oubliées.
feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
Ce n'est ni sans interet, ni impossible. Avec les indications de , nous pensions que tu y serais arrivé(e) seul(e).
Sur le principe : =somme(feuil1:Feuil1!A1) pour la feuille1 =somme(feuil1:Feuil2!A1) pour la feuille2 =somme(feuil1:Feuil3!A1) pour la feuille3
On peut remarquer que "somme(feuil1: " (au début) et "!A1)" (à la fin) sont des élements fixes. J'oublie volonatirement le signe = en tout début.
***** la formule complète (attention, c'est un paquet qu'il te faut mettre sur une seule ligne) : Place-toi en C1 et copies : =EVAL("somme(feuil1:"&DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";CELLULE("nomfichier";A1)))&"!A1)")
Un peu plus en détail : =eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et "!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la feuille actuelle.
Concernant eval(...) Si tu as installée la macro complémentaire Morefun de Laurent Longre, ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11 Insertion | module. Tapes ce qui suit : function eval(inp) eval =evaluate(inp) end function
Deux contraintes : - il faut que ton classeur soit enregistré, sinon la formule renvoit #VALEUR.
- les feuilles sont sommées selon leur nom. Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs sont ajoutées. feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les autres feuilles sont oubliées. feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Voilà, voilà.
@+ FxM
isabelle
bonjour Ramses,
je croiyais y arriver en combinant la formule de LL qui retourne le nom de la feuille alors j'ai mis cette formule en cellule D1 de la feuil3 =STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
et la formule indirect, =SOMME(INDIRECT("Feuil1:"&D1&"!A1")) mais niet ça retoure #REF!
je ne voie d'autre solution qu'une function perso
Function MaSommeFeuille(cellule As Range) c = cellule.Address For Each f In Sheets If f.Name = ActiveSheet.Name Then GoTo fin MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c) Next fin: MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c) End Function
isabelle
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
bonjour Ramses,
je croiyais y arriver en combinant la formule de LL qui retourne le nom
de la feuille
alors j'ai mis cette formule en cellule D1 de la feuil3
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
et la formule indirect, =SOMME(INDIRECT("Feuil1:"&D1&"!A1")) mais niet
ça retoure #REF!
je ne voie d'autre solution qu'une function perso
Function MaSommeFeuille(cellule As Range)
c = cellule.Address
For Each f In Sheets
If f.Name = ActiveSheet.Name Then GoTo fin
MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c)
Next
fin:
MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c)
End Function
isabelle
Cela est il réellement impossible ou bien sans intêret ?
Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
"Ramses Seth" <Ramses_Seth@hotmail.com> a écrit dans le message de
news:uiS5BWptDHA.2464@TK2MSFTNGP12.phx.gbl...
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques
explications mais pas pour faire "exactement" ce que je souhaite sans
utiliser Visual Basic.
En effet j'ai une feuille pour chaque semaine, identique en format et
présentation. Ma formule est la suivante
C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour
la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le
numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je
sais faire. Le problème est que j'ai des dizaines de formules de ce genre
par feuille et ce n'est pas toujours moi qui fait les formules, d'où des
erreurs que je pourrais ne pas voir. Existe t-il une formule pour
spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me
permettrait de faire une copie de la dernière semaine pour la semaine en
cours, avec la formule mise à jour sans avoir le #ref!.???
P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute
parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec
l'aide d'Excel .
je croiyais y arriver en combinant la formule de LL qui retourne le nom de la feuille alors j'ai mis cette formule en cellule D1 de la feuil3 =STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
et la formule indirect, =SOMME(INDIRECT("Feuil1:"&D1&"!A1")) mais niet ça retoure #REF!
je ne voie d'autre solution qu'une function perso
Function MaSommeFeuille(cellule As Range) c = cellule.Address For Each f In Sheets If f.Name = ActiveSheet.Name Then GoTo fin MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c) Next fin: MaSommeFeuille = MaSommeFeuille + Sheets(f.Name).Range(c) End Function
isabelle
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas "Ramses Seth" a écrit dans le message de news:
Bonjour
Après avoir longuement regardé votre forum, j'ai trouvé quelques explications mais pas pour faire "exactement" ce que je souhaite sans utiliser Visual Basic. En effet j'ai une feuille pour chaque semaine, identique en format et présentation. Ma formule est la suivante C1=Somme(Feuil1:Feuil10!A1) pour la feuille 10. C'est la même formule pour la feuille 13 qui donne C1=Somme(Feuil:Feuil13!A1) sauf que c'est le numéro
de la feuille sur laquelle se trouve la formule qui change. Jusque là, je sais faire. Le problème est que j'ai des dizaines de formules de ce genre par feuille et ce n'est pas toujours moi qui fait les formules, d'où des erreurs que je pourrais ne pas voir. Existe t-il une formule pour spécifier
à la formule de prendre la feuille sur laquelle elle se trouve, ce qui me permettrait de faire une copie de la dernière semaine pour la semaine en cours, avec la formule mise à jour sans avoir le #ref!.??? P.S: je ne peux créer toutes mes feuilles à l'avance car je rajoute parfois
des colonnes selon les mois où les périodes.
Si vous pouviez m'éclairer, cela fait 3 mois que je cherche en vain avec l'aide d'Excel .
Merci d'avance à ceux qui pourrons m'aider.
Ramses Seth
Merci bcp à FxM et isabelle. Je vais essayer ce que vous m'avez conseillé si rapidement. Concernant les indications de ,je vous prie de bien vouloir m'excuser, pour ne pas l'avoir signaler sur le forum, mais j'ai contacté en mail et il ne savait pas comment résoudre "totalement" mon problème. Sur ce il m'a conseillé de redemander de l'aide sur le forum, ce que j'ai fait aussitôt.
Merci de votre rapidité et du temps passé pour me répondre.
à bientôt.
R.S.
;-)
Merci bcp à FxM et isabelle. Je vais essayer ce que vous m'avez conseillé si
rapidement.
Concernant les indications de j@c ,je vous prie de bien vouloir m'excuser,
pour ne pas l'avoir signaler sur le forum, mais j'ai contacté j@c en mail
et il ne savait pas comment résoudre "totalement" mon problème. Sur ce il
m'a conseillé de redemander de l'aide sur le forum, ce que j'ai fait
aussitôt.
Merci de votre rapidité et du temps passé pour me répondre.
Merci bcp à FxM et isabelle. Je vais essayer ce que vous m'avez conseillé si rapidement. Concernant les indications de ,je vous prie de bien vouloir m'excuser, pour ne pas l'avoir signaler sur le forum, mais j'ai contacté en mail et il ne savait pas comment résoudre "totalement" mon problème. Sur ce il m'a conseillé de redemander de l'aide sur le forum, ce que j'ai fait aussitôt.
Merci de votre rapidité et du temps passé pour me répondre.
à bientôt.
R.S.
;-)
Ramses Seth
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais pour ce cas là je ne peux me permettre de le faire pour des raisons professionnelles car la personne à qui je repasse le classeur n'y connais pas grand chose.
Merci pour votre aide.
R.S.
;)
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais
pour ce cas là je ne peux me permettre de le faire pour des raisons
professionnelles car la personne à qui je repasse le classeur n'y connais
pas grand chose.
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais pour ce cas là je ne peux me permettre de le faire pour des raisons professionnelles car la personne à qui je repasse le classeur n'y connais pas grand chose.
Merci pour votre aide.
R.S.
;)
j
tricheur, on a dit sans vba ! eval c'est pas une fonction Excel (j'ai essayé comme isabelle avec indirect, mais bernique !)
"FxM" a écrit dans le message de news:
Bonjour,
Ramses Seth wrote:
Cela est il réellement impossible ou bien sans intêret ? Merci à ceux qui ont essayés de m'aider mais cela ne marche toujours pas
Ce n'est ni sans interet, ni impossible. Avec les indications de , nous pensions que tu y serais arrivé(e) seul(e).
Sur le principe : =somme(feuil1:Feuil1!A1) pour la feuille1 =somme(feuil1:Feuil2!A1) pour la feuille2 =somme(feuil1:Feuil3!A1) pour la feuille3
On peut remarquer que "somme(feuil1: " (au début) et "!A1)" (à la fin) sont des élements fixes. J'oublie volonatirement le signe = en tout début.
***** la formule complète (attention, c'est un paquet qu'il te faut mettre sur une seule ligne) : Place-toi en C1 et copies :
Un peu plus en détail : =eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et "!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la feuille actuelle.
Concernant eval(...) Si tu as installée la macro complémentaire Morefun de Laurent Longre, ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11 Insertion | module. Tapes ce qui suit : function eval(inp) eval =evaluate(inp) end function
Deux contraintes : - il faut que ton classeur soit enregistré, sinon la formule renvoit #VALEUR.
- les feuilles sont sommées selon leur nom. Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs sont ajoutées. feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les autres feuilles sont oubliées. feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Voilà, voilà.
@+ FxM
tricheur, on a dit sans vba !
eval c'est pas une fonction Excel
(j'ai essayé comme isabelle avec indirect, mais bernique !)
"FxM" <fxmanceaux@chello.fr> a écrit dans le message de news:
ucFpB50tDHA.3744@TK2MSFTNGP11.phx.gbl...
Bonjour,
Ramses Seth wrote:
Cela est il réellement impossible ou bien sans intêret ?
Merci à ceux qui ont essayés de m'aider mais cela ne marche
toujours pas
Ce n'est ni sans interet, ni impossible. Avec les indications de j@c,
nous pensions que tu y serais arrivé(e) seul(e).
Sur le principe :
=somme(feuil1:Feuil1!A1) pour la feuille1
=somme(feuil1:Feuil2!A1) pour la feuille2
=somme(feuil1:Feuil3!A1) pour la feuille3
On peut remarquer que "somme(feuil1: " (au début) et
"!A1)" (à la fin) sont des élements fixes. J'oublie volonatirement le
signe = en tout début.
***** la formule complète (attention, c'est un paquet qu'il te faut
mettre sur une seule ligne) :
Place-toi en C1 et copies :
Un peu plus en détail :
=eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et
"!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la
feuille actuelle.
Concernant eval(...)
Si tu as installée la macro complémentaire Morefun de Laurent Longre,
ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11
Insertion | module. Tapes ce qui suit :
function eval(inp)
eval =evaluate(inp)
end function
Deux contraintes :
- il faut que ton classeur soit enregistré, sinon la formule renvoit
#VALEUR.
- les feuilles sont sommées selon leur nom.
Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs
sont ajoutées.
feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les
autres feuilles sont oubliées.
feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Un peu plus en détail : =eval(...) pour evaluer ce qu'il y a entre patenthèses.
"somme(feuil1: " (au début) et "!A1)" (à la fin) sont les élements fixes
& pour concaténer (coller) plusieurs élements
droite(cellule........"nomfichier";A1))) pour donner le nom de la feuille actuelle.
Concernant eval(...) Si tu as installée la macro complémentaire Morefun de Laurent Longre, ça te simplifie le boulot (http://longre.free.fr). Sinon : Alt-F11 Insertion | module. Tapes ce qui suit : function eval(inp) eval =evaluate(inp) end function
Deux contraintes : - il faut que ton classeur soit enregistré, sinon la formule renvoit #VALEUR.
- les feuilles sont sommées selon leur nom. Si une feuille autre s'insère entre les feuilles extrêmes, ses valeurs sont ajoutées. feuil1 | feuil2 | toto | feuil3 --> toto est ajoutée
A l'inverse, si les feuilles extrêmes sont l'une à coté de l'autre les autres feuilles sont oubliées. feuil1 | feuil3 | toto | feuil2 --> feuil2 n'est pas comptée
Voilà, voilà.
@+ FxM
FxM
wrote:
tricheur, on a dit sans vba ! Zut, je suis démasqué ..
eval c'est pas une fonction Excel C'est dans mon Excel (avec Morefun ;o))
(j'ai essayé comme isabelle avec indirect, mais bernique !) Apparemment, nous nous sommes tous cassés le nez dessus
@+ FxM
j@c wrote:
tricheur, on a dit sans vba !
Zut, je suis démasqué ..
eval c'est pas une fonction Excel
C'est dans mon Excel (avec Morefun ;o))
(j'ai essayé comme isabelle avec indirect, mais bernique !)
Apparemment, nous nous sommes tous cassés le nez dessus
tricheur, on a dit sans vba ! Zut, je suis démasqué ..
eval c'est pas une fonction Excel C'est dans mon Excel (avec Morefun ;o))
(j'ai essayé comme isabelle avec indirect, mais bernique !) Apparemment, nous nous sommes tous cassés le nez dessus
@+ FxM
Misange
bonsoir, sans intervenir sur le fond : pour ce qui est d'avoir une fonction ou du code VBA dans un classeur, c'est transparent pour l'utilisateur. La seule chose qu'il faut lui dire c'est qu'il faut dire oui quand on lui demande d'activer les macros à l'ouverture du classeur. Les macros ça n'a pas de dents et ça ne mord pas ! Une fonction perso te permet juste d'écrire dans une cellule =mafonction(C1) et que tout un tas de calculs soient par exemple effectués sur la cellule C1 et renvoyés dans la cellule de destination. L'utilisateur n'en voit pas plus :-) Voilà c'est tout pour la leçon de dédramatisation ou démystification des macros !
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Ramses Seth wrote:
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais pour ce cas là je ne peux me permettre de le faire pour des raisons professionnelles car la personne à qui je repasse le classeur n'y connais pas grand chose.
Merci pour votre aide.
R.S.
;)
bonsoir,
sans intervenir sur le fond : pour ce qui est d'avoir une fonction ou du
code VBA dans un classeur, c'est transparent pour l'utilisateur. La
seule chose qu'il faut lui dire c'est qu'il faut dire oui quand on lui
demande d'activer les macros à l'ouverture du classeur. Les macros ça
n'a pas de dents et ça ne mord pas ! Une fonction perso te permet juste
d'écrire dans une cellule =mafonction(C1) et que tout un tas de calculs
soient par exemple effectués sur la cellule C1 et renvoyés dans la
cellule de destination. L'utilisateur n'en voit pas plus :-)
Voilà c'est tout pour la leçon de dédramatisation ou démystification
des macros !
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Ramses Seth wrote:
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais
pour ce cas là je ne peux me permettre de le faire pour des raisons
professionnelles car la personne à qui je repasse le classeur n'y connais
pas grand chose.
bonsoir, sans intervenir sur le fond : pour ce qui est d'avoir une fonction ou du code VBA dans un classeur, c'est transparent pour l'utilisateur. La seule chose qu'il faut lui dire c'est qu'il faut dire oui quand on lui demande d'activer les macros à l'ouverture du classeur. Les macros ça n'a pas de dents et ça ne mord pas ! Une fonction perso te permet juste d'écrire dans une cellule =mafonction(C1) et que tout un tas de calculs soient par exemple effectués sur la cellule C1 et renvoyés dans la cellule de destination. L'utilisateur n'en voit pas plus :-) Voilà c'est tout pour la leçon de dédramatisation ou démystification des macros !
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Ramses Seth wrote:
Merci beaucoup à vous Frédéric. Je compte essayer VB très prochainement mais pour ce cas là je ne peux me permettre de le faire pour des raisons professionnelles car la personne à qui je repasse le classeur n'y connais pas grand chose.