Passer au contenu

Automatisez des messages d’alerte

Une personne avertie en vaut deux… Ici, l’exemple dans un tableau.

Vous désirez qu’Excel attire votre attention sur certaines données d’un tableau. Pour cela, vous pouvez lui faire afficher des images représentant différentes alertes à l’ouverture du classeur. Notre exemple, qui peut s’adapter à d’autres sujets, portera sur la gestion de l’emprunt de livres : une image spécifique apparaîtra en fonction de la date de retour prévue.Pour obtenir ce résultat, utilisez les macros d’Excel : celles-ci permettent d’automatiser les tâches répétitives. Vous allez donc créer deux macros. La première servira à insérer les images des alertes à l’ouverture du classeur. La seconde s’activera lors de la fermeture du classeur. Elle permettra de supprimer toutes les images apparues dans le tableau pour qu’il se mette à jour lors d’une prochaine ouverture.
Patricia Frein (Carm2i)

Etape 1 : préparez la feuille

1 En vous aidant de l’illustration 1, créez tout d’abord la feuille de calcul.2 Pour afficher la date courante automatiquement, cliquez dans la cellule B1 et tapez la formule =AUJOURDHUI()Validez en appuyant sur la touche Entrée du clavier.3 Créez la légende en insérant deux images différentes dans les cellules A3 et A4.Remarque : augmentez la hauteur des lignes, adaptez la taille des images à celle des cellules et positionnez-les afin de les rendre bien visibles à l’écran et à l’impression.Pour les cellules du tableau qui vont accueillir les images, ici celles de la colonne E, prévoyez la même hauteur de ligne et la même largeur de colonne que celles de la légende. Ainsi, les images seront à la bonne taille et placées correctement dans les cellules lorsqu’elles seront insérées automatiquement par la macro, par exemple :4 Par défaut, la première image se nomme Image 1, mais si cette image n’est pas la première que vous insérez dans cette page, il est possible qu’elle porte un autre numéro après la mention Image. Ce qui peut provoquer des erreurs lors de la création de la macro. Pour éviter cela, renommez les images en cliquant sur la première. Puis, cliquez dans la zone Nom :Tapez le nouveau nom, ici EnCours.Sélectionnez ensuite la deuxième image, et en utilisant la même méthode, nommez-la Retard.5 Sauvegardez le classeur dans le dossier désiré et nommez-le, par exemple, Livres.

Etape 2 : créez les macros

Les deux macros que vous allez créer vont se déclencher automatiquement à l’ouverture et à la fermeture du classeur. Pour cela, effectuez les manipulations suivantes.1 Pour commencer, vérifiez le niveau de sécurité pour les automatisations de tâches en suivant les explications de l’encadré qui se trouve à la page suivante.2 Choisissez dans le menu Outils, l’option Macro. Dans le menu qui se déroule, cliquez sur Visual Basic Editor :3 Dans le volet en haut à gauche de la fenêtre affichée, les projets nommés VBAProject correspondent aux différents classeurs ouverts. Pour les différencier, le nom du classeur apparaît entre parenthèses à droite de VBAProject, ici :Celui que nous allons utiliser est VBAProject (Livres.xls).Indiquez où taper le code pour que les macros démarrent automatiquement à l’ouverture et à la fermeture du classeur. Pour cela, double-cliquez dans le projet VBAProject (Livres.xls) sur ThisWorkbook :4 Dans la page blanche du volet droit, tapez le code correspondant aux deux macros (voir l’illustration 3).Chaque macro débute par la mention Private Sub, suivie du nom de la macro, et se termine par End Sub.Voici quelques petites explications sur les éléments de chaque macro et leurs actions :Workbook_Open se déclenche à l’ouverture du classeur. Il y a deux actions principales. La première permet l’affichage d’une des images de la légende d’après la date de retour prévue du livre et la date en cours. Le code correspondant se trouve entre If Range… et End If.La seconde est une boucle qui effectue la première action pour chaque ligne du tableau jusqu’à ce que le programme rencontre une ligne vide et s’arrête. Les codes commençant et finissant la boucle sont Do Until… et Loop.Workbook_BeforeClose se déclenche à la fermeture du classeur. Cette macro supprime toutes les images du tableau sauf celle de la légende.Cette macro est nécessaire car, sans elle, à chaque ouverture du classeur, les images insérées automatiquement (par la macro d’ouverture) se cumuleraient. Au bout de quelque temps, le fichier s’alourdirait tant qu’il deviendrait illisible et très lourd.Attention : ne confondez pas les lettres L en minuscule et i en majuscule et le chiffre 1 dans le code car ils se ressemblent beaucoup ou sont carrément similaires. Sinon, vous risquez des erreurs d’exécution.5 Sauvegardez les macros en choisissant, dans le menu Fichier, l’option Enregistrer Livres.xls.6 Fermez la fenêtre de code en choisissant, dans le menu Fichier, l’option Fermer et retourner à Microsoft Excel.

Etape 3 : testez les macros

1 De retour dans le classeur Excel, enregistrez toutes les modifications, puis fermez le classeur.Normalement, une fenêtre d’erreur Microsoft Visual Basic apparaît :Cette erreur est normale : Excel cherche à supprimer des images inexistantes, pour l’instant dans le tableau.Pour passer outre ce message, cliquez sur le bouton Fin et sur le bouton Non, ce qui évite d’enregistrer une nouvelle fois le fichier.2 Ouvrez à nouveau le classeur. Si vous avez choisi un niveau de sécurité moyen (voir l’encadré), une fenêtre s’affiche. Cliquez sur Activer les macros :3 Si vous n’avez pas fait d’erreur dans la macro Workbook_Open, les cellules de la colonne E du tableau se remplissent automatiquement (voir l’illustration 2).4 Vous pouvez compléter cette liste en ajoutant des livres. Mais surtout, laissez la colonne E vide.Fermez à nouveau le classeur. Vous constatez que la colonne E s’est vidée.Excel vous demande si vous désirez sauvegarder les modifications, cliquez sur le bouton Oui.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


La rédaction