Comment générer depuis une cellule Excel un message d'alerte type post-it
Dans le cadre de nos contrôles réglementaires organisés sous forme de tableau Excel , je souhaiterais que s'affiche un message d'alerte sur le bureau permettant à l'approche de la date butée renseignée dans une cellule d'être en éveil !!! et organiser la planification.
Merci par avance pour vos réponses.
Bonjour,
Pas tout à fait impossible à réaliser.
Mais il y a peut-être plus simple.
Ce fichier Excel est-il ouvert tous les jours? Combien de temps à l'avance souhaitez-vous ce rappel?
Sinon, sans ouverture quotidienne, c'est aussi possible. Mais alors....
Il vous faut créer un code vbs qui va faire cette recherche de date dans votre fichier Excel, le déclencher avec le planificateur de tâches Windows pour qu'il se déclenche à l'ouverture du pc, chaque jour...
Possible, mais comme dit précédemment, il doit y avoir plus simple...
Merci pour ce retour, le fichier Excel est ouvert ponctuellement.La personne en charge de s’assurer de planifier ces contrôles est plutôt polyvalente et vérifie au pas mensuel ou bi- mensuel l’engagement des contrôles.Pour ma part , je n’ai aucune maitrise de Vbs mais si cela n’est pas trop compliqué je peux m’investir quelques heures pour générer ce message , à défaut trouver une solution plus simple avec Excel .
Amicalement
Bonjour,
Il serait peut-être plus simple de
1- faire s'ouvrir le fichier Excel automatiquement au démarrage du PC, (par exemple : https://toptips.fr/comment-ouvrir-un-fichier-au-demarrage-sous-windows-10/)
2- intégrer au fichier une macro "auto-open" du style :
Option Explicit
Private Sub Workbook_Open()
Dim ligne As Long, alerte As String
If MsgBox("Voulez-vous travailler sur ce fichier?", vbYesNo) = vbNo Then
'ICI, la macro va vérifier tes dates
With ThisWorkbook.Worksheets("Feuil1")
For ligne = 7 To 70 'à adapter bien sur...
'supposons ces dates en Feuil1 column A
If .Range("A" & i).Value > CDate("16/08/2021") Then 'test à effectuer
'créer l'alerte
'supposons les noms de projet en Feuil1 column B
alerte = alerte & vbCrLf & "> le projet : " & .Range("B" & i).Value & " expire le : " & .Range("A" & i).Value
End If
Next
End With
'Afficher l'alerte
MsgBox alerte
'et refermer le fichier sans enregistrer
ThisWorkbook.Close False
End If
End SubSinon, voici un exemple de possibilité offerte par vbscript et hta...
Tout d'abord le fichier Excel à "analyser", téléchargez :
Ensuite, copiez/collez ce code dans une page du bloc notes puis enregistrez en test.hta (type : tous les fichiers), modifiez l'adresse du classeur Excel dans le code, enregistrez et ouvrir le fichier hta...
<head>
<title>Message d'alerte sur fichier Excel</title>
<HTA:APPLICATION
APPLICATIONNAME="Message d'alerte"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<script language="VBScript">
'Autorun
Sub Window_onLoad
Alerte
End Sub
'Procédure de traitement
Sub Alerte
Dim Xl
Dim Wk
Dim i
Dim wsh
Dim msg
Set Xl = createobject("Excel.application")
Xl.Visible = True
' A ADAPTER l'adresse ci-dessous :
Set Wk = Xl.Workbooks.Open("C:\Users\XXXXXXXXX\Desktop\Classeur1.xlsx")
Set wsh = Wk.Worksheets("Feuil1")
For i = 2 To wsh.UsedRange.Rows.Count
If wsh.Range("A" & i).Value <= DateAdd("d", 3, Date) And wsh.Range("C" & i).Value = "En cours" Then
msg = msg & "<br><br>" & wsh.Range("A" & i).Value & " " & wsh.Range("B" & i).Value
End If
Next
Wk.Close False
Xl.Quit
If msg = "" Then
MsgBox "Aucun projet en attente"
self.close()
Else
Reponse.InnerHTML = msg
End If
End Sub
</script>
<body bgcolor="#FDF1B8">
<p>
<span id = "Reponse"></span>
</body>Bonjour ,
Merci pour les options proposées .Je vais tester tout cela et ferai un retour !!!
Cordialement