La propriété CodeName d’une feuille ou « Comment s’affranchir de la modification du nom de la feuille par un utilisateur ?« .

Une feuille 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

Voici en VBA trois manières d’utiliser l’objet feuille.

Pour notre exemple, nous allons écrire le texte « Date » dans la feuille nommée [Recap]

Exemple 1 : On désigne la feuille par son numéro d’indice dans la collection. Pour l’exemple 3 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"

Exemple 2 : On désigne la feuille par son nom.

ThisWorkbook.Worksheets("Recap").Range("A1").Value = "Date"

Exemple 3 :

Feuil1.Range("A1").Value = "Date"

Pourquoi utiliser la propriété CodeName ?

Si l’utilisateur modifie le nom de l’onglet, le programme se mettra en erreur pour le deuxième exemple. L’utilisation de cette propriété permet donc de s’affranchir de ce risque.

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 avec shtRecap qu’avec Feuil1

shtRecap.Range("A1").Value = "Date"

Cette modification s’effectue manuellement dans la fenêtre des propriétés mais peut évidemment se faire à l’aide du code VBA.

Manuellement

Dans l’exemple ci-dessous, nous pouvons voir où se trouve cette propriété