Vous savez probablement déjà que vous pouvez modifier le nom d’un onglet de feuille de calcul en double-cliquant sur l’onglet et en fournissant un nouveau nom. Et si vous voulez le faire de manière dynamique, cependant? Que faire si vous souhaitez que la valeur de la cellule A1 apparaisse automatiquement comme nom de l’onglet?

Malheureusement, Excel ne fournit pas de fonction intrinsèque pour gérer ce type de tâche. C’est une tâche relativement simple de développer une telle fonction en utilisant une macro qui fera le travail pour vous. Par exemple, la macro suivante changera le nom de l’onglet en contenu de A1:

Sub myTabName()

ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

Il y a plusieurs éléments importants à noter à propos de cette macro. Tout d’abord, il n’y a pas de vérification des erreurs. Cela signifie que si A1 contient une valeur qui serait illégale pour un nom d’onglet, la macro génère une erreur.

Deuxièmement, la macro doit être exécutée manuellement.

Que faire si vous voulez une macro plus robuste qui vérifie les erreurs et s’exécute automatiquement? Le résultat est un peu plus long, mais toujours pas trop complexe:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Left(Target, 31)

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Pour configurer cette macro, procédez comme suit:

  1. Ouvrez un nouveau classeur qui ne contient qu’une seule feuille de calcul.

  2. Cliquez avec le bouton droit sur l’onglet de la feuille de calcul et sélectionnez Afficher le code dans le menu contextuel résultant. Excel affiche l’éditeur VBA.

  3. Collez (ou tapez) la macro ci-dessus dans la fenêtre de code.

  4. Fermez l’éditeur VBA.

  5. Recherchez le dossier XLStart sur votre système. (Utilisez les fonctionnalités de recherche de Windows pour localiser le dossier.)

  6. Enregistrez le classeur en tant que modèle Excel prenant en charge les macros en utilisant le nom Book.xltm dans le répertoire XLStart. Cela provoque le modèle pour devenir votre modèle pour tout nouveau classeur que vous créez.

  7. Enregistrez à nouveau le classeur en tant que modèle prenant en charge les macros dans le même répertoire, cette fois en utilisant le nom Sheet.xltm. Cela provoque le modèle pour devenir le modèle pour toutes les nouvelles feuilles de calcul que vous insérez dans un classeur.

  8. Fermez et redémarrez Excel.

Désormais, chaque fois que vous modifiez la valeur de la cellule A1, l’onglet de la feuille de calcul est également mis à jour.

Il y a une mise en garde à l’utilisation de cette astuce: si la valeur de la cellule A1 est une date et que vous souhaitez que l’onglet de la feuille de calcul contienne cette date, vous n’obtiendrez peut-être pas ce que vous attendez. La raison est simple: Excel stocke les dates en interne sous forme de numéros de série, et c’est ce qui est attribué à l’onglet de la feuille de calcul, pas à une date formatée. Si vous travaillez avec des dates, vous devrez changer ce qui est réellement affecté au nom de l’onglet:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Format(Target, "mmm-dd-yy")

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Notez que le seul changement ici est ce qui est affecté à la propriété Name de la feuille de calcul: il s’agit d’une date formatée. Vous pouvez, si vous préférez, modifier le format de date utilisé dans la macro. Cependant, vous ne devez pas choisir un format qui utilise des barres obliques car celles-ci sont illégales dans les noms de feuille de calcul.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7993) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Dynamic_Worksheet_Tab_Names [Noms de l’onglet Dynamic Worksheet].