VBA Obtenir le nom de la feuille / Renommer la feuille

Ce didacticiel couvrira l'interaction avec les noms de feuilles dans VBA.

Obtenir le nom de la feuille

Les noms de feuilles sont stockés dans le Nom propriété de la Des draps ou Des feuilles de calcul objet. Le nom de la feuille est le nom de "l'onglet" visible en bas d'Excel :

Obtenir le nom ActiveSheet

Cela affichera le nom ActiveSheet dans une boîte de message :

1 MsgBox ActiveSheet.Name

Obtenir le nom de la feuille par numéro d'index

Cela affichera le premier nom de la feuille de calcul dans une boîte de message :

1 Feuilles MsgBox(1).Nom

Cela affichera le nom de la dernière feuille de calcul du classeur :

1 MsgBox Sheets(Sheets.Count).Name

Obtenir le nom de la feuille par nom de code

Dans l'éditeur VBA, il existe une option pour modifier le "nom de code" d'une feuille. Le nom de code n'est pas visible pour l'utilisateur Excel et ne peut être vu que dans l'éditeur VBA :

Dans VBA, lorsque vous travaillez avec Sheets, vous pouvez référencer le nom d'onglet habituel :

1 Sheets("TabName").Activer

ou le nom de code VBA :

1 NomCode.Activer

Il est souhaitable de référencer le nom de code au cas où le nom de l'onglet Feuille changerait. Si vous autorisez l'accès utilisateur Excel à la modification des noms de feuille, vous devez référencer le nom de code dans votre code VBA afin qu'une incompatibilité de nom d'onglet de feuille ne provoque pas d'erreur. Les noms de code de feuille sont discutés plus en détail ici.

Pour obtenir le nom de la feuille à l'aide du nom de code VBA, procédez comme suit :

1 Nom de code MsgBox.Nom

Renommer la feuille

Vous pouvez renommer Sheets en ajustant le Nom propriété de la Des draps ou Des feuilles de calcul objet.

Renommer ActiveSheet

1 ActiveSheet.Name = "NouveauNom"

Renommer la feuille par nom

1 Sheets("OldSheet").Name = "NouveauNom"

Renommer la feuille par numéro d'index de feuille

Ici, nous utilisons 1 pour renommer la première feuille du classeur.

1 Sheets(1).Name = "NouveauNom"

Renommer la feuille par nom de code

Ce code renommera une feuille en utilisant son nom de code VBA (discuté ci-dessus):

1 Component.Name = "NouveauNom"

Vérifier si le nom de la feuille existe

Nous avons créé une fonction pour tester si une feuille avec un nom particulier existe déjà.

123456789101112 'Test si une plage existe sur une feuille.'Laisser la plage vide pour tester si la feuille existe'Contributions:' WhatSheet - Nom de chaîne de la feuille (ex "Sheet1")' WhatRange (Facultatif, Par défaut = "A1") - Nom de chaîne de la plage (ex "A1")Function RangeExists (WhatSheet As String, Facultatif ByVal WhatRange As String = "A1") As BooleanTest de gradation en tant que plageEn cas d'erreur Reprendre ensuiteDéfinir le test = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Err.Number = 0En cas d'erreur GoTo 0Fonction de fin

La fonction retournera TRUE si la feuille existe, ou FALSE si ce n'est pas le cas.

Utilisez la fonction comme ceci :

123 Sub Test_SheetExists()MsgBox RangeExists("configuration")Fin du sous-marin

Copier la feuille et renommer

Cet exemple est tiré de notre article sur la copie de feuilles.

Après avoir copié et collé une feuille, la feuille nouvellement créée devient la feuille active. Donc, pour renommer une feuille copiée, utilisez simplement ActiveSheet.Name :

12345678 Sub CopySheetRename2()Sheets("Sheet1").Copier après :=Sheets(Sheets.Count)En cas d'erreur Reprendre ensuiteActiveSheet.Name = "LastSheet"En cas d'erreur GoTo 0Fin du sous-marin

Remarque : Nous avons ajouté la gestion des erreurs pour éviter les erreurs si le nom de la feuille existe déjà.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave