Aller plus loin avec VBA
Ce n’est que le début
En ayant lu tous les chapitres jusqu’ici, vous commencez à comprendre toutes les possibilités qui s’offrent à vous. Ce n’est pourtant que la découverte du langage VBA et de la façon élémentaire de l’utiliser pour permettre à vos utilisateurs de gagner du temps.
Ce ne sont pas les seules choses qui pourront être apprises par la suite.
Cet ouvrage recouvre des sujets vous permettant de découvrir les rudiments de la programmation et bientôt, avec l’expérience, vous serez tenté d’aller au-delà. Afin de vous permettre de continuer à progresser, voici quelques pistes de sujets sur lesquels vous pourrez poursuivre votre initiation.
Les modules de classes
Vous avez vu dans les chapitres Manipuler les cellules Excel et Manipuler les feuilles Excel la possibilité de travailler avec des objets plus ou moins élaborés, et de faire appel à leurs propriétés, leurs méthodes et même leurs évènements.
Vous avez rédigé vos exercices dans des modules, écrit des fonctions et des procédures dans des formulaires utilisateurs. Le sujet qui n’a volontairement pas été abordé jusqu’à présent, jugé d’un niveau plus avancé, concerne les modules de classe.
Définition sommaire d’un module de classe
Un module de classe est un module qui vous permet de créer vos propres objets. Vous y stockerez comme bon vous semble des variables, vous permettrez au reste de vos programmes d’accéder à des propriétés, mais également des méthodes, voire également des événements.
Vous pourrez donc créer votre propre type de données.
Afin d’éveiller votre intérêt, voici un exemple.
Ajouter un module de classe
Pour ajouter un module de classe à votre projet, cliquez sur le menu Insertion - Module de classe.
Il apparaîtra dans le dossier Modules de classe. Vous pouvez lui donner le nom que vous souhaitez. Ce nom servira ensuite lors de la création de cet objet.
Dans cet exemple, le module de classe sera nommé clsDossier.
Une fois le module de classe créé, vous pouvez y ajouter ce dont vous aurez besoin.
Les variables
Vous pouvez stocker dans un module de classe des variables, qui seront visibles (Public) ou non (Private) depuis le programme qui l’appellera. Les types de données sont identiques à ceux vus dans cet ouvrage.
Private strDossier As String
Private dtDateOuverture As Date
Private rngCellules As Range
Exemple 1 : déclaration de variables privées dans un module de classe
Les propriétés
Tout comme vous l’avez découvert dans cet ouvrage, il est possible de déterminer des propriétés à votre classe. L’avantage des propriétés dans un module de classe est de pouvoir effectuer un potentiel contrôle sur les données fournies, et surtout de donner accès de façon indirecte uniquement aux variables qui sont de portée Private par le biais de propriétés Public.
Il y a trois types de propriétés :...
Continuer de progresser dans le pilotage d’Excel
Cet ouvrage vous a permis de découvrir certaines fonctionnalités d’Excel que vous pouvez manipuler avec VBA. Ce ne sont pas les seules fonctionnalités qu’il vous reste à découvrir. Au travers de l’Enregistreur de macros, vous pourrez apprendre par vous-même quelques-unes d’entre elles.
Les tableaux croisés dynamiques
Les tableaux croisés dynamiques (ou TCD) permettent d’effectuer des calculs sur des ensembles de données. En regroupant les informations et en les organisant selon vos propres critères, vous serez en mesure de connaître des montants par catégorie, des résultats par trimestres, et ce très simplement.
Il est moins fréquent d’avoir besoin de les générer par programmation, mais cela reste possible de le faire.
Le type d’objet VBA qui représente un TCD est PivotTable. Il y est également question de PivotField pour les champs de votre tableau.
La fonction Excel LIREDONNEESTABCROISDYNAMIQUE correspond à GetPivotData en VBA.
Les mises en forme conditionnelles
Lorsque vous travaillez avec des ensembles de données et que vous souhaitez mettre en avant les chiffres qui sortent du lot, ou alors qui répondent à certains critères, la mise en forme conditionnelle est un outil particulièrement...
Piloter une autre application qu’Excel
Lorsque vous avez commencé à programmer en VBA avec cet ouvrage, nous avons utilisé uniquement des objets Excel.
Sachez que le langage VBA s’utilise aussi avec les autres applications Microsoft comme Access, Word, Outlook ou PowerPoint. Il est donc possible d’utiliser le socle de connaissances que vous avez acquises pour envisager de travailler avec ces autres outils.
En ajoutant les librairies dédiées, il devient possible d’effectuer des manipulations de documents Word ou de courriels créés avec Outlook. Voici quelques échantillons de code permettant de piloter ces applications.
Créer et écrire dans un document Word
En ajoutant la librairie Microsoft Word 16.0 Object Library, il est possible de manipuler les objets Word.
Pour ajouter une librairie, utilisez le menu Outils dans VBE et sélectionnez Références. Les librairies sont classées par ordre alphabétique : cochez celles que vous souhaitez ajouter à votre projet et décochez celles dont vous n’avez pas besoin.
Le programme suivant viendra ouvrir l’application Word, créer un nouveau document, et écrire Bonjour dedans.
Option Explicit
Public Sub PiloterWord()
'Déclarations
Dim wdApp As Word.Application
Dim wdDoc As Word.Document ...