Comment renommer automatiquement une feuille en fonction d’une cellule Excel ?

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

Dans ce tutoriel, nous allons répondre à la question posée par Jérémie qui souhaite savoir s’il est possible de renommer automatiquement une feuille de calcul Excel à partir d’une valeur saisie dans une cellule, en utilisant le langage VBA.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Présentation

Comme nous venons de le voir dans l’introduction de ce tutoriel, nous allons maintenant voire comment renommer une feuille de calcul en utilisant le contenu d’une cellule.

Pour cela, nous allons bien entendu devoir passer par le développement d’une petite macro-commande en VBA.

Pour que ce tutoriel soit accessible à tout le monde, nous allons revenir dans le détail sur aspect de cette dernière.

Si vous souhaitez aller plus loin dans la découverte du langage VBA, vous pouvez évidemment consulter la formation disponible sur le blog en cliquant ici.

Pour commencer, nous allons lancer l’éditeur de code VBE (pour Visual Basic Editor), qui est l’éditeur de code intégré dans les différentes applications de la suite Office et qui permet de développer des macro-commandes en VBA.

Pour cela, nous appuyons simplement sur les touches [Alt]+[F11] :

Excel formation - renommer feuille - 01

 

2. Création de la macro-commande

Dans un premier temps, nous allons créer une petite macro-commande VBA pour modifier le nom de l’onglet.

Pour cela, nous créons un nouveau module (depuis le menu Insertion > Module).

Ce module est une feuille vierge qui va nous permettre de saisir nos lignes de code.

Ensuite, pour créer la macro nous saisissons la ligne suivante :

Sub renommerFeuille()
 
End Sub

Pour renommer une feuille, il suffit de modifier la propriété Name de l’objet ActiveSheet :

ActiveSheet.Name = "Nouveau nom" 

Nous pouvons alors lancer la macro-commande en appuyant sur la touche [F5].

Si tout va bien, la feuille devrait avoir changé de nom :

Excel formation - renommer feuille - 02

Pour affecter la valeur d’une cellule à ce nom, il ne reste plus qu’à utiliser la valeur de celle-ci :

    ActiveSheet.Name = [b6]

Excel formation - renommer feuille - 03

Nous pouvons également utiliser une concaténation d’une autre cellule, ou alors d’un texte brut en utilisant une esperluette (« & ») :

    ActiveSheet.Name = "Tableau de bord  " & [b6]

Excel formation - renommer feuille - 04

Maintenant, imaginons qu’un jour, nous déplaçions la cellule contenant l’année sur la feuille de calculs :

Excel formation - renommer feuille - 05

Inutile de lancer la macro-commande pour comprendre que cela ne pourra plus fonctionner étant donné que la cellule B6 est maintenant déplacée aux coordonnées B8.

Pour anticiper ce genre de problème, il suffit de donner un nom à la cellule que nous pourrons ensuite utiliser très facilement depuis VBA.

Pour cela, nous sélectionnons la cellule, puis nous nous rendons dans le menu Formules, afin de cliquer sur le bouton « Définir un nom » :

Excel formation - renommer feuille - 06

Ici, nous saisissons le nom à donner à la feuille, par exemple « annee » et nous spécifions bien que ce nom doit avoir une portée limitée à la feuille de calculs actuelle (qui s’appelle maintenant « Tableau de bord 2020 ») :

Excel formation - renommer feuille - 07

Ensuite, nous valions en appuyant sur le bouton [OK].

De retour dans le code VBA, nous pouvons maintenant appeler la cellule directement avec ce nom :

ActiveSheet.Name = "Tableau de bord "  & [annee]

Maintenant, la valeur récupérée ne sera plus dépendante de la position de la cellule.

Le fait d’avoir utilisé une portée limitée à la feuille de calcul, et non pas à l’ensemble du classeur nous permet de pouvoir dupliquer facilement la feuille tout en conservant la possibilité de renommer la feuille :

Excel formation - renommer feuille - 08

Attention, maintenant que nous avons plusieurs feuilles de calcul, nous devons vérifier que la feuille actuelle peut effectivement être renommée sans accroc.

Il est en effet impossible de donner un nom déjà affecté à une autre feuille.

Dans ce cas, Excel nous affichera alors une erreur 1004 avec le message « Désolé… Ce nom est déjà attribué. Veuillez utiliser un autre nom. » :

Excel formation - renommer feuille - 09

Pour éviter ce problème, nous allons poser une étiquette à la fin de la macro que nous appelons « Err » et qui va nous permettre d’afficher un message à l’utilisateur.

Comme nous l’avons déjà vu dans un tutoriel dédié aux étiquettes, celles-ci permettent de se rendre directement à un endroit donné au sein d’une macro en l’appelant simplement par son nom :

Err:
    MsgBox "Impossible de renommer la feuille,  veuillez vérifier le nom..."

Pour éviter de lancer le code affecté à l’étiquette lors de chaque lancement de la macro, nous ajoutons un « Exit Sub » juste avant l’étiquette :

    Exit Sub
    
Err:
    MsgBox "Impossible de renommer la feuille,  veuillez vérifier le nom..."

Ensuite, il ne reste plus qu’à ajouter un contrôle d’erreur avant de renommer la feuille qui va se charger de rediriger le programme vers l’étiquette en cas d’erreur :

    On Error GoTo Err
    ActiveSheet.Name = "Tableau de bord "  & [annee]

Si vous souhaitez en savoir plus sur la gestion et l’utilisation des erreurs de VBA, vous pouvez consulter le tutoriel dédié en cliquant ici.

Maintenant, si nous relançons la macro, Excel nous informera qu’il est impossible de renommer la feuille :

Excel formation - renommer feuille - 10

 

Et voilà, notre macro est maintenant terminée, il ne reste plus qu’automatiser son lancement chaque fois que nous modifions la valeur contenue dans la cellule « annee ».

Pour cela, nous définir un évènement, qui permet de lancer une macro commande chaque fois que quelque chose en particulier se passe sur le classeur, ou sur une feuille de calcul.

Pour créer un évènement, nous devons nous rendre dans la feuille de code de la feuille de calcul, en double cliquant sur celle-ci depuis le navigateur de projet de VBA :

Excel formation - renommer feuille - 11

Puis, dans le premier menu déroulant qui se trouve au-dessus de la feuille de code, nous choisissons Worksheet :

Excel formation - renommer feuille - 12

Et dans le second Change :

Excel formation - renommer feuille - 13

VBA nous ajoute alors automatique l’évènement « Worksheet_Change » :

Private Sub Worksheet_Change(ByVal Target As  Range)
 
End Sub

Il nous suffira alors de contrôler que la cellule modifiée (que VBA nous retourne dans la variable Target) est bien la cellule « annee » et dans ce cas-là, nous pourrons lancer la macro renommerFeuille.

Pour cela, la méthode la plus simple consiste simplement à comparer les adresses des cellules Target et « annee » :

Private Sub Worksheet_Change(ByVal Target As  Range)
    If Target.Address = [annee].Address Then
        renommerFeuille
    End If
End Sub

 

 



Articles qui pourraient vous intéresser

Comment remplir automatiquement des cellules d'un tableau Excel avec la complétion automatique
Comment regrouper (ou pas !) les dates d’un tableau croisé dynamique (TCD) sur Excel ?
Comment connecter Excel sur Internet, sans VBA ?
Comment traduire automatiquement des fonctions Excel dans leur version originale ?
Comment analyser les résultats d’un sondage ou questionnaire avec Excel ?
Comment utiliser la fonction SOMME.SI pour effectuer des recherches sur des textes sur Excel ?
Comment calculer et étudier des écarts budgétaires avec Excel ?
Comment verrouiller et protéger un objet (graphique, image, zone de texte…) sur Excel ?
Comment formater des dates correctement dans Excel ?
Comment protéger le formatage des cellules tout en autorisant la saisie de données dans Excel ?
Comment transformer une photo en tableau Excel ?
Comment créer un publipostage automatique avec Excel ? (sans Word !)

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.