Notifications

hudaaaaa Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
brucine Messages postés 21825 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,
J’ai un fichier Excel qui contient plusieurs tâches à exécuter à des dates précises. Ces tâches se répètent à des fréquences différentes selon leur nature.
Je souhaiterais savoir comment afficher des notifications sur l’écran de mon ordinateur lorsque l’échéance d’une tâche approche.
Par ailleurs, j’aimerais également que la prochaine date d’exécution de chaque tâche soit calculée automatiquement en fonction de sa fréquence.
Pouvez-vous m’indiquer comment procéder pour mettre cela en place dans Excel ou via une solution complémentaire ?


Windows / Chrome 138.0.0.0

2 réponses

brucine Messages postés 21825 Date d'inscription   Statut Membre Dernière intervention   3 466
 

Bonjour,

ça manque un peu de précisions, ton affaire, on ne sait pas quelle est la fréquence de répétition des tâches en question, mais ça, n'est pas très compliqué, je me contente de deux exemples.
 

Lignes 1 et 2, comptabilité.
A2 vaut 60, 45 FDM...selon que le client paye à jours fixes ou Fin de Mois.
C2 vaut: SI(DROITE(B2;3)="FDM";FIN.MOIS(GAUCHE(B2;2)*1+A2;0);GAUCHE(B2;2)*1+A2)
E2 alerte 30 jours avant C2:
MOIS.DECALER(C2;-1)


Lignes 4 et 5 programmation d'une tâche répétitive quelconque
Prochaine date d'exécution en D5:
(AUJOURDHUI()-B5-MOD(AUJOURDHUI()-B5;C5))+C5+B5
Alerte 15 jours avant en E5:
D5-15

Là où cela se complique, c'est d'exécuter une macro ou ce qu'on voudra, puisqu'elle ne s'exécutera pas si Excel n'est pas ouvert (et c'est d'ailleurs un peu réinventer la roue, pourquoi ne pas se contenter d'ouvrir le fichier Excel tous les jours).
On peut contourner en créant comme ici un script vbs dont on collera le raccourci dans le menu démarrer et qui affichera la ou les cellules concernées (ici E2 et E5) avec les messages personnalisés correspondants.

https://forum.excel-pratique.com/excel/afficher-sur-le-bureau-windows-le-contenu-d-une-cellule-calculee-189726

0
note
 

Merci beaucoup pour votre explication détaillée !
Elle m’a beaucoup aidée à mieux comprendre la logique de gestion des dates et des rappels dans Excel.

Voici mon propre fichier Excel : il contient une liste de tâches avec leurs dates planifiées.
Mon objectif est de calculer automatiquement les prochaines dates d’exécution en fonction de la fréquence (lorsque la tâche est marquée comme "OK"), puis de remplacer l’ancienne date par la nouvelle dans le tableau.

En parallèle, je souhaite afficher une notification :

  • Si une tâche n’est pas encore exécutée alors que la date est atteinte ou dépassée,

  • Ou s’il faut exécuter la tâche aujourd’hui (alerte du jour).

0
brucine Messages postés 21825 Date d'inscription   Statut Membre Dernière intervention   3 466
 

Je n'ai pas de solution miraculeuse.

On ne peut bien sûr pas programmer une tâche dont la date est "après chaque intervention".

Dans les autres cas, pour programmer, il faut une colonne avec les dates initiales (qu'on peut cacher par la suite) et comparer à la date d'aujourd'hui qui est par définition volatile, elle ne sera jamais dépassée.

Ligne 2 j'ai une formule en E2:
=SI(DATEDIF(D2;AUJOURDHUI();"d")<C2;C2+D2;ARRONDI.AU.MULTIPLE(DATEDIF(D2;AUJOURDHUI();"d");C2)+D2)

mais je n'ai pas d'autre choix que de valider manuellement en F2 par OK et ce qui n'a pas de sens, parce que quand la date de prochaine exécution sera le 16 juillet ce sera toujours OK.

Ligne 3 j'ai entré manuellement la date de prochaine exécution en E3, je vais valider en entrant OK quand ce sera fait.
J'ai une mise en forme conditionnelle en E3:
=ET($E$3>=AUJOURDHUI();$F$3<>"OK")
format police rouge qui s'applique quand cette date manuelle est dépassée et que OK n'est pas entré.
Comme je suis fainéant, au lieu de prendre un calendrier, G3 me donne la date suivante, que je vais entrer manuellement en E3 après validation.

Sur un script affichant ces alertes (hors "après chaque intervention" où c'est impossible), celui que j'ai mis en lien et adapté ne fonctionne que partiellement:
 

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False

' // Addapter le chemin du classeur
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\brucine\Desktop\Freq.xlsx") ' // Adapter

' // Adapter le nom de la feille
Set objWorksheet = objWorkbook.Worksheets("Feuil1")  ' // Adapter
ReturnValue = objWorksheet.Range("E2")
objExcel.Quit

Message = "Tache non effectuee ou non validee: " & ReturnValue
MsgBox message

Il obéit bêtement et me retourne le contenu d'une cellule (ici E2) indépendamment du fait que sa valeur me plaise ou pas.
 

Il y a probablement moyen de faire quelque chose de plus élaboré non pas dans le cas ligne 2 (il n'y a pas de critère) où un script pourrait ramener toutes les lignes d'un message style

La tache (B3) n'a pas ete effectuee ou validee le (E3)

à condition que E3 soit dépassée, mais je suis une vraie quiche en vbs et plus largement parlant en scripts pour Excel.

Il reste à mon opinion plus simple de ne pas se prendre la tête et de mettre un raccourci du fichier Excel dans le menu démarrer si le PC démarre tous les jours, en tâche planifiée s'il reste allumé en permanence.

0