VBA – Obtenir le Nom d’une Feuille / Renommer une Feuille
In this Article
Ce tutoriel traite de l’interaction avec les noms des feuilles en VBA.
Obtenir le Nom d’une Feuille
Les noms des feuilles sont stockés dans la propriété Name de l’objet Sheets ou Worksheets. Le nom de la feuille correspond au nom de l’onglet visible au bas de l’interface graphique d’Excel :
Obtenir le Nom de la Feuille Active
Cette opération affiche le nom de la feuille active dans une boîte de message :
MsgBox ActiveSheet.Name
Obtenir le Nom de la Feuille par Numéro d’Index
Cette opération affiche le nom de la première feuille de calcul dans une boîte de message:
MsgBox Sheets(1).Name
Ceci affichera le nom de la dernière feuille de calcul dans le classeur :
MsgBox Sheets(Sheets.Count).Name
Obtenir le Nom de la Feuille par son Nom de Code
Dans l’éditeur VBA, il existe une option permettant de modifier le « nom de code » d’une feuille. Le nom de code n’est pas visible pour l’utilisateur d’Excel et ne peut être vu que dans l’éditeur VBA :
En VBA, lorsque vous travaillez avec des feuilles, vous pouvez faire référence au nom habituel de l’onglet :
Sheets("NomOnglet").Activate
ou le nom du code VBA
NomDeCode.Activate
Il est souhaitable de faire référence au nom de code au cas où le nom de l’onglet de la feuille changerait. Si vous permettez à votre utilisateur Excel d’accéder à la modification des noms de feuilles, vous devez faire référence au nom de code dans votre code VBA afin d’éviter qu’une erreur se produise si le nom de l’onglet de la feuille ne correspond pas. Les noms de code de feuille sont abordés plus en détail ici.
Pour Obtenir le Nom de la Feuille en Utilisant le Nom de Code VBA, Procédez Comme Suit :
MsgBox NomDeCode.Name
Renommer une Feuille
Vous pouvez renommer les feuilles en modifiant la propriété name de l’objet Sheets ou Worksheets.
Renommer la Feuille Active
ActiveSheet.Name = "NouveauNom"
Renommer une Feuille par son Nom d’Onglet
Sheets("NomActuel").Name = "NouveauNom"
Renommer une Feuille par son Numéro d’Index
Ici, nous utilisons 1 pour renommer la première feuille du classeur.
Sheets(1).Name = "NouveauNom"
Renommer une Feuille en Utilisant son Nom de Code
Ce code renomme une feuille en utilisant son nom de code VBA (voir ci-dessus) :
NomDeCode.Name = "NouveauNom"
Vérifier si le Nom de la Feuille Existe
Nous avons créé une fonction permettant de vérifier si une feuille portant un nom particulier existe déjà.
'Entrées :
' NomDeFeuille - Nom en texte de la feuille (ex "Feuil1")
' PlageTest - (facultatif, par défaut = "A1") - Nom en texte de la plage à tester (ex "A1")
Function FeuilleExiste(NomDeFeuille As String, Optional ByVal PlageTest As String = "A1") As Boolean
Dim test As Range
On Error Resume Next
Set test = ActiveWorkbook.Sheets(NomDeFeuille).Range(PlageTest)
FeuilleExiste = Err.Number = 0
On Error GoTo 0
End Function
La fonction renvoie VRAI si la feuille existe, ou FAUX si elle n’existe pas.
Utilisez la fonction comme suit :
Sub Test_FeuilleExiste()
MsgBox FeuilleExiste("NomOnglet")
End Sub
Copier une Feuille et la Renommer
Cet exemple est tiré de notre article sur la copie de feuilles. Après avoir copié et collé une feuille, la nouvelle feuille créée devient la feuille active. Ainsi, pour renommer une feuille copiée, il suffit d’utiliser ActiveSheet.Name :
Sub CopierRenommerFeuille()
Sheets("Feuil1").Copy After:=Sheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = "DernièreFeuille"
On Error GoTo 0
End Sub
Remarque : Nous avons ajouté une ligne de gestion des erreurs pour éviter les erreurs si le nom de la feuille existe déjà. Une erreur peut toutefois se produire si la feuille « Feuil1 » n’existe pas.