Nbre de feuilles

andré

XLDnaute Barbatruc
Bonjour à vous tous,

Existe-t-il une formule qui permet de renvoyer le nombre de feuilles d'un classeur ?

Â+
 

andré

XLDnaute Barbatruc
Salut Pascal,

J'avais bien trouvé une astuce pour le faire, mais ... !

Je repère une cellule identique non vide dans chaque feuille, par exemple la A1 (ou une autre).

La formule : =NBVAL(Feuil1:Feuil5!A1) me renvoit 5
Feuil1 étant la première feuille et Feuil5 la dernière, ceci peu importe les noms des feuilles.

Quand on a pas le VBA, on a des idées (lol).

Â+
 

andré

XLDnaute Barbatruc
Merci Pascal,

Petite explication quant à la raison de ma demande.

J'ai un classeur type avec un nombre de feuilles variable, la dernière étant un récapitulatif.

Dans cette dernière je récupère des données des autres feuilles, par formules.
Si j'essaie de chercher dans des feuilles qui n'existent pas, j'ai évidemment un message d'erreur.

Mon idée était d'écrire une formule par nombre de feuilles et de récupérer la bonne formule à employer sur base du nombre de feuilles.

Un peu nébuleux comme explication, mais dès que ce classeur type est finalisé, je le mettrai sur XLD, tout cela paraîtra beaucoup plus clair.

Â+
 

andré

XLDnaute Barbatruc
Bonjour MichelXLD,

Je viens de tester la macro XL4.

Elle donne effectivement le bon résultat, mais ne permet pas de modifier le nom du classeur.
Normal, puisque ce nom est entre '', donc du texte.

Il faut donc écrire dans une autre cellule une formule qui renvoit le nom du fichier et se référer à cette cellule dans la formule XL4.
Je n'ai pas essayé de tout mettre dans la formule XL4.
En principe cela devrait marcher.

J'emploie la formule suivante pour le nom du classeur :
=STXT(CELLULE('nomfichier';A1);TROUVE('[';CELLULE('nomfichier';A1))+1;TROUVE(']';CELLULE('nomfichier';A1))-TROUVE('[';CELLULE('nomfichier';A1))-1)
Il y a-t-il plus court ?

Autre problème : lors de l'insertion d'une feuille cette formule ne se met à jour qu'à la première validation d'une cellule quelconque.
En attendant mon autre formule, celle qui tient compte du nombre de feuilles, me renvoit un message d'erreur.

Les deux solutions ont leurs avantages et inconvénients, difficile de choisir !

Bon dimanche, et merci encore.
Â+
 

andré

XLDnaute Barbatruc
Resalut,

La formule XL4 : =LIRE.CELLULE(66;A1) renvoit le nom du classeur (un peu plus court !)

En combinant les deux, on obtient :
=NBVAL(LIRE.CLASSEUR(1;LIRE.CELLULE(66;A1)))

Mais cette formule ne se met à jour (après insertion ou suppression d'une feuille) qu'après avoir cliqué dans la barre de formule et valdé.

Il y a-t-il une astuce que je ne connais pas.
Un petit exemple en pièce jointe pour faciliter les recherches.

Â+

[file name=testexcel4.zip size=2254]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testexcel4.zip[/file]
 

JeanMarie

XLDnaute Barbatruc
Bonjour

En restant dans les fonctions des macros XL4, tu peux avoir le nom du fichier plus simplement
=LIRE.CELLULE(66)

Malheureusement, je n'ai pas encore trouvé de combine pour auto-réactualiser la valeur retournée.

@+Jean-Marie

PS : André, excuse je n'avais pas réactualisé ton fil, avant de poster

Message édité par: JeanMarie, à: 18/09/2005 11:28
 

andré

XLDnaute Barbatruc
Salut JeanMarie,

Merci pour le raccourci.

Il ne nous reste plus qu'à combiner les astuces (tiens, astucer les combines ne veut rien dire - lol !).

Il est vrai que ces macros XL4 offrent beaucoup de possibilités.
J'aimerais bien connaître la raison de leur suppression.

Â+
 

Discussions similaires

Réponses
15
Affichages
473

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia