Comment activer un classeur Excel via VBA ?
Lorsque vous travaillez avec plusieurs classeurs en même temps, je veux dire, lorsque vous avez plusieurs classeurs ouverts en même temps, vous devez connaître la méthode qui peut vous aider à activer un classeur sur lequel vous souhaitez travailler.
Pour activer un classeur à l’aide de VBA, vous devez utiliser la méthode Workbook.Activate. Dans cette méthode, vous devez spécifier le nom du classeur à l’aide de l’objet Workbook. Il vous permet également d’utiliser le numéro de classeur au lieu du nom du classeur, mais vous ne pouvez faire référence qu’aux classeurs ouverts.
Dans ce didacticiel, nous examinons différentes façons d’utiliser cette méthode.
Étapes pour activer un classeur
- Tapez « Classeurs » pour utiliser l’objet classeur.
- Spécifiez le nom du classeur entre guillemets doubles.
- Entrez un point (.) pour obtenir la liste des propriétés et des méthodes.
- Sélectionnez la méthode Activate dans la liste ou vous pouvez également la saisir.
- À la fin, exécutez le code pour activer le classeur.
Sub vba_activate_workbook()
Workbooks("Book3").Activate
End Sub
Remarque : Si vous essayez d’activer un classeur qui n’est pas ouvert, VBA affichera une erreur.
En relation : Activer une feuille de calcul à l’aide de VBA
Liens utiles : Exécuter une macro – Enregistreur de macros – Visual Basic Editor – Manuel de macros personnelles
Activer un classeur à l’aide du numéro
Lorsque plusieurs classeurs sont ouverts, tous ces classeurs font partie de la collection de classeurs et ont un numéro auquel vous pouvez vous référer, puis vous pouvez utiliser la méthode activate avec. Voici le code :
Sub vba_activate_workbook()
Workbooks(2).Activate
End Sub
Et si vous essayez d’activer un classeur en utilisant un nombre qui n’existe pas, VBA vous montrera une erreur Run-time error ‘9’ (Subscript out of Range).
Activer ce classeur
Vous pouvez faire référence au classeur dans lequel vous écrivez du code à l’aide de la propriété ThisWorkbook. Disons que vous avez cinq classeurs ouverts en même temps mais que vous travaillez sur le « Book1.xlsm », donc lorsque vous exécutez le code suivant, il activera le « Book1.xlsm ».
Sub vba_activate_workbook()
ThisWorkbook.Activate
End Sub
Vérifier avant d’activer un classeur
Comme je l’ai dit, lorsque vous essayez d’activer un classeur qui n’est pas ouvert, VBA vous affiche une erreur. Pour résoudre ce problème, le meilleur moyen est de vérifier d’abord le nom du classeur (s’il est ouvert ou non), puis de l’activer.
Sub vba_activate_workbook()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "Book3.xlsx" Then
wb.Activate
MsgBox "Workbook found and activated"
Exit Sub
End If
Next wb
MsgBox "Not found"
End Sub
En utilisant le code ci-dessus, vous pouvez spécifier un nom de classeur et cela vérifiera d’abord ce classeur dans tous les classeurs ouverts, et s’il trouve le classeur, il l’activera.
Remarques
- Lorsque vous utilisez le nom du classeur, assurez-vous d’utiliser l’extension de fichier correcte
- Si vous souhaitez activer un classeur qui n’est pas encore enregistré, vous devez utiliser uniquement le nom de ce classeur sans suffixer l’extension de fichier.