Actualiser le nom des onglets en automatique

Bonjour,

J'ai un dossier de 30 onglets. chaque onglet est nommé en automatique toujours à partir de la cellule BK4 de chaque feuille.

actuellement je dois ouvrir chaque onglet cliquer sur la cellule pour que l'onglet se mette à jour.
je cherche une solution pour automatiser l'actualisation de tous les onglets en même temps.
soit par bouton soit à l'ouverture du fichier
si vous avez des idées je suis preneur,

on m'avais proposé cette formule

Private Sub Workbook_Open()
Dim F As Worksheet
For Each F In Worksheets
F.Name = F.Range("BK4")
Next
End Sub


mais qui crée une erreur d'exécution "la méthode 'range' de l'objet _worksheet a échoué"

Bonjour,

Ceci devrait faire l'affaire :

Private Sub Workbook_Open()
Dim F As Worksheet
For Each F In ThisWorkbook.Worksheets
F.Name = F.Range("BK4")
Next
End Sub

Bonjour,

Pour moi la macro fonctionne tel quel. Tu es sure de l'avoir mis au bon endroit ou d'avoir un nom de page valide ?

Merci pour votre retour,

la macro fonctionne, mais j'ai toujours la fenêtre d'erreur Visual Basic avec un message d'erreur d'exécution 1004

la méthode 'Name' de l'objet '_worksheet' a échoué

Re,

la méthode 'Name' de l'objet '_worksheet' a échoué n'est pas la même chose que la méthode 'range' de l'objet '_worksheet' a échoué

Ici, j'imagine que tu as dans une des cellules un caractère qui ne peut pas figurer dans un nom d'onglet.

effectivement, les cellules BK4 sont des formules pour 30 onglets sur 32.

mais la macro fonctionne malgré tout.

peut-on modifier la formule pour l'intégrer à un bouton de commande?

Le problème n'est pas que ce soient des formules ou pas, mais ce qui est généré par les formules.

Si tu veux associer la macro à un bouton plutôt qu'au lancement du fichier, il faut copier le code suivant dans un module standard :

Sub onglets()
Dim F As Worksheet
For Each F In ThisWorkbook.Worksheets
F.Name = F.Range("BK4")
Next
End Sub

Mais ça ne changera rien au fait que tu génères à priori des onglets avec des noms incorrects.

Au pire, tu peux partager ton fichier, sans données confidentielles.

et la macro fonctionne effectivement avec la formule d'origine, mais toujours le message d'erreur sur le "name" et nom pas sur le "range"

OUPS!! l'erreur venait d'onglets cachés que j'avais oublié de supprimer. la formule fonctionne très bien et sans message d'erreur.

par contre la macro avec bouton ne fonctionne pas. je crée le bouton, j'insère la formule,

Private Sub CommandButton9_Click()
Sub onglets()
Dim F As Worksheet
For Each F In ThisWorkbook.Worksheets
F.Name = F.Range("BK4")
Next
End Sub

message d'erreur suivant: "erreur de compilation: End Sub attendu"

Si tu fais comme ceci, il faut supprimer la ligne

Sub onglets()

Bonsoir le forum, bonsoir Dan

Bonsoir le fil

Bonsoir Xûr76 ou mrdo ou .... ou .... Pas très sympa de venir chercher des solutions à une réponse donnée [Ici] et qui fonctionnait très bien (s'il n'y avait pas eu d'onglets masqués...). Tu aurais pu poursuivre sur le site initial ????? Le cross posting n'est pas à encourager.

Je ne te salue pas.

merci à tous, tout fonctionne très bien

vraiment désolé Ericcool02, je ne peux pas répondre aux messages sur excel-downlooad "Vous n'avez pas les privilèges suffisants pour répondre ici."

j'ai donc utilisé ce site, encore désolé Ericcool02 car ma 1ère réaction était bien de répondre à la 1ère demande.

merci encore à tous pour vos collaborations.

Décidément, t'as des messages d'erreur de partout toi !

C'est pas ta journée on dirait 😉

c'est clair

bonne soirée à tous et encore merci

Rechercher des sujets similaires à "actualiser nom onglets automatique"