Dans ce cours, nous allons voir en détail un exemple d'utilisation des procédures événementielles. Le but de cette procédure est d'actualiser les TCDs de la feuille que l'on vient d'activer. Nous plaçons cet événement au niveau du classeur de façon à ce que chaque feuille réagisse de la même manière.
Pour accéder au fichier, cliquez ici.
Bonnes pratiques: |
|
|
| Ne pas utiliser d'accents dans le code VBA. | Pour des développements à l'international, cela peut générer des problèmes de compatibilité. | |
| A la fin d'un End If (ou d'un Next), mettre un commentaire. | Pour des structures assez complexes, cela permet de savoir où se termine la condition (ou la boucle). | |
| Nomenclature des variables | Ici, nous choisissons L ou P pour une variable Locale ou Publique,
puis nous ajoutons un descriptif relatif au type de la variable (par ex.
S pour String ou I pour Integer) et finalement, une description de la
variable elle-même. Dans ce cas, nous utilisons aussi un "i" pour indiquer une variable utilisée dans une boucle. |
|
Vocabulaire: |
|
|
| Private Sub Workbook_SheetActivate(ByVal Sh As Object) | Procédure événementielle liée à l'activation d'une feuille. | |
| PivotTable | Objet représentant un tableau croisé dynamique. | |
| Application.StatusBar | Contenu de la barre des tâches situés à bas à gauche de l'écran. | |
| IIf(expr, truepart, falsepart) | Equivalent d'un 'If...Then...Else', mais en une seule ligne. | |
| .PivotCache.Refresh | Rafraichit les données d'un tableau croisé dynamique. | |
Limites et autres possibilités |
||
| Utilisation de Workbook.RefreshAll | Refreshall est une instruction qui permet d'actualiser l'ensemble
des plages de données externes et les rapports de tableau croisé
dynamique du classeur spécifié. La méthode proposée ici permet de n'actualiser que les TCDs de la feuille (et donc gagner en temps de calcul) |
|
| Ajout du code au niveau de la feuille | On pourrait choisir d'ajouter le code au niveau de la feuille. Par exemple, si on gère d'autres TCDs qui sont particulièrement long à être actualisés ou bien qui ne doivent pas être actualisés. | |
| Application.statusbar | Tiré de l'aide : "Cette propriété renvoie False si
Microsoft Excel possède le contrôle de la barre d'état. Pour restaurer
le texte par défaut de la barre d'état, définissez cette propriété sur
False. Cela reste valable même si la barre d'état est masquée." C'est pour cette raison que l'on utilise le Iif dans le code. |
Note : les descriptions données dans ce tableau correspondent spécifiquement au contexte de l'exemple. Il peut exister d'autres utilisations de l'instruction.
Procédure événementielle, Tableaux croisé dynamique