Rechercher : dans
Par :

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

Dernière réponse le 28 mai 2009 à 11:53:19 bibidel, le 28 nov 2007 à 19:55:50 
 Signaler ce message aux modérateurs

Bonjour,

Auriez-vous l'astuce pour insérer le nom de l'onglet d'une feuille de calcul Excel dans une cellule.

Merci à tous

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Excel Insérer nom de l'onglet dans cellule » dans :
[Excel] Chemin et nom de stockage de feuille de calcul VoirIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre...
Insérer un gif animé dans Excel VoirPour insérer une image gif animée dans un classeur Excel, le réflexe est de faire le menu insertion / image, mais cela ne fonctionne pas. C'est normal car l'animation est faite par plusieurs images et l'importation se limite à la première. Pour que...
Insérer une image de fond sous la grille Excel VoirVous souhaitez insérer un logo sous JPEG ou autre, sous votre grille Excel : FORMAT / FEUILLE / ARRIERE PLAN s'ouvre un panneau vous présentant vos images pour sélection.... choisissez, validez. Pour le supprimer : même procédure FORMAT /...
Tableur - Les cellules VoirLa notion de cellule On appelle "cellule" l'intersection entre une ligne (horizontale) et une colonne (verticale) de la feuille de calcul. Ainsi le nom de la ligne combiné au nom de la colonne donne les coordonnées d'une cellule (le terme d'adresse...

1

dandan_lefebvre, le 28 nov 2007 à 20:07:51

Je ne crois pas que c'est possible par une formule, mais par macro ça donne:

Sub nom()
'
' nom Macro

Cells(1, 1) = Sheets(1).Name

End Sub


Où Cells(1,1) veut dire la cellule A1 et le "1" dans Sheets(1) veut dire la première feuille du classeur.

Cette macro aura pour effet de saisir le nom de l'onglet dans la cellule A1 de l'onglet actif.

Répondre à dandan_lefebvre

2

eriiic, le 28 nov 2007 à 20:34:17

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

Répondre à eriiic

3

gbinforme, le 28 nov 2007 à 23:11:55
  • +7

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 " toujours zen

Répondre à gbinforme

4

hmcirta, le 28 nov 2007 à 23:33:55
  • +1

Salut gbinforme

Merci pour ces formules, ça a marché avec la première mais pas avec les deux dernières, il me semble qu'il y a une erreur dans la saisie des formules. Pourrai-tu les revoir et les corriger? Merci
A quoi sert la connaissance si elle n'est pas partagée

Répondre à hmcirta

5

gbinforme, le 28 nov 2007 à 23:44:25
  • +2

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
toujours zen

Répondre à gbinforme

6

hmcirta, le 29 nov 2007 à 00:07:52

Salut gbinforme

Merci de ta réponse. Je me suis rendu compte de cela juste après avoir posté mon message. Et ça marche très bien.

Merci encore
A quoi sert la connaissance si elle n'est pas partagée

Répondre à hmcirta

7

néné, le 29 nov 2007 à 06:58:32

Bonjour

Voici une petite fonction VBA personnalisée

Function SheetName() As String
Application.Volatile
SheetName = Application.Caller.Parent.Name
End Function





Utilsfr
http://utilsfr.new.fr
Applications, Utilitaires, Macros, Fonctions, Formulaires, Graphiques Excel

Répondre à néné

8

gbinforme, le 29 nov 2007 à 09:19:20

Bonjour néné

à part faire de la pub pour vendre tes classeurs, cela sert à quoi ton message sur un sujet résolu ?


Faudrait peut-être rapidement arrêter ce procédé malhonnête et hors charte.
toujours zen

Répondre à gbinforme

9

eriiic, le 29 nov 2007 à 12:19:22

C'est vrai qu'on peut considérer que tout avait été dit sur le sujet et que ton intervention n'a rien apporté de plus...
eric

Répondre à eriiic

10

bibidel, le 29 nov 2007 à 16:42:00

Bonjour à tous et surtout MERCI !!!!!!

Répondre à bibidel

11

bibidel, le 29 nov 2007 à 17:18:39

Re bonjour !
Bon ça marche, MAIS j'ai le même résultat sur toutes les feuilles alors je vous sollicite encore.
Cette info est présente dans une cellule de chaque feuille et je souhaiterais qu'elle se mette à jour !!! GRRRRRRR
Merci d'avance.
Bididel

Répondre à bibidel

12

bibidel, le 29 nov 2007 à 17:25:03

Re bonjour à tous !
Bon ça marche .... au début.
En fait j'ai le même résultat dans chaque cellule de chaque feuille, ça prend partout la même référence du dernier onglet mis à jour donc je vous sollicite encore et encore !
Merci d'avance,
Bibidel

Répondre à bibidel

13

bibidel, le 29 nov 2007 à 17:30:33

Problème non résolu globalement

Répondre à bibidel

14

Le Pingou, le 29 nov 2007 à 17:48:23

Bonjour bibidel,
C'est juste en passant, il me semble que les propositions de gbinforme et eriiic sont parfaites et comme j'ai du mal à comprendre vos désirs, la mise à dispositions de votre classeur sur www.cjoint.com permettrait de voir plus clair... à vous de voir.
Salutations.
Jean-Pierre

Répondre à Le Pingou

15

bibidel, le 29 nov 2007 à 18:12:55

J'essaie de m'expliquer :
La formule fonctionne bien sur une feuille mais lorsque je fais la mise à jour F9 c'est la même référence d'onglet qui apparait dans la cellule de toutes les feuilles alors que l'onglet est (bien évidemment) différent pour chaque feuille.
Je ne sais pas si je suis claire ???
Merci quand même mais c'est un fichier professionnel et je n'ai pas le droit de vous le transmettre...
A bientôt, j'espère.
Bibidel

Répondre à bibidel

16

néné, le 29 nov 2007 à 18:22:25

Bonjour

Ne voyant pas le problème cocher "Résolu", j'ai donc apporter mon savoir faire

En ce qui concerne la Pub:

Internet est truffé de Pub et ce n'ai pas une obligation de cliquer dessus à chaque fois

Répondre à néné

17

bibidel, le 29 nov 2007 à 19:24:53
  • +1

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

Répondre à bibidel

18

eriiic, le 29 nov 2007 à 19:40:56
  • +3

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

Répondre à eriiic

19

bibidel, le 29 nov 2007 à 21:04:34

MERCI Ériiiiiiiiic ! Que la vie semble simple, après !

Répondre à bibidel

20

Le Pingou, le 29 nov 2007 à 21:49:05

Bonsoir bibidel,
Oui je vous comprends dans le cas d'un fichier professionnel. Mis à part cela je viens de faire une série de test sur plusieurs de mes classeurs et la formule fonctionne impeccable y compris avec Maj. PF9, chaque cellule mentionne le nom de la feuille qui lui est propre.
De plus je soutiens fermement le bien fondé des propos d'eriiic.
De plus, le déplacement d'une feuille n'a aucune incidence sur son nom étant donné qu'il ne change pas, sauf de place.
Salutations.
Jean-Pierre

Répondre à Le Pingou

21

SebastienC44, le 11 déc 2007 à 18:19:20

Bonjour,
j'ai parcouru votre discussion en pensant avoir trouvé mon bonheur :
je recherche un fonction qui me permettra d'afficher dans n'importe quelle cellule de ma feuille le nom de l'onglet de cette feuille.
j'ai copié la formule donnée mais elle ne fonctionne. Ai je bien compris l'interet de votre formule ? Si oui pourquoi ne fonctionne t elle pas ? Sinon est il possible possible de faire ce que je souhaite ?
merci beaucoup,
seb

Répondre à SebastienC44

25

bibidel, le 11 déc 2007 à 19:37:29
  • +1

Bonsoir seb,

La formule est la suivante à taper dans la cellule de destination et elle doit correspondre à ton "bonheur"

=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.
A +
Bibidel

Répondre à bibidel

39

Pascal, le 22 mar 2009 à 10:24:46
  • +1

Tu y arrives avec

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

bon amusement

Répondre à Pascal
Collection CommentÇaMarche.net