2017-05-19 5 views
0

je code dans ThisOutlookSession module à partir run a macro when creating new appointment in outlook:événement NewInspector fonctionne une seule fois

Private WithEvents appt As AppointmentItem 
Private WithEvents objinspectors As Outlook.Inspectors 

Private Sub Application_Startup() 
    Set objinspectors = Application.Inspectors 
End Sub 

Private Sub objinspectors_NewInspector(ByVal Inspector As Inspector) 
    If TypeName(Inspector.CurrentItem) = "AppointmentItem" Then 
     Set appt = Inspector.CurrentItem 
    End If 
End Sub 

Private Sub appt_Write(ByVal Item As Object, Cancel As Boolean) 
    '---- ect 
end sub 

appt_Write travaille pour le premier rendez-vous, je créer ou modifier. Si je crée un second rendez-vous, rien ne se passe.

J'ai trouvé le sous objinspectors_NewInspector ne démarre plus. Je n'ai aucune commande END dans mon code. Pour réexécuter le code, je dois lancer Application_Startup.

Que dois-je faire pour que la macro fonctionne à tout moment?

Répondre

0

réexécutez même code que Application_Startup() chaque fois par

Private Sub appt_Write(ByVal Item As Object, Cancel As Boolean) 
    '---- etc 

    Set objinspectors = Application.Inspectors 'add this line ... see what happens 
End Sub 
+1

Essayez d'expliquer votre réponse il est donc utile pour les futurs lecteurs. – Newd

+0

ajouté une explication pour la ligne de code – jsotola