Spécifier le nom d'un feuillet

Fermé
Sporoz - 28 oct. 2013 à 14:37
 Sporoz - 29 oct. 2013 à 15:12
Bonjour,

Merci d'avance à ceux qui sauront m'aiguiller dans la résolution de mon problème.

Brève présentation de mon classeur Excel :

Plusieurs feuillets : 1, 2, 3, ..., contenant mes données et un dernier feuillet nommé : "Récapitulatif" sur lequel j'effectue mes calculs.

Dans ce feuillet récapitulatif j'ai dans la colonne A le nom de mes différents feuillets de données. Et dans les colonnes d'après mes différents calculs, pas intéressants ici.


A1 1
A2 2
A3 3
... ...

J'ai énormément de feuillets de données (>50), et dans ce feuillet récapitulatif j'effectue des calculs du type (ici dans la cellule B2 de mon feuillet récapitulatif):
=MIN(SI('2'!E3:'2'!E10000="blabla";'2'!A3:'2'!A10000;"")) (où 2 est le feuillet de données sur lequel j'effectue ce calcul).

Comme vous le savez (ou comme je ne le sais pas ?) si j'étire vers le bas cette formule, et bien Excel ne comprend pas que je veux qu'il effectue ce même calcul, mais sur les données du feuillet numéro 3. En gros je voudrais, quand j'étire vers le bas, qu'Excel me fasse cette formule :
=MIN(SI('3'!E3:'3'!E10000="blabla";'3'!A3:'3'!A10000;""))

J'ai donc pensé à une astuce : mettre dans la colonne A de mon feuillet récapitulatif le numéro de mes feuillets de données :

A1 1
A2 2
A3 3
... ...

Puis je me suis dit, cette formule devrait marcher, et je pourrai l'étirer vers le bas :
=MIN(SI('Recap!A:2'!E3:'Recap!A:2'!E10000="blabla";'Recap!A:2'!A3:'Recap!A:2'!A10000;""))

Mais évidemment ça ne fonctionne pas (c'était trop beau).

Je cherche donc un moyen de dire à Excel : va chercher dans ce feuillet, et je te donne le nom (qui est un numéro) du feuillet dans ma colonne A. Pensez-vous que c'est possible ?

Merci d'avance pour votre aide.








3 réponses

via55 Messages postés 14506 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 décembre 2024 2 738
28 oct. 2013 à 15:08
Bonjour

oui c'est possible il faut utiliser la fonction INDIRECT et le n° de la ligne pour reformer une référence valide

Supposons qu'en ligne 4 tu veuille accéder à la feuille 1, puis en ligne 5 à la feuille 2 etc
en ligne 4 la formule =INDIRECT(ligne()-3 & "!A1") renverra le contenu de la cellule A1 de la feuille 1 (4 - 3 =1)
étirée en ligne 5 elle renverra le contenu A1 de la feuille 2 (5-3=2)
etc

Cdlmnt

0
Merci pour ta réponse, mais j'obtiens un #REF!

En fait en utilisant ta formule, la mienne devient :

=MIN(SI('INDIRECT(ligne()+1096)'!E3:'INDIRECT(ligne()+1096)'!E10000=2;'INDIRECT(ligne()+1096)'!A3:'INDIRECT(ligne()+1096)'!A10000;""))

Avec donc un test sur la plage de données E3:E10000 du feuillet 'INDIRECT(ligne()+1096)', et si le test est ok, ba on prend la valeur max dans la plage A3:A10000. J'ai l'impression qu'Excel ne comprend pas que 'INDIRECT(ligne()+1096)' me sert à nommer le feuillet dans lequel il faut chercher.
0
via55 Messages postés 14506 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 décembre 2024 2 738
29 oct. 2013 à 14:57
Bonjour

c'est ta syntaxe qui n'est pas bonne: il ne faut pas de ' avant INDIRECT et les autres ref entre "" avec concaténation avec & entre le n° renvoyé par ligne et le reste

INDIRECT(LIGNE()+1096 & "!E3:E10000") pas besoin non plus de répéter le nom de la feuille

ou si tu as besoin des apostrophes :
INDIRECT( "'"&LIGNE()+1096 & "'!E3:E10000") première apostrophe entre les 2 premiers guillemets, 2eme apostrophe entre le guillemet et le !

Mais je ne comprends pas ta formule SI appliquée à une plage !?
Si tu cherches le Minimum de la plage c'est plutôt SI(MIN(feuillex!E3:E1000)=2 etc

Cdlmnt
0
Merci pour tous tes conseils, j'y suis parvenu grâce à toi, ce qui donne au final comme formule :

=MIN(SI(INDIRECT(B8&"!$E$3:$E$10000")=1;INDIRECT(B8&"!$A$3:$A$10000");""))

Avec dans la colonne B (ici B8 est appelé) le nom de mes feuillets.
A valider avec Ctrl+Mal+Enter

En fait E3:E10000 peut prendre les valeurs suivantes : 1, 2, 3, 4, 5, 6

Ce que je cherche c'est le min et le max des valeurs en A3:10000 pour chacun des cas où la valeur prise en E3:E10000 est 1, 2, 3, 4, 5 ou 6.

Ca fonctionne très bien comme ça, mais tu as sans doute raison, c'est peut être plus logique de mettre le si avant. En tout je confirme, ça fonctionne comme ça.

Merci.
0