Propriétés pour définir le nom d'une feuille
Une feuille Excel a deux propriétés distinctes pour définir son nom
- Name : C’est le nom qui apparaît dans l’onglet de la feuille et que l’utilisateur peut modifier à sa guise
- CodeName : Est le nom de code de l’objet feuille
Code pour écrire dans une feuille
A titre d'exemple, illustration d'un classeur contenant trois feuilles
[
![Nom : CodeName_1.png
Affichages : 2996
Taille : 35,6 Ko](https://www.developpez.net/forums/attachment.php?attachmentid=581543&d=1602775460)
]
En VBA, il y a trois manières d’utiliser l’objet feuille.
Nous allons écrire le texte "
Date" dans la cellule
A1 de la feuille nommée [
Recap] du classeur où se trouve le code VBA (
ThisWorkbook)
Syntaxe 1 : On désigne la feuille par son numéro d’indice dans la collection.
La constante
3 utilisée pour l'exemple signifie que c’est la troisième feuille en partant de la gauche.
Ce type de désignation est à éviter car si l’utilisateur déplace la feuille 3 vers la gauche ou vers la droite ne n° d’indice ne sera plus correct.
ThisWorkbook.Worksheets(3).Range("A1").Value = "Date"
Syntaxe 2 : On désigne la feuille par son nom.
ThisWorkbook.Worksheets("Recap").Range("A1").Value = "Date"
Syntaxe 3 : On désigne la feuille par son
CodeName
Feuil1.Range("A1").Value = "Date"
Modification de la propriété CodeName
Il est évident que pour faciliter la compréhension de la lecture d’un code, il est préférable de modifier la valeur du
CodeName.
L’exemple ci-dessous est plus lisible en utilisant
shtRecap plutôt que
Feuil1
shtRecap.Range("A1").Value = "Date"
Cette modification s’effectue manuellement dans la fenêtre des propriétés mais pourrait se faire à l’aide du code VBA.
Ci-dessous, une vue de la fenêtre de l'explorateur des projets et celle des propriétés de la feuille nommée Bilan (Name) et shtBilan (CodeName) d'un autre classeur
![Nom : Worksheet_Properties Name CodeName.png
Affichages : 758
Taille : 62,0 Ko](https://www.developpez.net/forums/attachment.php?attachmentid=581542&d=1602775297)
Pourquoi utiliser la propriété CodeName ?
La modification du nom de l'onglet par un utilisateur entrainera de facto, une erreur VBA si nous utilisons la propriété Name (Voir Syntaxe 2). L’utilisation du CodeName permet donc de s’affranchir de ce risque.