Nom d'un onglet dans une cellule Excel 2007 [Résolu/Fermé]

Signaler
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
-
 Fanchouille -
Bonjour,

Je souhaiterai savoir s'il existe une fonction qui permet de récupérer le nom d'un onglet de classeur Excel 2007 dans une cellule. Si la réponse est non, existe t-il une astuce pour arriver à ce résultat (sans utilisation de macro)

Merci

8 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 106
Bonjour

Sans faire de macro, c'est tout à fait possible avec cette formule :

pour le nom de l'onglet

=STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;20)

ou bien sûr il est possible de remplacer la longueur 20 en calculant la bonne longueur mais le jeu en vaut-il la peine ?

=STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";CELLULE("nomfichier";A1)))


pour le nom du classeur
=STXT(CELLULE("nomfichier";A1);TROUVE("[";CELLULE("nomfichier";A1))+1;TROUVE("]";CELLULE("nomfichier";A1))-TROUVE("[";CELLULE("nomfichier";A1))-1)


et le chemin complet
=CELLULE("nomfichier";A1)


Ces formules sont déjà présentes dans de nombreux sujets sur le site et il faut que le classeur soit sauvegardé pour avoir un chemin !
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56984 internautes nous ont dit merci ce mois-ci


Merci mille fois pour ces formules qui me facilitent bien la vie !!
Super :-) :-)
Messages postés
16174
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
6 août 2020
3 000
Bonjour,
regarde ce site de Laurent Longre où trouveras ce que tu cherches
http://xcell05.free.fr/pages/form/nomfeuille.htm
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
1
Bonjour michel_m,

J'ai consulté ton lien (très riche par ailleurs), j'ai testé :
=NOMFEUILLE() avec ces variantes mais aucune ne donne un résultat ?
J'ai testé ensuite :
Nom de la feuille : "Feuil1"
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
Je n'ai pas davantage de réussite, peut-être mal utilisé ?

Serait-il possible de me joindre un exemple dans un fichier avec quelques combinaisons pour que je puisse en comprendre le cheminement
Messages postés
16174
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
6 août 2020
3 000 >
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011

il faut que ton classeur ait été enregistré au moins 1 fois
je viens d'essayer (XL2003) c'est OK; je ne crois pas que cela soit différent sur 2007
essaies:
https://www.cjoint.com/?jxk11A28Rt
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
1 >
Messages postés
16174
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
6 août 2020

Bonjour michel_m,

Merci pour ta proposition, effectivement cela peut-être une solution par défaut...
Donne moi ton avis sur le post précédent STP
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
1
En mode compatibilité :

=NOMFEUILLE() -> pas de résultat

=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32) -> résultat OK

Avec Excel 2007 et l'exemple de gbinforme :

=STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;20) -> résultat OK

Que faut-il modifier pour obtenir le nom des autres onglets, je souhaite les regrouper sur la même feuille et dans une colonne les uns aux dessus des autres


Merci à vous
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 106
bonjour

Que faut-il modifier pour obtenir le nom des autres onglets, je souhaite les regrouper sur la même feuille et dans une colonne les uns aux dessus des autres

Avec cette formule, ce n'est pas possible et même en 2007 tu n'as apparemment pas la possibilité de le faire sans macro.
Messages postés
16174
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
6 août 2020
3 000
bonjour,
gbinforme a raison.
Mais tu peux mettre la formule dans un coin de chaque feuille et faire des liaisons sur la feuille "home" ...(bon courage quand même...
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 106
bonjour

elle ne fonctionne pas avec Excel 2007 (peut-être mal utilisé ?)

Si elle fonctionne aussi sous 2007 mais cela nécessite l'installation de l'application Morefunc.

Je t'ai fait une fonction personnelle qui fait la même chose pour le nom de l'onglet seul. Tu peux l'intégrer dans ton classeur en la copiant dans un module ou dans le classeur PERSO.XLS (mode d'emploi éventuel)

Je t'ai mis aussi la suggestion de Michel (un petit coucou) avec des liens sur les autres feuilles mais la feuille 4 est à intégrer alors qu'autrement tu as simplement à "tirer" la formule.

http://www.cijoint.fr/cjlink.php?file=cj200909/cijhpUyo7m.xls

Voilà les 3 méthodes qui fonctionnent sur ce classeur : à toi de choisir.
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
1
Bonjour gbinforme,

Avec cette fonction (lien de michel_m ci-dessus), on doit pouvoir y arriver facilement. Elle est très facile à comprendre et à utiliser mais elle ne fonctionne pas avec Excel 2007 (peut-être mal utilisé ?). Peux-tu faire un essai de ton côté pour me le confirmer (si possible avec le resultat du post précédent)

Merci

NOMFEUILLE
Renvoie le nom d'une feuille dans le classeur courant.

SYNTAXE :
=NOMFEUILLE(Index;Format;Type feuille)

- Index (nombre entier, facultatif) : numéro de la feuille dans le classeur. Si omis, renvoie le nom de la feuille où est utilisée la fonction.

- Format (nombre entier, facultatif) : format du nom.

0 = nom de la feuille uniquement ("Feuil1") (par défaut)

1 = nom du classeur entre crochets suivi du nom de la feuille ("[Test.xls]Feuil1")

2 = chemin d'accès, nom du classeur et de la feuille ("C:\Temp\[Test.xls]Feuil1")

- Type feuille (nombre entier, facultatif) : type de feuille dont le nom doit être renvoyé

0 = tous types confondus (par défaut)

1 = feuilles de calcul

2 = feuilles graphiques

3 = feuilles macro Excel 4

4 = modules VBA (Excel 95 uniquement))

5 = feuilles boîtes de dialogue Excel 5

EXEMPLES :
=NOMFEUILLE() renvoie le nom simple de la feuille de calcul ("Feuil3")

=NOMFEUILLE(;1) renvoie le nom du classeur et de la feuille ("[Test.xls]Feuil3")

=NOMFEUILLE(;2) renvoie le nom "complet" de la feuille ("C:\Temp\[Test.xls]Feuil3")

=NOMFEUILLE(2;1) renvoie le nom du classeur et de la 2° feuille ("[Test.xls]Feuil2")

=NOMFEUILLE(3;;2) renvoie le nom simple de la 3° feuille graphique ("Graphique 3")

=NOMFEUILLE(2;2;3) renvoie le nom du classeur et de la 2° feuille macro ("C:\Temp\[Test.xls]Macro2")

REMARQUES :
Cette fonction est volatile (résultat mis à jour à chaque recalcul).

La mise à jour du résultat est automatique quand on supprime, déplace ou renomme une feuille du classeur, mais pas après une insertion de feuille (mise à jour retardée au prochain calcul ou jusqu'à l'appui de la touche F9).
Messages postés
25
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
30 avril 2011
1
Bonjour gbinforme,

J'ai pris connaissance de ton dernier post et il correspond parfaitement à mon attente (avec 3 exemples ! un must...) je n'ai pas encore tranché sur la méthode à utiliser 1 ou 2, je vais réfléchir un peu et ce sera fonction du document final. J'ésite encore un peu avec la 1, car je n'ai pas de maîtrise sur le sujet (il faudrai peut-être que j'ose un peu plus...)

@+ et encore merci à toi pour ton aide


f1gp