Macro pour insérer dans une cellule le nom de l'onglet

Bonjour à tous,

j'ai un classeur qui contient plus de 100 feuilles avec chacune un nom différent. Dans la plupart de ces feuilles (toutes exceptées les 4 premières), j'ai une case B5 dans laquelle j'aimerais qu'on trouve le nom de l'onglet correspondant. Seulement ces noms d'onglets vont changer au fil du temps, et le fichier sur lequel je bosse n'est pas personnel mais est destiné à plusieurs personnes. Je voudrais donc qu'en changeant le nom de l'onglet, le nom en B5 de cette feuille soit changé aussi. J'ai tenté d'écrire une macro en m'inspirant de ce que j'ai trouvé sur la toile et ici, mais elle ne marche que partiellement :

Sub nom_feuille2()

Dim i As Integer

For i = 5 To 115

Sheets(i).Activate

Range("B5").Select

ActiveCell.FormulaR1C1 = "=MID(CELL(""nomfichier""),FIND(""]"",CELL(""nomfichier""))+1,20)"

Next i

End Sub

J'ai utilisé en fait la formule

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

Cependant, après exécution, toutes les feuilles contiennent en B5 le même nom (en locurence le nom de mon dernier onglet, je sais pas pourquoi...) et dès que je change le nom d'un seul onglet, au lieu que ça me change que la valeur en B5 de cet onglet là uniquement, ça me met le nom de cet onglet dans toutes les feuilles... En gros j'ai l'impression qu'elles sont reliées, toutes les feuilles de 5 à 115 ont la même chose en B5, ce qui n'est pas mon but...

Si qqun a une idée, merci bien

Si il y a besoin de plus de précisions je suis dispo (c'est peut être pas très clair...)

Bonjour

Essayes cette macro

Sub nom_feuille2()

Dim I As Integer

For I = 5 To Sheets.Count

Sheets(I).Range("B5") = Sheets(I).Name

Next I

End Sub

J'avais gardé sous le coude ce code au cas où, mais c'est vrai que j'aimerais bien insérer la formule de mon premier post pour que les noms en B5 soient toujours à jour, étant donné que ce classeur est destiné à l'ensemble de la boîte où je fais mon stage, les noms des onglets vont souvent changé, et déjà que mon classeur est bourré de différentes macros, j'aimerai si possible éviter aux employés de devoir exécuter plein de macros à chaque utilisation...

Après si ce n'est pas possible, tant pis, ton code est déjà très pratique, merci d'avoir répondu en tout cas

Bonjour

Une petite modification de ta formule

Sub nom_feuille2()
Dim I As Integer

  For I = 5 To Sheets.Count
    Sheets(I).Range("D5").Formula = "=MID(CELL(""nomfichier"",R1C1),FIND(""]"",CELL(""nomfichier"",R1C1))+1,20)"
  Next I
End Sub

Hé bien c'était la modif qu'il me fallait parce que là ça marche, merci à toi

Rechercher des sujets similaires à "macro inserer nom onglet"