change

Macro événementielle Worksheet_Change

03/02/2016

Qu’est-ce qu’une macro événementielle ?

VBA offre la possibilité à l’utilisateur de créer des macros événementielles à partir de l’interface d’éditeur de macros sur Excel. Une macro événementielle est une procédure qui se déclenche automatiquement lorsque l’utilisateur exécute une action particulière sur Excel.

Ces macros sont accessibles dans les modules dédiés aux feuilles ou au classeur Excel comme le montre l’image suivante :

Image Macro Evénémentielle - 2

Voici quelques exemples de macros événementielles :

Dans cet article, nous allons vous montrer un exemple d’utilisation de la macro « Worksheet_Change ».

 

Comment utiliser une macro événementielle ?

Pour créer une macro événementielle depuis l’interface d’éditeur de macros, il suffit de cliquer sur la feuille destinée à recevoir cette macro puis de sélectionner dans le menu déroulant qui s’affiche dans le coin supérieur droit le type de macro souhaité.

Image Macro Evénémentielle - 3

Une fois la sélection effectuée, VBA prépare l’écriture de la procédure. Dans notre exemple, la procédure s’intitule « Private Sub Worksheet_Change (ByVal Target As Range) ».

L’utilisateur peut désormais écrire le code destiné à effectuer les actions souhaitées lors du déclenchement de la macro événementielle.

 

Exemple avec la macro Worksheet_Change

Nous proposons d’utiliser la macro événementielle Worksheet_Change pour changer le nom de notre onglet en fonction d’une cellule dédiée à cet effet. Dans notre exemple, l’utilisateur peut directement modifier le nom de l’onglet en modifiant le nom du pays pour lequel il souhaite afficher ici le compte de résultat.

Image Macro Evénémentielle - 4

Commençons par nommer la cellule contenant le pays : « Selection_pays ».

Une fois la macro événementielle créée (voir détail ci-dessus), nous proposons le code suivant :

Image Macro Evénémentielle - 5

Pour en savoir plus sur les règles de concaténation, nous vous invitons à lire cet article.

 

A noter que ce code peut être simplifié avec l’utilisation de la fonction « With » qui nous permet de factoriser l‘objet « Activesheet » :

Image Macro Evénémentielle - 6

Les noms d’onglets ne peuvent supporter toutefois plus de 31 caractères ainsi que l’emploi de quelques caractères spécifiques, tels un point d’interrogation par exemple. Un non-respect de ces règles d’écriture au sein de notre cellule va entraîner une erreur d’exécution de la procédure en raison de sa non-compatibilité avec un nom d’onglet.

Le fichier Excel support de cet article est accessible ici.

 

Nous vous proposerons des solutions à ce problème dans l’article suivant…