Cet article traite de l'objet ActiveSheet dans VBA. Il expliquera également comment activer, sélectionner et accéder aux feuilles de travail (et bien plus encore). Lisez notre guide complet des feuilles de calcul VBA pour plus d'informations sur l'utilisation des feuilles de calcul dans VBA.
Feuille active
Dans VBA, ActiveSheet fait référence à la feuille de calcul actuellement active. Une seule feuille peut être active à la fois.
Activer la feuille de calcul (définir l'ActiveSheet)
Pour définir ActiveSheet, utilisez Worksheet.Activate :
1 | Feuilles de calcul("Entrée").Activer |
La commande Activer la feuille va en fait « aller à » la feuille, en changeant la feuille visible.
L'exemple ci-dessus utilise le nom Sheet (Tab). Au lieu de cela, vous pouvez utiliser le nom de code VBA pour la feuille de calcul :
1 | Feuille1.Activer |
Nom de la feuille active
Pour obtenir le nom ActiveSheet :
1 | msgbox ActiveSheet.nom |
Feuilles sélectionnées vs ActiveSheet
À tout moment, une seule feuille peut être la feuille active. Cependant, plusieurs feuilles de calcul peuvent être sélectionnées à la fois.
Lorsque plusieurs feuilles de calcul sont sélectionnées, seule la feuille de calcul « la plus élevée » est considérée comme active (la feuille active).
Sélectionner une feuille de calcul
Si vous souhaitez sélectionner une feuille de calcul au lieu de l'activer. Utilisez .Select à la place.
Sélectionnez la feuille de calcul par nom d'onglet
Cela sélectionne une feuille de calcul en fonction de son nom d'onglet de feuille
1 | Feuilles("Entrée").Sélectionnez |
Sélectionnez la feuille de calcul par numéro d'index
Cela sélectionne une feuille de calcul en fonction de sa position par rapport aux autres onglets
1 | Feuilles de travail(1).Sélectionnez |
Sélectionnez la feuille de calcul avec le nom de code VBA
1 | Feuille1.Sélection |
La sélection de feuilles de calcul par nom de code peut éviter les erreurs causées par les changements de nom de feuille de calcul.
Sélectionner la feuille de calcul actuelle
Pour sélectionner la feuille de calcul actuelle, utilisez l'objet ActiveSheet :
1 | ActiveSheet.Select |
Plus d'exemples d'activation/sélection de feuilles
Définir ActiveSheet sur Variable
Cela affectera l'ActiveSheet à une variable d'objet de feuille de calcul.
123 | Dim ws As Feuille de calculDéfinir ws = ActiveSheet |
Changer le nom de la feuille active
Cela changera le nom ActiveSheet.
1 | ActiveSheet.Name = "NouveauNom" |
Avec ActiveSheet
L'utilisation de l'instruction With vous permet de rationaliser votre code lorsque vous travaillez avec des objets (tels que Sheets ou ActiveSheet).
12345 | Avec ActiveSheet.Name = "StartFresh".Cellules.Effacer.Range("A1").Valeur = .NomTerminer par |
Remarquez que vous n'avez pas besoin de répéter "ActiveSheet" avant chaque ligne de code. Cela peut être un gain de temps considérable lorsque vous travaillez avec une longue liste de commandes.
Parcourir les feuilles sélectionnées
La macro suivante parcourra toutes les feuilles sélectionnées, affichant leurs noms.
12345678 | Sub GetSelectedSheetsName()Dim ws As Feuille de calculPour chaque ws dans ActiveWindow.SelectedSheetsMsgBox ws.NameWS suivantFin du sous-marin |
Aller à la feuille suivante
Ce code ira à la feuille suivante. Si ActiveSheet est la dernière feuille, elle ira à la première feuille du classeur.
12345 | Si ActiveSheet.Index = Worksheets.Count ThenFeuilles de travail(1).ActiverAutreActiveSheet.Next.ActivateFin si |