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.

classeur-activer

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

classeurs de type
  1. Tapez « Classeurs » pour utiliser l’objet classeur.
  2. Spécifiez le nom du classeur entre guillemets doubles.
  3. Entrez un point (.) pour obtenir la liste des propriétés et des méthodes.
  4. Sélectionnez la méthode Activate dans la liste ou vous pouvez également la saisir.
  5. À 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.

vba-affichera-une-erreur

En relation : Activer une feuille de calcul à l’aide de VBA

Liens utiles : Exécuter une macroEnregistreur de macrosVisual Basic EditorManuel 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
activer-un-classeur-en-utilisant-le-numéro

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).

vba-affichera-run-time-error-9

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.

Ajouter un commentaire

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