Créer un message d’alerte à l’ouverture d’Excel
5 pages
Français

Créer un message d’alerte à l’ouverture d’Excel

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
5 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Tutoriel pour apprendre à créer un message d'alerte à l'ouverture d'un fichier Excel en utilisant le VBA. Comment programmer en VBA une alerte sur Excel ? Comment créer un message d'alerte sur Excel ?

Sujets

Informations

Publié par
Publié le 19 janvier 2021
Nombre de lectures 70
Licence : Tous droits réservés
Langue Français

Extrait

Votre Assistante :https://www.votreassistante.net- le 18/02/2015
Créer un message dalerte à louverture dExcel Lorsque vous gérez des dates ou des quantités (pour la gestion des stocks), il peut être intéressant decréer des alertes à louverture du fichier Excelafin dêtre averti quune date approche ou quun stock est insuffisant. Vous pouvezcréer une alerte grâce à la mise en forme conditionnelle, mais elle sera seulement visuelle. Ce qui nous intéresse ici est davoir un message dalerte à louverture du fichier qui ne passe pas inaperçu. Pour cela, nous allons faire appel au langage VBA. Veillez donc à afficher le menu Développeurcomme nous lavions vu au début dututoriel sur le formulaire Excel. Vous retrouverez le fichier utilisé dans ce tutoriel ainsi que le code VBA au format .txt au bas de l’article. Nommer les cellules du fichier Excel Avant de saisir le code, il faut préparer notre fichier. Jai créé uneformule SI; s (si la quantité est plus grande que le stock = 2 il est égal = 1, sinon = 0) et appliqué une mise en forme conditionnelle : Si le stock est plus grand que le stock dalerte, afficher licône verte ; Si le stock est égal au stock dalerte, afficher licône orange ; Si le stock est plus petit que le stock dalerte, afficher licône rouge. Jai ensuite demandé à Excel de nafficher que licône. Maintenant, je vais nommer mes colonnes afin quil ny ait pas de problème de nom dans le
VBA par la suite. Je sélectionne la colonneAlertesans son titre que je nommeAlerte_stocket je fais de même avec la colonneDate de réception de la commande que je nomme Alerte_commande. Les noms nont pas dimportance, vous pouvez les nommer comme vous le souhaitez du moment que vous savez à quoi ils correspondent. Par contre, il est primordial de ne pas sélectionner les titres des colonnes quand vous nommez vos plages, car laValeur, que nous allons voir par la suite, indiquerait le titre de la colonne A. Nous pouvons passer à la programmation.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
1
1 2
1
1
1 2
1
Votre Assistante :https://www.votreassistante.net- le 18/02/2015
Créer une alerte en VBA sur Excel
Cliquez surVisual Basicdans le menuDéveloppeur. Notre fichier ne comportant qu’un seul onglet et souhaitant que lalerte se fasse à louverture du fichier, nous allons placer le code dansThisWorkbooken débutant par : Private Sub Workbook_Open() End Sub On indique à quoi correspond le code en saisissant un commentaire commençant par une apostrophe ce qui le fera passer en vert (à placer entrePrivate SubetEnd Sub) : Pour les stocks On déclare ensuite notre variable, à savoir les cellules de la colonneAlerte, comme une plage de cellules. Vous pouvez mettre nimporte quel nom du moment quil ne contient pas despace : Dim alertestock As Range On crée une boucle avecFor Eachafin que laction que nous programmons se répète autant de fois quil y a de ligne à la colonneAlertede notre fichier actif : For Each alertestock In ActiveSheet.Range("Alerte_stock") Next Je souhaite avoir un message dalerte du typeLa référence Pain, céréales… doit être commandée. Il faut donc indiquer à Excel la valeur que je souhaite afficher dans mon message entre les lignesFor EachetNext: Valeur = Cells(alertestock.Row, 1) Ce code indique que le nomValeurest égal à la cellule correspond à la ligne concernée de la colonne 1. Cest-à-dire que si Excel traite la cellule D2, il devra me renvoyerRiz. Le nom Valeurpeut être remplacé par nimporte quel nom sans espace. Nous indiquons ensuite une condition, car nous ne souhaitons avoir une alerte quà certaines conditions, à savoir quand lalerte indique0(icône rouge). Souhaitant que le message soit simplement un message dalerte, on ne créera pas daction si la réponse estOuiouNon, on fermera juste la boîte de dialogue après le clic sur le boutonOk.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
2
1 2 3 4 5
1 2 3 4 5
Votre Assistante :https://www.votreassistante.net- le 18/02/2015
Le code doit indiquerSila colonneAlerte = 0Alorsafficher le messageSinonne rien faire. Le message étant composé de texte et de références aux cellules, noubliez pas les guillemets et les esperluettes (&) et surtout de terminer la condition parEnd If. vbCriticalaffichera une croix rouge dans le message avec le son correspondant etQuantité en stock insuffisantecorrespond au titre de la boîte de dialogue (à placer à la suite deValeur) : If alertestock = "0" Then MsgBox "La référence " & Valeur & " doit être commandée.", vbCritical, "Quantité en stock insuffisante"
Else End If Pour le moment, jaurais donc, à louverture du fichier, un message pour chaque ligne contenant licône rouge. On fait la même chose pour un stock avec licône orange, cest-à-dire dont le résultat est 1 en plaçant le code juste après le code précédent où le0a été remplacé par1et où le message est légèrement différent : If alertestock = "1" Then MsgBox "La référence " & Valeur & " devra bientôt être commandée.", vbExclamation, "Stock presque insuffisant" Else End If Ici, jai utilisévbExclamationpour lapparition dun triangle jaune. Les autres possibilités sont vbInformation(lettre i dans rond bleu) que nous allons utiliser juste après etvbQuestion(point dinterrogation dans rond bleu). Les sons sont différents selon licône choisie.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
3
1 2 3 4 5 6 7 8 9 10
Votre Assistante :https://www.votreassistante.net- le 18/02/2015
On peut déjà tester ce code en fermant notre fichier (sans oublier de lenregistrer) puis en le rouvrant. Tous les messages saffichent dans lordre du tableau.
Pour terminer, je souhaite être avertie lorsquune commande arrive le jour même. Pour cela, placez-vous entre le dernierNextetEndSubpour retranscrire le même type de condition que pour le stock, mais en ladaptant. Cette fois la plage de cellule dans le VBA sera alertecommandecelle du fichier et Alerte_commande. La condition devra êtreSi la date alertecommande est égale à aujourdhuiAlors afficher le message. Pour cela, la formule à utiliser estDate: Pour les commandes Dim alertecommande As Range For Each alertecommande In ActiveSheet.Range("Alerte_commande") Valeur = Cells(alertecommande.Row, 1) If alertecommande = Date Then MsgBox "La référence " & Valeur & " sera livrée aujourdhui.", vbCritical, "Réception dune commande" Else End If Next
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
4
1 2 3 4 5
Votre Assistante :https://www.votreassistante.net- le 18/02/2015
Pour être avertie de la livraison la veille (date du jour + 1), je place avant le dernierNext: If alertecommande = Date + 1 Then MsgBox "La référence " & Valeur & " sera livrée demain.", vbInformation, "Prochaine commande" Else End If Si vous souhaitez dabord être averti de la date de livraison, il suffit dintervertir les 2 codes et, pour que ces alertes ne saffichent que sur clic de bouton, créez un module (Insertion>Module) qui reprend tout ce code en remplaçantPrivate SubWorkbook_Open()parSubMacro1()pour ensuite laffecter à votre bouton. Je peux maintenant refermer le fichier en lenregistrant, je serais donc avertie à chaque fois que le stock dalerte est atteint, ou presque atteint, mais aussi lorsquune livraison a lieu le jour
même ou le suivant.
Tutoriel réalisé avec Excel 2013 Voir la version vidéo de cet article
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
5
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents