Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

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.

images/22SOB01N.png

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...

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.

images/22SOB05N.png

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 ...