Activer une feuille à l'aide de VBA dans Excel

Application de la methode Activate sur un Worksheet en fait la feuille active, la feuille du dessus.

Sélectionner une feuille

Pour pouvoir activer une feuille, vous devez d'abord la sélectionner. L'activation d'un objet est simple, il suffit d'appeler la fonction Activate sur l'objet. Vous devrez spécifier l'objet que vous voulez activer et c'est là que vous avez plusieurs options qui sont discutées ici.

Activer la feuille par numéro

Il s'appelle ainsi :


ActiveWorkbook.Sheets(Index:=1).Activate

Le code ci-dessus active la première feuille du classeur spécifié.

L'Object Worksheet est obtenu à partir du classeur Sheets procédure .

L'appel à cette méthode équivaut à la sélection de l'onglet de la feuille.

Activer la feuille par nom

Activer la feuille avec le nom de la variable

La manière la plus courante de se référer à une feuille est son nom, tel qu'il est affiché dans l'onglet "Feuilles" :


ActiveWorkbook.Sheets(Index:="data2-17-14").Activate

Si votre macro est destinée à être utilisée par d'autres personnes, vous devrez ajouter une gestion des erreurs appropriée, par exemple :


Dim ws As Worksheet
On Error Resume Next
Set ws = ActiveWorkbook.Sheets(Index:="data2-17-14")
On Error GoTo 0
If Not ws Is Nothing Then
    ws.Activate
Else
    
End If

Activer la feuille par nom de code

Vous pouvez également vous référer directement à une feuille en utilisant sa fonction CodeName propriété. Cette méthode présente l'avantage de garantir l'existence de la feuille de noms. Il n'est toutefois possible de le faire que si la macro se trouve dans le même classeur que la feuille, ce qui n'est souvent pas le cas.


Sheet1.Activate

Activer la feuille en fonction de la valeur de la cellule

L'activation d'une feuille en fonction de la valeur d'une cellule peut s'avérer utile lorsque le nombre d'onglets est tel qu'il devient difficile de naviguer. Une solution possible serait d'avoir une navigation feuille de calcul listant les feuilles cibles et d'ouvrir la feuille correspondant à la cellule sélectionnée.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim strWorksheet As String: strWorksheet = Target.Value
	On Error Resume Next
    Worksheets(Index:=strWorksheet).Activate
End Sub

Sélectionner une feuille et une cellule

Une cellule ne peut être sélectionnée que si la feuille sur laquelle elle se trouve est active. C'est pourquoi, en général, vous ferez précéder la sélection par l'activation de sa Parent. Par exemple, au lieu de Application.Range("Sheet2!B2").Select vous serez plus en sécurité :


With Application.Range("Sheet2!B2")
    .Parent.Activate
    .Select
End With

Activer une feuille dans un autre classeur

Pour activer une feuille, il n'est pas nécessaire que le classeur soit le classeur actif. Il suffit de identifier le cahier d'exerciceset le feuille de calcul que vous voulez activer, puis faites-le :


Dim wb As Workbook
Set wb = Workbooks(Index:="data123.xlsx")
Dim ws As Worksheet
Set ws = wb.Sheets(Index:="Countries")
ws.Activate

Activer la feuille sans l'afficher

Il n'est pas nécessaire de rendre un feuille de calcul (ou un classeur !) actif pour pouvoir opérer dessus. L'idéal est de déclarer un Worksheet et l'instancier à l'aide d'un Set déclaration, comme cela a été fait en la section ci-dessus. Il est plus rapide et plus sûr d'utiliser des variables de cette manière plutôt que de s'appuyer sur le fait que la feuille est active.


Auteur : Mark Uildriks
Référence : Worksheet.Activate() | Microsoft Learn
icône

Essayez le complément de l'éditeur Code VBA