Création
d'entreprise
Posez votre question Signaler

Excel-Insérer nom de l'onglet dans cellule [Résolu]

bibidel - Dernière réponse le 5 avril 2012 à 19:37
Bonjour,
Auriez-vous l'astuce pour insérer le nom de l'onglet d'une feuille de calcul Excel dans une cellule.
Merci à tous
Lire la suite 

Excel-Insérer nom de l'onglet dans cellule »

62 réponses
Réponse
+33
moins plus
bonjour

Sans faire de macro, c'est tout à fait possible avec cette formule :
pour le nom de l'onglet

=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+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");TROUVE("]";CELLULE("nomfichier"))+1;NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier")))

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

et le chemin complet
=CELLULE("nomfichier")


ps : l'affichage est incorrect car à la place de &.q.u.o.t.; il faut "
guy0311 - 3 janv. 2012 à 18:30
bonjour,
la formule onglet cellule marche correctement, mais je voudrais savoir s'il y a un moyen de faire l'inverse.
d'une cellule à l'onglet.
merci d'avance
guy0311
alkacefa17 - 5 avril 2012 à 16:53
Bjr
Cette formule s'applique de façon identique à tous les onglets, moi je veux que chaque nom d'onglet soit reporté dans une cellule

Merci de m'aider
gbinforme- 5 avril 2012 à 19:37
regardes ce classeur qui te donne le choix.
Ajouter un commentaire
Réponse
+15
moins plus
la formule qui va bien est :

=DROITE(CELLULE("nomfichier";A1);NBCAR(CELLULE("nomfichier";A1))-TROUVE("]";CELLULE("nomfichier";A1)))

A +
Ajouter un commentaire
Réponse
+6
moins plus
Tu as fais exactement ce qu'il fallait faire, ajouter la référence de cellule qui est optionnelle, et comme ça tu pointes sur une cellule de ta feuille (au lieu de la feuille active...).
Tu peux laisser A1 dans chaque formule (pas de lien entre le 2 de A2 et le 2 de feuil2) et donc pas d'incrémentation à avoir, c'est la même formule sur toutes les feuilles.
Et ajoute le également dans le 1er CELLULE(...;A1) que ça fasse plus propre
eric
Ajouter un commentaire
Réponse
+3
moins plus
bonjour

Elles fonctionnent bien mais il y a une erreur d'affichage sur le site : regardes le PS

Faut remplacer "&.q.u.o.t.;" (les points intercalés pour affichage) par guillemet simplement.
J'essaie à nouveau
=STXT(CELLULE("nomfichier");TROUVE("[";CELLULE("nomfichier"))+1;TROUVE("]";CELLULE( "nomfichier"))-TROUVE("[";CELLULE("nomfichier"))-1)

PS : toujours pas bon... cela passe sur deux lignes et il faut grouper les deux sur la même cellule
Ajouter un commentaire
Réponse
+2
moins plus
Bonjour seb,
Voici la formule qui fonctionne dans une cellule, il me semble qu'elle corresponde à votre "bonheur" :

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

A +
Bibidel
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

D'accord globalement avec dandan, et pour avoir l'onglet actif et non plus la feuille 1 il faudrait :
Cells(1, 1) = ActiveSheet.Name

et pour avoir tous les noms faire une boucle:
Sub nom()
For Each sh In Sheets
i = i + 1
Cells(i, 1) = sh.Name
Next sh
End Sub

Sinon c'est possible avec une formule à condition d'être dans une autre feuille:
ex dans feui2 saisir:
=CELLULE("adresse";Feuil1!A2) => [Classeur1]Feuil1!$A$2
Reste à traiter la chaine pour extraire son nom.

eric
Ajouter un commentaire
Réponse
+1
moins plus
Merci encore à Eric et gbinforme

Voilà comment j'ai résolu mon souci ponctuellement mais je cherche mieux :
Ce n'est pas excellent mais je ne sais pas incrémenter (sans macro) le n° de la feuille dans le classeur donc, pour chaque cellule de chaque feuille je modifie la formule en modifiant ("nomfchier",A1) pour la feuille 1 ("nomfichier",A2) pour la seconde, etc...
Le tout est de ne pas déplacer les feuilles.....

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

=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier";A2))+1;20) pour la feuille 2

et ainsi de suite...
A bientôt
Bibidel
Ajouter un commentaire
Réponse
+1
moins plus
Bon j'ai trouvé pourquoi cela ne marchait pas :
il faut etre sur un fichier deja enregistrer et moi je testais la fonction sur un nouveau classeur,
A+

Seb
bibidel- 13 déc. 2007 à 13:14
Patience et obstination et..............ça marche !
Si j'ai pu te rendre service c'est top.
Bibidel
Ajouter un commentaire
Réponse
+1
moins plus
bonjour

bonça marche bien , c'est tout à fait possible avec cette formule qui donne
le nom de l'onglet

=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+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 ?
comme suivant;

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

et le chemin complet
=CELLULE("nomfichier
Ajouter un commentaire
Réponse
+1
moins plus
Oui, sûrement un paramétrage qcq part (word ?) qui convertit
Ajouter un commentaire
Réponse
+1
moins plus
=STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;20)

Cette formule ne fonctionne pas sous Microsoft Office 2007,

Celle-ci oui...

=STXT(CELLULE("nomfichier",A1),TROUVE("]",CELLULE("nomfichier",A1))+1,20)
gbinforme- 21 mars 2011 à 13:15
Cela dépend de tes paramètres régionaux : tu dois avoir la même chose sur les autres options.
rosaire - 24 janv. 2012 à 19:18
merci!!!
Ajouter un commentaire
Réponse
+0
moins plus
Remplacer " t; par une double quote (problème d'affichage)

Bibidel
Ajouter un commentaire
Réponse
+0
moins plus
La formule est la suivante à taper dans la cellule de destination.

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

20 correspond aux nb de car maxi du nom de l'onglet, on peut lui donner la valeur que l'on veut.

Bididel
Ajouter un commentaire
Réponse
+0
moins plus
La formule est la suivante à taper dans la cellule de destination

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

20 correspond aux nb de car maxi du nom de l'onglet, on peut lui donner la valeur que l'on veut.

Bibidel
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Je peux jouer aussi ?

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


Alors bizarrement cette formule est exactement la même que la tienne bibidel, mais si je copie/colle la tienne j'ai également une erreur (??)
J'ai beau regarder et je ne vois pas la différence. Si, une toute petite sur la longueur comme si un caractere était légèrement plus large...
Donc j'ai collé sous forme de code. Si tjs des pb je conseille à SebastienC44 de ressaisir dans excel ce qui ce trouve entre les "..." avec les " y compris, même pour "[". A-priori c'est là que ça bugue.
Bizarre, bizarre...

eric
bibidel- 11 déc. 2007 à 20:27
Bonsoir Eric,
Je suis ravie de te retrouver !

Il faut absolument retaper la formule avec les bonnes " "
J'ai eu le même problème.
Gag non ?
A +
Bibidel
eriiic- 11 déc. 2007 à 21:21
raviE ? Ahhh, c'est une bibidel..
C'est vrai que c'est vraiment une question pleine de rebondissements.
Ca marche, ça marche plus, ça marche, ça marche plus
Au fait tu la remets en résolue ou on attend le prochain rebondissement ? ;-)
gilou - 21 janv. 2010 à 10:00
bonjour
en consultant les resolus du forum (pour essayer de m'ameliorer) j'ai essayé de mon coté de repondre a la
question de bibbel chez moi ça marche avec cela :
Private Sub Worksheet_Activate()
[a1] = ActiveSheet.Name
End Sub
pouvez-vous me dire si cette solution repond au post n° 1 de bibbel et ,si elle est incongrue par rapport aux solutions apportées
merci et à+
Ajouter un commentaire
Réponse
+0
moins plus
D'accord Eriiic ! pssssssss je suis démasquéE
A +
SebastienC44- 13 déc. 2007 à 10:17
Salut bibidel,
je n'y arrive pas, meme en recopiant ce qui est ecrit entre"" y compris "" ?
cette formule fonctionne t elle qq soit la version d'excel ?

Seb
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour et merci pour vos nombreuses reponses. J'ai copié la formule dans une cellule de la feuille1, mais elle ne fonctionne pas (#VALEUR!). J'ai ensuite lu qu'il fallait tout recopié ce qui était entre "", mais toujours rien ?
Y a t il une astuce qui m'echappe ?
Ajouter un commentaire
Réponse
+0
moins plus
Genial! ça marche nickel !!!
pour info, dans la formule de bibidel, si on fait un copié collé sous excel, il reconnait les guillemets comme 2 apostrophes. donc pensez à faire les modifications adéquate.
Ajouter un commentaire
Réponse
+0
moins plus
Je viens d'essayer.

Ca ne fonctionnait pas jusqu'a ce ce j'aie enregistré (et donc nommé) le document.

Après coup, ça paraît très logique pour une formule faisant référence au nom de fichier mais ça me semblait intérresant de le préciser pour les débutants.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour Éric, contente de te lire... :-)
Bonne année à toi également.
Je ne sais pas non plus pourquoi lorsque je fais un copier-coller vers un éditeur de texte d'une formule Excel cette double quote se transforme en 2 simples.
Le mystère subsiste depuis plus de deux ans maintenant.... je dois avoir un petit bout de config. tordu qq part.
à bientôt
Ajouter un commentaire
Ce document intitulé « Excel-Insérer nom de l'onglet dans cellule » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Excel-Insérer nom de l'onglet dans cellule - page 2