Macro de renommage d'onglet

Bonjour,

Je cherche faire une macro permettant de renommer une feuille selon le nom présent dans la case Z2.

J'ai récupéré le code suivant :

Sub renommage_onglets()

    Dim Feuille As Worksheet, Boucle As Long

    Boucle = 1
    For Each Feuille In Worksheets
        Feuille.Name = Sheets(1).Range("Z2").Value & Boucle
        Boucle = (Boucle + 1)
    Next Feuille

End Sub

En l'état la macro fonctionne, elle renomme les onglets, mais pas correctement. Elle les renomme en 1,2,3,4,5... sans prendre en compte (il semblerait) le texte écrit dans la case Z2. Je ne vois pas ce qui m'échappe, j'ai essayé de remplacer le Sheets(1).Range("Z2").Value par un Sheets(1).Range("Z2").Text mais le résultat est le même. Petite précision utile, le texte présent dans la case Z2 est le résultat d'une fonction recherchev.

Merci de votre aide

Que donne ceci :

Sub lecturecellule()
MsgBox Sheets(1).Range("Z2").Value
End Sub
Steelson a écrit :

Que donne ceci :

Sub lecturecellule()
MsgBox Sheets(1).Range("Z2").Value
End Sub

Merci de ta réponse.

La macro me renvoie une boîte de dialogue vide, sans bouton ni texte à l"intérieur.

Je voudrais renommer les feuilles existantes dans un classeur.

Merci

La zone Sheets(1).Range("Z2").Value est vide.

Soit sheets(1) n'existe pas, soit ?

Envoie le fichier ...

Ou bien donne un nom à cette cellule comme Ongletet mets [Onglet].Value au lieu de Sheets(1).Range("Z2").Value

Et que donnerait ceci :

Sub lecturecellule()
MsgBox Sheets(1).Name
End Sub

applique ensuite ce qui précède (donner un nom à la zone)

Salut,

Merci de ta réponse.

Effectivement ce à quoi je n'avais pas pensé c'est que sur les trois premiers onglets la cellule Z2 est vide. Ce n'est qu'après qu'elle contient le nom de la fiche à trier. Peut-être faudrait-il rajouter une condition pour dire de ne pas renommer l'onglet si la cellule Z2 est vide ?

J'ai essayé de faire tourner le code

Sub lecturecellule()
    MsgBox Sheets(1).Name
    End Sub

que tu m'as donné : il me renvoie le nom actuel de l'onglet.

Lorsque je définis un nom pour Z2 ("Onglet") et que je modifie le code tel que tu me le demande, la boîte de dialogue me renvoie : ='Page de garde'!$Z$2 (avec Page de garde le nom de l'onglet).

Merci de ton aide

EDIT : en fait , je crois que j'ai compris le code que j'ai mis au début de ce fil : il prend le nom contenu dans la cellulle Z2 dans le premier onglet, et renomme tout les onglets avec, en le numérotant de 1 à n, c'est bien ça ?

Ce que je voudrais moi, c'est que le code récupère le nom contenu dans la case Z2 d'un onglet pour ensuite renommer cet onglet justement, et ce pour chaque onglet.

J'ai essayé de bricoler le code suivant :

    Sub renommage_onglets()

        Dim Feuille As Worksheet, Boucle As Long

        Boucle = 7
        For Each Feuille In Worksheets
       Feuille.Activate

            Feuille.Name = ActiveSheet.Range("Z2").Value & Boucle
            Boucle = (Boucle + 1)
        Next Feuille

    End Sub

Là effectivement le code renomme les onglets avec le contenu de la case Z2, mais à cause du "& Boucle", il rajoute aussi derrière le numéro de boucle, qui ne m'intéresse pas. Seulement, si j'enlève le & boucle, le code ne fonctionne plus.

Désolé, j'étais en déplacement ...

Tu en es où ?

Tu peux ajouter en début de procédure

On Error Resume Next

cela permettra à la fin de savoir quels onglets ont été renommés ou pas !

Tu peux aussi ajouter la ligne (derrière Feuille.Activate):

debug.print Feuille.Name & " - " & ActiveSheet.Range("Z2").Value & Boucle

avant de lancer, tu fais Ctrl + G pour faire apparaître la fenêtre de debuggage

Voilà tout ce que je peux faire sans fichier !

Steelson a écrit :

Désolé, j'étais en déplacement ...

Tu en es où ?

Tu peux ajouter en début de procédure

On Error Resume Next

cela permettra à la fin de savoir quels onglets ont été renommés ou pas !

Tu peux aussi ajouter la ligne (derrière Feuille.Activate):

debug.print Feuille.Name & " - " & ActiveSheet.Range("Z2").Value & Boucle

avant de lancer, tu fais Ctrl + G pour faire apparaître la fenêtre de debuggage

Voilà tout ce que je peux faire sans fichier !

Salut merci de ta réponse.

J'ai trouvé entre temps.

Merci de ton aide

A+

Rechercher des sujets similaires à "macro renommage onglet"