Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter un évennement

20 réponses
Avatar
eddymaue
Salut vous tous,

Est-ce qu'il existe une méthode en vba pour détecter les modifs dans le
calendrier ou le gestionnaire de taches ?


comme exemple un utilisateur sur Outlook décide de changer l'heure d'un
rendez-vous dans le calendrier, j'ai besoin de détecter cette
modification pour avertir d'autres colègues.

a+ Eddy

10 réponses

1 2
Avatar
eddymaue
Allo

Personne ici ne fait de Vba ?

a+ Eddy


eddymaue avait soumis l'idée :
Salut vous tous,

Est-ce qu'il existe une méthode en vba pour détecter les modifs dans le
calendrier ou le gestionnaire de taches ?


comme exemple un utilisateur sur Outlook décide de changer l'heure d'un
rendez-vous dans le calendrier, j'ai besoin de détecter cette modification
pour avertir d'autres colègues.

a+ Eddy


Avatar
Geo
Bonjour Eddy

Personne ici ne fait de Vba ?



Si si, il y a bien quelques amateurs, mais avant de s'y plonger
j'espérais que quelqu'un donnerait une solution sans macro.

--
A+
Avatar
eddymaue
Salut Geo

Je ne crois pas qu'il y est de solution sans passé par un macro Vba

j'ai fait de la recherche sur internet et j'en ai trouvé
Application_NewMail dans le module ThisOutlookSession

Donc à l'arriveer d'un nouveau message, cet évènement se déclenche et
donc je peux y mettre du code pour faire effectuer à outlook un tache
particulère.

Et pour la modification, l'ajout

? ou puis-je trouver ces évènement ?

a+ Eddy



Geo avait prétendu :
Bonjour Eddy

Personne ici ne fait de Vba ?



Si si, il y a bien quelques amateurs, mais avant de s'y plonger j'espérais
que quelqu'un donnerait une solution sans macro.


Avatar
Geo
Bonjour Eddy

Je ne crois pas qu'il y est de solution sans passé par un macro Vba


Ca m'étonne que les participants aux réunions où les personnes
concernées par les tâches ne puissent pas être averties
automatiquement.
Mais vu que j'utilise Outlook à titre personnel, je n'utilise pas ces
fonctions.

Voici une solution pour les événements :
Dans ThisOutlookSession :
--------------
Option Explicit
Dim X As New Modif_Item
Private Sub Application_Startup()
Set X.ApOutLook = CreateObject("Outlook.Application")
End Sub
------------------
Créer un module de classe nommé Modif_Item, y placer
-------------------------
Option Explicit
Public WithEvents MesRendezVous As Outlook.Items
Public ApOutLook As New Outlook.Application

Private Sub Class_Initialize()
Set MesRendezVous =
ApOutLook.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Items
Set MesTâches =
ApOutLook.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks).Items
End Sub

Private Sub MesRendezVous_ItemChange(ByVal Element As Object)
Dim Message As String
Dim Tache As TaskItem
Dim RendezVous As AppointmentItem

Select Case TypeName(Element)
Case "AppointmentItem" ' les rendez-vous
Set RendezVous = Element
' Ajouter ici le code pour traiter les modifications de rendez-vous

Case "TaskItem" ' les tâches (dans le calendrier)
Set Tache = Element
' Ajouter ici le code pour traiter les modifications de tâches


End Select
End Sub
--------------
On peut aussi programmer :
Private Sub MesRendezVous_ItemAdd(ByVal Element As Object)
et
Private Sub MesRendezVous_ItemRemove(ByVal Element As Object)

Tout le travail reste à faire : détecter le contenu du changement
(heure de début, de fin, objet, ...) et avertir les personnes en
conséquence.

bon courage

--
A+
Avatar
Geo
Bonsoir

' En ajoutant la ligne en bleu, j'ai éliminé l'erreur de variable non définie



Désolé pour cette erreur, il faut mettre :
Public WithEvents MesTâches As Outlook.Items
Avec un "s" à la fin

--
A+
Avatar
Geo
Bonsoir

Salut Geo, couche toi pas trop de bonne heure, ici il est 16hrs et j'ai encore besoin
de ton aide ;-)



Ça ne va pas trop tarder pourtant.


Pour intercepter la destruction d'un item, quel est le nom de l'évennement que je
détruis ?

ItemDel, ItemDelete, ItemDestroy , ItemErase et ItemRemove ne fonctionnent pas



Je n'ai pas essayé mais c'est bien Remove, il est d'ailleurs proposé
directement dans le menu déroulant du haut :
http://cjoint.com/?hywVUx8VqB

--
A+
Avatar
eddymaue
Merci c'est nikel et me manque qu'une p'tite chose et c'est de reporter
l'évennement dans un journal comme Outlook.log

En vb comment on fait pour écrire dans un fichier texte

Pis après ca bonne nuit pis merci encore j'vais avoir tout ce qui faut
mes bricoles

A+ eddy
Geo avait prétendu :
Bonsoir

Salut Geo, couche toi pas trop de bonne heure, ici il est 16hrs et j'ai
encore besoin de ton aide ;-)



Ça ne va pas trop tarder pourtant.


Pour intercepter la destruction d'un item, quel est le nom de l'évennement
que je détruis ?

ItemDel, ItemDelete, ItemDestroy , ItemErase et ItemRemove ne fonctionnent
pas



Je n'ai pas essayé mais c'est bien Remove, il est d'ailleurs proposé
directement dans le menu déroulant du haut :
http://cjoint.com/?hywVUx8VqB


Avatar
Geo
> En vb comment on fait pour écrire dans un fichier texte



Il y a plusieurs manières, par exemple :

Open "Trace.txt" For Output As #1

Print #1, "Tâche annulée: " & Tache.Subject
...
Close

Bonne soirée

--
A+
Avatar
eddymaue
Encore une p'tite derniere

Avec ItemRemove il n'y a pas d'objet passé par valeur alors que les 2
autres évennements soit ItemChange et ItemAdd il un objet passé par
valeur

Alors comment trouver le contacte, la tache ou l'appointement détruit ?

a+ eddy




Geo avait écrit le 2009-07-24 :
En vb comment on fait pour écrire dans un fichier texte



Il y a plusieurs manières, par exemple :

Open "Trace.txt" For Output As #1

Print #1, "Tâche annulée: " & Tache.Subject
...
Close

Bonne soirée


Avatar
Geo
Bonjour Eddy

Alors comment trouver le contact, la tache ou l'appointement détruit ?



Apparemment l'événement se déclenche après la suppression, on n'a donc
plus l'élément, à moins qu'il ne soit dans les éléments supprimés.
Ce sera intéressant à savoir.
Il y a une page d'aide sur ItemRemove, avec un exemple :
HV10040494 (mettre cette référence dans la fenêtre de recherche)
Le premier paragraphe est particulièrement intéressant, mais ne laisse
aucun espoir pour les cas ignorés.
L'exemple prépare un message pour que l'opérateur mette lui-même le nom
du contact supprimé !
Mais ça montre aussi que vous êtes sur la bonne piste.

--
A+
1 2