Excel-lence

Catégories
Excel VBA Macro

Les objets Excel : maîtriser le langage de programmation VBA

Les objets Excel : maîtriser le langage de programmation VBA

objet vba macro

Les objets dans Excel concernent toutes les actions à effectuer dans une macro de façon automatique. On les utilise pour automatiser la mise en forme, pour programmer de nouvelles fonctions indisponibles sur Excel et pour manipuler simplement le contenu d’un classeur entier ou d’une partie spécifique de la feuille de calcul.

Notions des objets VBA

La notion des objets est essentielle à comprendre et à maîtriser si l’on souhaite se lancer dans l’apprentissage de la programmation Excel  VBA. Il s’agit d’un élément clé dans plusieurs langages qu’on appelle “orientés objets”. 

Le langage de programmation VBA ou une application sur Excel est composée d’objets et de sous objets. Le tout est regroupé dans le formulaire collection, s’ils sont de la même nature. Le classeur porte le nom de ses objets inclus qui y sont classés d’une manière hiérarchique. 

Un objet VBA est une variable dans le code Visual Basic à laquelle on a attribué d’autres variables qu’on appelle aussi des sous-objets. 

Les variables Excel ont pour but de stocker des valeurs lorsque l’application est en cours d’exécution. 

L’objet est composé de deux parties principales nécessaires pour activer une procédure automatique dans Excel. Nous avons les propriétés (style de la fenêtre) et les méthodes associées qui permettent d’exécuter des actions prédéfinies et programmées en langage VBA.

Dans cet article, nous allons nous familiariser avec les notions de base et l’utilisation des objets dans un premier temps. Nous allons ensuite différencier les objets VBA Excel des événements dans une macro. Et pour une meilleure compréhension du sujet, nous allons donner quelques exemples des objets dans le langage VBA.

Mieux comprendre les objets VBA

La définition d’un objet VBA peut être très large, car celui-ci représente différents éléments dans Excel (une feuille de calcul, un classeur, une cellule, un formulaire ou autre). À chaque objet d’une macro, est attribuée d’une part une méthode et d’autre part, une propriété.

Les propriétés Excel

Les propriétés Excel sont les caractéristiques propres de chaque type d’objet. Donc, une propriété décrit et définit l’objet et peut être modifiable par le biais des méthodes. D’une collection d’objets à une autre (application, workbook, worksheet, range…) les propriétés sont variables.

Exemples : Les propriétés ActiveSheet, Charts, Sheets, Worksheets sont relatives à l’objet workbook. De la même façon, les propriétés Cells, Columns, Protect, Contents, Range, Row sont propres à l’objet Worksheet ou feuille de classeur.

Les méthodes Excel

Les méthodes Excel c’est une procédure qui permet aux utilisateurs de mener des opérations programmées et automatiques en VBA. Grâce aux méthodes, on est capable d’entraîner des modifications sur les propriétés de chaque objet Excel ce qui apporte une manipulation facile des objets. 

Exemples : Les méthodes Close, Save, SaveAs, Unprotect s’appliquent au niveau de l’objet classeur Excel ou workbook. Par contre, les méthodes Activate, Copy, Delete, Move, Paste, PrintOut, Protect, Select et Unprotect sont uniquement appliquées sur une feuille du classeur.  

Combinées, les méthodes et les propriétés ont pour objectif d’installer un processus automatique en mesure d’entraîner des modifications de la forme ou de la valeur d’un objet selon des données indiquées dans Excel. C’est-à-dire, qu’avec les méthodes et les propriétés des objets, on peut modifier sa taille, sa valeur, sa couleur ou encore son mode de fonctionnement.

Les événements Excel sont les commandes d’exécution d’une action par un objet défini. Donc, le fait d’ouvrir un classeur, de cliquer sur un bouton ou sur la souris, de sélectionner un champ ou de modifier le contenu d’une cellule, déclenche des événements Excel qui permettent d’apporter des modifications dans les objets de façon automatique et simple. 

On peut donc dire qu’un événement s’applique à un ou plusieurs objets (une feuille de calcul, une cellule du tableur ou un classeur dans sa globalité par exemple) afin d’optimiser et d’automatiser la saisie et le traitement des données sur Excel.

Des exemples concrets de l’utilisation des objets VBA Excel

La bibliothèque des objets VBA complets est disponible sous l’onglet Développeur présent sur chaque classeur Excel. Les propriétés et les méthodes sont également accessibles et à utiliser pour la programmation. Le menu déroulant donne la possibilité de consulter tous les objets ou de restreindre l’affichage à une sélection bien déterminée, ceci simplifie énormément la création des commandes VBA.

Après avoir détaillé la définition et l’intérêt des objets VBA et afin d’obtenir une vue plus précise sur le sujet, voyons quelques exemples d’objets Excel.  

L’objet Workbook (classeur)

L’objet workbook sur Excel désigne un classeur spécifique parmi différents classeurs ouverts simultanément. Étant adressé à un workbook bien déterminé, l’objet peut faire référence à un classeur existant ou créé par l’utilisateur.

Parmi les événement Excel liés à l’objet workbook les plus utilisés, on retrouve :

  • Open qui s’exécute à l’ouverture du classeur
  •  BeforeClose qui s’exécute avant la fermeture du classeur
  • Sheetchange dont l’exécution se produit à la modification d’une cellule ou d’une plage

L’objet Worksheet (feuille de calcul)

L’objet feuille de calcul fait partie de la collection worksheet et désigne les feuilles de calcul dans un classeur. On peut associer différentes actions (Copier, supprimer, coller…)

Les événement Excel principaux liés à l’objet worksheet sont

  • Change qui se produit en modifiant une cellule ou plage de la feuille de calcul
  • SelectionChange qui s’exécute lorsqu’on sélectionne une plage différente dans un classeur

L’objet range

L’objet Range permet d’indiquer une cellule particulière, une plage, une ligne ou une colonne spécifique. L’objet de plage VBA Excel désigne soit une cellule ou plusieurs, même réparties sur différentes lignes.

UsedRange

L’objet UsedRange désigne la partie utilisée de la feuille de calcul. Non seulement les cellules non vides sont concernées par cet objet, mais en plus, toutes les cellules qui sont mises en forme même sans aucune valeur dedans.

Catégories
Excel VBA Macro

Evénements VBA Excel: les déclencheurs de macros

évènement excel vba - Objets VBA

Cet article a pour objectif de clarifier certaines confusions liées aux fonctionnalités de Microsoft Excel et de présenter le concept des événements VBA ainsi que ses utilisations les plus fréquentes.

Pourquoi utiliser VBA EXCEL ?

L’utilisation de Microsoft Excel est très répandue de nos jours, surtout du côté des petites entreprises.

La macro est un outil exemplaire pour les entrepreneurs souhaitant bénéficier de ses nombreux avantages à petit budget.

En effet, VBA excel permet de stocker pertinemment les données et offre une grande flexibilité quant à leur gestion.
Il est vrai que comparé à d’autres outils de gestion des données, Microsoft excel est le plus simple et le plus facile à utiliser. La macro permet plusieurs axes d’amélioration des feuilles de calcul et notamment un champ très large d’automatisation des processus de travail.
Par contre, pour profiter de toutes les fonctionnalités et les privilèges des macros, il y a certains aspects techniques de l’outil qui semblent un peu plus compliqués et nécessitent un minimum de connaissances clés.
Comprendre la différence entre les feuilles de calcul et les classeurs, mieux connaître les évènements Excel et leurs codes associés et leur champ d’utilisation en plus du côté technique du langage VBA sont des atouts importants pour exploiter au maximum votre tableur.

La différence entre Workbook et Worksheet

Les termes Workbook et Worksheet ou feuilles de calcul et classeurs sont souvent l’objet de confusion chez de nombreux utilisateurs de Microsoft Excel. Pourtant, il y a une grande différence qui peut vous aider à distinguer les deux. Le workbook ou le classeur, comme son nom l’indique, est le dossier de stockage des feuilles de calcul.
Sous un seul workbook, on peut mettre de nombreux Worksheets allant jusqu’à 255. Par contre, l’inverse ne fonctionne pas. La feuille de calcul est une seule page qu’on peut facilement associer à un classeur, dupliquer, masquer et supprimer, tandis qu’ajouter un workbook à un autre est très compliqué. La différence principale entre worksheet et workbook est donc que le premier offre une vue unique hors que le deuxième offre un ensemble de vues sur les tableurs Excel.

excel workbook - classeur excel

Comprendre les événements Excel VBA et les macros

Les Événements VBA Excel sont des déclencheurs d’actions automatiquement et instantanément exécutées. Il s’agit d’une programmation VBA au sein du classeur qui définit la tâche ainsi que son événement associé dans une feuille de calcul ou dans l’ensemble des tableurs.

La macro offre la possibilité de créer des événements qui se déclenchent suite à un ou plusieurs objets prédéfinis. Les actions peuvent être effectuées soit par l’utilisateur ou par excel en fonction des paramètres mis en place. En effet, le simple fait d’ouvrir le classeur, de modifier le contenu d’une feuille de calcul ou de sélectionner des cellules précises peut engendrer des événements excel automatiques.
L’objectif du code exécuté suite à un événement VBA c’est de créer des tableaux Excel interactifs et dynamiques, d’améliorer l’emploi et le suivi dans Excel, de faciliter et d’automatiser certaines tâches.
Maintenant qu’on a compris la différence entre la feuille de calcul et le classeur et qu’on a bien expliqué l’intérêt de la programmation VBA, faisons le tour des événements les plus utilisés sur Microsoft Excel.

Comment créer des événements VBA excel pour exécuter la macro

Avant de se lancer dans les macros Excel, il est important de noter qu’il existe différents types d’événement VBA tels que les événements exécutés au niveau de la feuille de calcul, les événements au niveau du classeur et les événements au niveau de l’application…
Pour définir et exécuter un événement VBA excel, plusieurs étapes de base sont à suivre. Tout d’abord, il faut accéder à l’environnement de développement et sélectionner la feuille de calcul concernée par la macro avec un double clic. La liste déroulante en haut de la page sert à choisir le classeur et à désigner l’événement à mettre en place. Enfin, il ne reste qu’à introduire le code VBA pour créer l’événement et activer la macro.

Open-workbook

Cet événement d’ouverture de classeur est utilisé lorsqu’on souhaite exécuter automatiquement des macros lors du lancement du workbook.
Une fois que le classeur est ouvert, l’événement Open-workbook est exécuté pour afficher par exemple un message de rappel automatique.
Pour créer un événement d’ouverture de classeur, il faut :

  1. Cliquer sur F11 ou aller sur le Visual Basic Editor (graphique des données)
  2. Faire double clic sur le Workbook en question
  3. Choisir “workbook” dans la première liste déroulante et “open” dans la déclaration
  4. Entrer le code et le texte du message de rappel souhaité

Worksheet change

L’évènement worksheet change s’active lorsqu’une cellule ou une plage de calcul sont modifiées. Le code de l’événement de changement de feuille est exécuté par Excel VBA afin d’actualiser facilement les tableurs et d’effectuer des entrées numériques dans les cellules ou les feuilles de calcul appropriées.
Pour créer un événement worksheet_change, il faut:

  1. Ouvrir l’éditeur VB dans le classeur
  2. Double clic sur le projet Workbook
  3. Choisir “workbook” dans la première liste déroulante et “change” dans la deuxième
  4. Ajouter les lignes de code Worksheet Change Event

Workbook_BeforeClose

L’événement Workbook_BeforeClose peut exécuter un certain nombre d’instructions sur Excel. La fonctionnalité avant fermeture permet par exemple le suivi des utilisateurs ou le blocage de la fermeture si certaines conditions ne sont pas remplies.

Exemple d’utilisation :

Private Sub Workbook_BeforeClose(Cancel as Boolean)
If Me.Saved = False Then Me.Save
End Sub

PivotTableUpdate

L’événement PivotTableUpdate se déclenche lorsque le rapport de tableau croisé dynamique a été actualisé ou modifié. La macro affiche directement un message afin d’indiquer la mise à jour.

BeforeDoubleClic

L’événement BeforeDoubleClic se déclenche lorsque l’utilisateur effectue un double-clic sur une cellule. Par exemple, on peut colorer la cellule double cliquée en fonction de la feuille de calcul.

NewWorkbook

L’événement NewWorkbook s’exécute à chaque insertion d’un nouveau lorsqu’un nouveau classeur est créé.