Nommer un onglet avec le nom présent dans une cellule

Bonjour

Je suis à la recherche d'une formule 'miracle'.

J'ai essayé plusieurs formules trouvés ici ou là sur les forums mais aucune ne fonctionne (je ne pratique pas du tout le VBA !!).

En effet je souhaite que le nom du client (cellule B2) s'affiche à la place de Feuilxx sur chaque onglet et avec effet immédiat sans avoir besoin de rouvrir le fichier.

En question subsidiaire je pense que ce nom de feuillet sera affiché dans l'onglet 'Récap' où j'ai mis la fonction ad-hoc ; par contre est-ce que le lien hypertexte que j'ai mis dans 'Récap' en colonne A permettra d'accéder directement à l'onglet concerné ?

D'avance merci pour vos suggestions ou solutions.

Cordialement

MARDEL

Bonjour,

Il vous suffit de copier ce code dans de vos feuilles :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2")) Is Nothing Then
    ActiveSheet.Select
    ActiveSheet.Name = ActiveSheet.Range("B2").Value
End If
End Sub

Je vous l'ai fait dans toutes vos pages. Si vous voulez ajouter une page, copier une page existante comme ça le code y sera déjà.

Par contre je n'ai pas compris votre 2ème question

Cindy

Bonjour,

Une seule macro est nécessaire placée dans le module ThisWorkbook.

Cdlt.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Select Case Sh.Name
        Case "Récap":
        Case Else:
            If Target.Address = "$B$2" And Not IsEmpty(Target) Then
                Sh.Name = Sh.Cells(2, 2).Value
            End If
    End Select
End Sub

Merci CindyD et Jean-Eric pour vos propositions

Après quelques tests, je préconise la proposition de Jean-Eric (désolé CindyD) car lorsqu'on supprime le nom en case B2 cela ne fait pas apparaître de fenêtre de débogage.

Par contre si on supprime le nom en B2 (on peut se tromper) le nom de l'onglet ne se modifie pas : y a t'il une solution ? (j'ai essayé d'insérer une ligne en 2 (que je masquerai ensuite) pour que B2 affiche le mois et le jour soit =SI($B$3<>"";$B$3;MOIS(AUJOURDHUI)/JOUR) mais je sais pas comment écrire la fin (MOIS(AUJOURDHUI)/JOUR) et ça génère une fenêtre de débogage qu'évidemment je ne sais pas résoudre et cela affiche #NOM? (voir onglet Feuil3).

Pour l'onglet 'Récap' ça fonctionne bien mais le lien en colonne A ne fonctionne pas une fois que l'onglet a été renommé.

Un miracle peut-il avoir lieu ?

Cordialement

MARDEL

Ne pas tenir compte de la phrase

Par contre si on supprime le nom en B2 (on peut se tromper) le nom de l'onglet ne se modifie pas : y a t'il une solution ? (j'ai essayé d'insérer une ligne en 2 (que je masquerai ensuite) pour que B2 affiche le mois et le jour soit =SI($B$3<>"";$B$3;MOIS(AUJOURDHUI)/JOUR) mais je sais pas comment écrire la fin (MOIS(AUJOURDHUI)/JOUR) et ça génère une fenêtre de débogage qu'évidemment je ne sais pas résoudre et cela affiche #NOM? (voir onglet Feuil3).

La solution est de remplacer MOIS(AUJOURDHUI)/JOUR par "F" ce qui fait que l'onglet se renomme F le suivant F(2) etc...

Bonjour,

Et si tu trompes 2 fois la même journée !?

On peut simplement afficher le CodeName de la feuille (unique dans le classeur).

On va pas créer une usine à gaz !...

A te relire.

Cdlt.

voir mon message suivant

Bonjour

Je pense que je me suis un peu 'vautré' !!

Je pense que l'idée de Jean- Eric de chercher le CodeName est une bonne idée... mais je ne sais pas comment la mettre en oeuvre.

Mon idée initiale était d'insérer une ligne et le calcul se ferait dans la cellule B2

Merci beaucoup pour vos contributions

Cordialement

Rechercher des sujets similaires à "nommer onglet nom present"