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
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.
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.
Liens utiles : Exécuter une macro – Enregistreur de macros – Visual Basic Editor – Manuel 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.