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.
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
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.
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
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+
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.
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+
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.
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.
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.
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+
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.
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+
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+
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
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
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+
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.
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.