[AIDE] Formule Excel avec nom de feuille variable

Formule Excel avec nom de feuille variable [AIDE] - VB/VBA/VBS - Programmation

Marsh Posté le 26-03-2007 à 10:46:58    

Bonjour,
 
Je voudrais créer une formule me renvoyant la valeur d'une cellule de différentes feuilles dans une feuille de synthése.
Donc ma formule simple est: = =01_03_07!E1 (avec 01_03_07 est le nom de la feuille où se trouve la données)
Mais comme j'ai beaucoup de feuilles, je voudrais automatiser la formule. La date (01_03_07) est stocké dans la colonne A et les données renvoyés des différentes sont stockés dans la colonne B de ma feuille de synthése.
 
Je n'arrive pas à trouver la formule avec un nom de feuille en variable (faisant appel à la valeur d'une autre cellule).
 
J'espère avec été le plus clair possible mais ce n'est pas évident.
D'avance merci
 
PS: par exemple, sous VBA, ce serait: (Range("A1" ).value & "!E1" ). Je souhaiterai le fair esans macro, juste dans une formule !

Reply

Marsh Posté le 26-03-2007 à 10:46:58   

Reply

Marsh Posté le 26-03-2007 à 13:11:36    

Bonjour,
 
Si l'on souhaite récupérer la valeur de la cellule E1 de la feuille dont le nom est dans la cellule A1 de la feuille courante, faire :

=INDIRECT(CELLULE("contenu";A1)&"!"&"E1" )

J'ai testé et ça marche.

Reply

Marsh Posté le 26-03-2007 à 13:18:14    

Bonjour,
dans le même ordre d'idée:
=INDIRECT(ADRESSE(1;5;1;;A1))
Cordialement


Message édité par seniorpapou le 26-03-2007 à 13:23:22
Reply

Marsh Posté le 26-03-2007 à 14:54:39    

Merci pour les réponses. Ca marche pour une cellule mais je n'y arrive pas pour une zone.
 
C'est à dire, ma formule d'origine est :

Code :
  1. =BDNB('01_03_07'!$C$1:$Q$3000;"cpt";$M$1:$N$2)


 
Je voudrais mettre le nom de la feuille ('01_03_07') en variable qui est indiqué dans la feuille courante.
 
D'avance merci

Reply

Marsh Posté le 26-03-2007 à 19:08:58    

Bonsoir,
une fois écrite pour la première cellule, tu l'étends aux autres avec la poignée de recopie
 
voir dans le help:
Recopier des données à partir des cellules adjacentes
Vous pouvez recopier rapidement plusieurs types de séries de données en sélectionnant les cellules et en faisant glisser la poignée de recopie, ou en utilisant la commande Série (pointez sur Recopier dans le menu Edition, puis cliquez sur Séries).
 
 
 
Copier des données dans une ligne ou une colonne   En faisant glisser la poignée de recopie d'une cellule, vous pouvez recopier son contenu dans d'autres cellules de la même ligne ou de la même colonne.
 
Cordialement

Reply

Marsh Posté le 27-03-2007 à 06:47:29    

Bonjour,
 
Mon problème n'est pas la recopie par série des cellules.  
 
Donc en fait, j'avais expliqué mon problème sans parler du but de mon application. J'ai une première feuille qui me sert de synthése et ensuite, j'ai plusieurs feuilles (nom en fonction de la date du jour sous le format 01_03_07) avec les données. Dans la feuille de synthése, je veux compter le nombre de ligne selon différents critères (d'où l'utilisation de la fonction BDNB).
Donc, la formule =BDNB('01_03_07'!$C$1:$Q$3000;"cpt";$M$1:$N$2) fonctionne correctement avec:
'01_03_07'!$C$1:$Q$3000 => zone de recherche des données
"cpt" => champ à compter
$M$1:$N$2 => zone avec les critères de tri
 
Donc, si je fais une copie par série de ma formule, je dois changer à la main la zone de recherche des données car une ligne correspond à un jour. Dans la deuxième ligne, la formule sera =BDNB('02_03_07'!$C$1:$Q$3000;"cpt";$M$1:$N$2) et ainsi de suite.
 
Donc par ligne, j'ai une colonne avec la date au format 01_03_07 et je voudrais que ma formule y fasse référence pour le nom de la feuille où sont stockées les données à trier.
 
J'espère que c'est plus complet et plus clair.
 
D'avance merci

Reply

Marsh Posté le 20-06-2008 à 15:37:55    

Bonjour,  
 
J'ai eu la même question et ce post m'a aidé à trouvé la réponse qui est fournie par seniorpapou.
La formule qui convient est donc :  
=indirect(adresse(numéro de ligne;numéro de colonne;;;cellule contenant le nom de la feuille))
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed