Comment Créer des notifications à envoyer à windows 10

Bonjour à tous,

Tout d'abord un grand merci à Sébastien pour sa "formation VBA avancée" et en particulier son super calendrier , qui m'a permis d'apprendre énormément de choses au sujet de VBA Excel.

Je l'utilise beaucoup et j'aimerais pouvoir m'envoyer des notifications windows pour signaler des notes importantes ou des anniversaires quelques jours avant leurs dates.

Malheureusement, malgré toutes mes recherches sur le web, je ne sais pas comment générer des notifications à windows 10.

Je viens donc mettre à contribution les participants à ce forum qui, je n'en doute pas, ont déja été confrontés à ce problème.

Merci par avance pour votre aide et encore toutes mes félicitations à Sébastien pour son site et ses tutos youtube.

Régis.

Bonjour,

Avec 2 fichiers supplémentaires à créer (un bat et un ps1) :

(Rectifie les chemins d'accès en fonction de l'endroit où tu les mets))

Bonjour,

Avec 2 fichiers supplémentaires à créer (un bat et un ps1) :

Notification Windows.xls

(Rectifie les chemins d'accès en fonction de l'endroit où tu les mets))

Merci infiniment Patrice33740, ça marche à merveille !

J'avais passé beaucoup de temps à chercher sur le web, et toi en quelques minutes tu m'envois la solution !!! MERCI

J'ai bien apprécier de voir ton nom apparaitre dans mes notifications.

Cela me donne envie de me pencher sur le powershell que je n'ai jamais étudié.

Je ne voudrais pas abuser de ton temps, mais il faut que je trouve à présent le moyen d'interroger périodiquement mon calendrier (qui serait ouvert) , afin de vérifier s'il y a des alertes à lancer....

Bonne journée et encore merci.

Régis

Bonjour,

Avec 2 fichiers supplémentaires à créer (un bat et un ps1) :

Notification Windows.xls

(Rectifie les chemins d'accès en fonction de l'endroit où tu les mets))

C'est encore moi !!!!

Je viens de m'apercevoir que le message msg de la macro VBA ne se retrouve pas dans le .bat et ma notification est toujours : "SalutPatrice", qui, bien que très agréable, ne correspond pas toujours à mon attente.

Sans doute manque t'il un lien entre la macro et le fichier .bat. Merci de ta réponse .

Régis

Re,

Effectivement, j'avais ça dans un coin mais c'était pas terminé.

Essaies comme ça (mettre chemin sur disque C si t'as pas de D) :

Sub Test()
Dim cde As String
Dim msg As String
Dim noF As Integer
Dim bat As String
Dim ps1 As String

  msg = "Salut Regis"
  bat = "D:\notification.bat"
  ps1 = "D:\BalloonTip.ps1"
  ' Créer le bat
  cde = "powershell -executionpolicy bypass -file """ & ps1 & """ Information Message """ & msg & """"
  noF = FreeFile
  Open bat For Binary Access Write As #noF
  Put #noF, , cde
  Close #noF
  ' Créer le ps1
  cde = "[void] [System.Reflection.Assembly]::LoadWithPartialName(""System.Windows.Forms"")"
  cde = cde & vbCrLf & "$icon = $args[0]"
  cde = cde & vbCrLf & "$text = $args[2] -split ""``n"" -join ""`n"""
  cde = cde & vbCrLf & "$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon"
  cde = cde & vbCrLf & "$objNotifyIcon.Icon = [System.Drawing.SystemIcons]::$icon"
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipIcon = ""None"""
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipText = $text"
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipTitle = $args[1]"
  cde = cde & vbCrLf & "$objNotifyIcon.Visible = $True"
  cde = cde & vbCrLf & "$objNotifyIcon.ShowBalloonTip(10000)"
  noF = FreeFile
  Open ps1 For Binary Access Write As #noF
  Put #noF, , cde
  Close #noF
  Shell bat, vbHide
'  Application.Wait Now + TimeValue("0:00:02")
'  If Dir(bat) <> "" Then Kill bat
'  If Dir(ps1) <> "" Then Kill ps1

End Sub

Re,

Effectivement, j'avais ça dans un coin mais c'était pas terminé.

Essaies comme ça (mettre chemin sur disque C si t'as pas de D) :

Sub Test()
Dim cde As String
Dim msg As String
Dim noF As Integer
Dim bat As String
Dim ps1 As String

  msg = "Salut Regis"
  bat = "D:\notification.bat"
  ps1 = "D:\BalloonTip.ps1"
  ' Créer le bat
  cde = "powershell -executionpolicy bypass -file """ & ps1 & """ Information Message """ & msg & """"
  noF = FreeFile
  Open bat For Binary Access Write As #noF
  Put #noF, , cde
  Close #noF
  ' Créer le ps1
  cde = "[void] [System.Reflection.Assembly]::LoadWithPartialName(""System.Windows.Forms"")"
  cde = cde & vbCrLf & "$icon = $args[0]"
  cde = cde & vbCrLf & "$text = $args[2] -split ""``n"" -join ""`n"""
  cde = cde & vbCrLf & "$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon"
  cde = cde & vbCrLf & "$objNotifyIcon.Icon = [System.Drawing.SystemIcons]::$icon"
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipIcon = ""None"""
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipText = $text"
  cde = cde & vbCrLf & "$objNotifyIcon.BalloonTipTitle = $args[1]"
  cde = cde & vbCrLf & "$objNotifyIcon.Visible = $True"
  cde = cde & vbCrLf & "$objNotifyIcon.ShowBalloonTip(10000)"
  noF = FreeFile
  Open ps1 For Binary Access Write As #noF
  Put #noF, , cde
  Close #noF
  Shell bat, vbHide
'  Application.Wait Now + TimeValue("0:00:02")
'  If Dir(bat) <> "" Then Kill bat
'  If Dir(ps1) <> "" Then Kill ps1

End Sub

C'est bien ce qui me semblait, il fallait réécrire les fichiers .bat et .ps1. J'étais en train de chercher les instructions pour le faire, mais tu m'as "coiffé sur le poteaux".

Jen suis bien heureux car je pense qu'il allait me falloir pas mal de temps pour arriver au bon résultat.

Je te remercie pour tes réponses rapides et précises, qui me permettent d'admirer ma notification : " Salut Regis".

Merci de m'avoir fait profiter de tes compétences, bonne journée et toutes mes amitiés.

Régis

En relisant le contenu du fichier .ps1, Je constate qu'il n'est pas nécessaire de le modifier à chaque fois puisque le fichier.bat lui transmet le message "msg".

Je viens de faire le test en commentant cette réécriture dans la macro et ça marche.

Amicalement

Régis

Décidément je ne te lâche plus

Je viens de constater que le message "msg", n'est pas effacé entre deux appels.

Si j'envoie le message "Bonjour Regis" puis ensuite le message "Salut", j'obtiens : "Salutur Regis".

Visiblement la variable text n'est pas effacée entre les appels.

Merci de ta réponse, je dois reconnaitre que je ne comprends pas grand chose au langage powershell. Promis je m'y met après....

Regis

Pour effacer les 2 fichiers, libère les 3 dernières instructions (enlève l'apostrophe)

Si tu ne veux pas du wait (il faut attendre que la notification apparaisse avant de supprimer les 2 fichiers) tu peux déplacer les 2 dernières lignes (kill) en début de procédure et supprimer le wait

Pour effacer les 2 fichiers, libère les 3 dernières instructions (enlève l'apostrophe)

Si tu ne veux pas du wait (il faut attendre que la notification apparaisse avant de supprimer les 2 fichiers) tu peux déplacer les 2 dernières lignes (kill) en début de procédure et supprimer le wait

C'est parfait, j'ai mis les deux lignes Kill en début de procédure et c'est parfait.

Très bon week-end et au plaisir...

Régis

Rechercher des sujets similaires à "comment creer notifications envoyer windows"