Comment utiliser la variable VBA ThisWorkbook dans Excel ?

Dans VBA, vous pouvez utiliser la propriété ThisWorkbook pour faire référence au classeur dans lequel vous écrivez le code. Lorsque vous l’utilisez, vous avez accès à toutes les propriétés et méthodes du classeur en cours. En termes simples, vous pouvez exécuter toutes les tâches du classeur en cours sans utiliser le nom.

Supposons que vous souhaitiez compter les feuilles du classeur en cours. Le code que vous devez écrire serait le suivant.

Sub vba_thisworkbook()
MsgBox ThisWorkbook.Sheets.Count
End Sub
vba-ce classeur

Lorsque vous exécutez ce code, une boîte de message s’affiche avec le nombre de feuilles que vous avez dans le classeur en cours.

boîte-de-message-avec-le-compte-de-feuilles

Comme je l’ai dit, lorsque vous utilisez le ThisWorkbook, il vous donne accès aux propriétés et à la méthode du classeur en cours. Vous pouvez voir tout cela lorsque vous entrez un point (.) pour voir la liste complète.

accès-aux-propriétés

Liens utiles : Exécuter une macroEnregistreur de macrosVisual Basic EditorManuel de macros personnelles

Utilisation de ThisWorkbook avec une variable

Ensuite, je vais vous montrer un exemple de code réel pour déclarer une variable afin d’utiliser la propriété ThisWorkbook. Supposons que vous souhaitiez effectuer plusieurs activités dans le classeur en cours.

Sub vba_thisworkbook()
Dim myWB As Workbook
Set myWB = ThisWorkbook
With myWB
    .Activate
    .Sheets(1).Activate
    .Range("A1") = Now
    .Save
    .Close
End With
End Sub

Dans la première partie de ce code, vous avez une variable, puis lui attribuez la propriété « ThisWorkbook ». Et puis dans la deuxième partie, vous avez le WITH STATEMENT pour effectuer plusieurs activités avec la variable actuelle.

ActiveWorkBook Vs. Ce classeur

Laissez-moi vous l’expliquer avec une simple analogie, alors soyez avec moi pendant les 2 prochaines minutes.

Vous avez deux classeurs ouverts en même temps (Book1 et Book2). Vous écrivez du code dans book1 mais book2 est actif à ce stade. Ainsi, lorsque vous exécutez ce code qui fait référence à ActiveWorkbook, il effectuera cette activité dans Book2 .

Mais lorsque vous utilisez ThisWorkbook, VBA fait toujours référence au classeur dans lequel le code est écrit.

Voici le problème : il est toujours préférable d’utiliser le ThisWorkbook car il élimine les risques d’erreur.

En savoir plus sur les classeurs VBA

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *