Macro ou événement pour activer la bonne feuille de calcul dans Excel VBA

Lorsque vous ouvrez un classeur, la feuille de calcul sur laquelle vous étiez avant la dernière fois que vous avez enregistré le classeur est activée. Dans l’image suivante, vous disposez d’un classeur contenant exactement douze feuilles de calcul. Celles-ci sont appelées de Feuil1 à Feuil10.

Une seule feuille de calcul est réservée pour chaque mois. Lorsque le classeur est ouvert, Excel doit automatiquement activer la feuille de calcul correcte en fonction de la date actuelle.

Private Sub Workbook_Open()

Dim MoisNr As Integer

Const FeuilNom = "Feuille"

MoisNr = Month(Now())

On Error GoTo ErreurA

Sheets(FeuilNom & MoisNr).Activate

Exit Sub

ErreurA:

MsgBox "Il n'y a pas de feuille avec le nom" _

& FeuilNom & MoisNr

End Sub

 

Commentaires :

■ En conjonction avec les fonctions Month et Now, vous déterminez le mois en cours et l’enregistrez dans la variable MoisNr.

■ Activez maintenant la feuille de calcul que vous recherchez en assemblant le nom de la table à partir de la constante FeuilNom et de la variable MoisNr.

■ N’oubliez pas d’inclure l’instruction On Error. Dans le cas de Un message s’affiche à l’écran indiquant qu’une feuille de calcul correspondante est introuvable dans le classeur.

Voici une autre tâche similaire : Imaginez que vous ayez une table dans laquelle la colonne A est remplie avec des valeurs de date. La tâche consiste maintenant à placer le pointeur de la souris sur la cellule contenant la date actuelle. Ce processus doit avoir lieu automatiquement et immédiatement après l’ouverture du classeur. La solution à ce problème se trouve dans la macro suivante :

Private Sub Workbook_Open()

Dim PlageCell As Range

For Each PlageCell In ActiveSheet.UsedRange

If PlageCell.Value = Date Then

PlageCell.Select

Exit Sub

End If

Next PlageCell

End Sub

 

Avant cela, vous utilisiez l’événement Workbook_Open pour vous positionner sur une feuille de calcul souhaitée. Une autre possibilité de toujours être sur la bonne feuille de calcul après l’ouverture du classeur est de s’assurer que la feuille de calcul souhaitée est activée immédiatement avant de fermer le classeur. Pour ce faire, utilisez l’événement Workbook_BeforeClose.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Worksheets(1).Activate

End Sub

ou:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Worksheets("Feuil1").Activate

End Sub

 

Commentaires :

 Les deux macros ne doivent pas nécessairement avoir le même résultat. La première variante active la feuille de calcul qui est disposée en première position dans le classeur. Cela ne doit pas nécessairement être la Feuil1. Dans la deuxième variante, la feuille de calcul portant le nom Feuil1 est activée, quel que soit son emplacement dans le classeur.

 Par mesure de sécurité, vous pouvez également inclure une instruction On Error ici pour vous assurer qu’il n’y a pas de messages d’erreur de macro.

Pour tester l’événement Workbook_Open, vous n’avez pas besoin de fermer le classeur, puis de l’ouvrir à nouveau. Vous pouvez également démarrer cet événement directement dans l’environnement de développement en plaçant le pointeur de la souris sur la première ligne d’événement et en appuyant sur la touche | F5 | actionner.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x