3 votes

Comment afficher la date de début d'une INSTANCE d'une série récurrente ?

En utilisant VBA, j'ai besoin d'afficher la date de début de chaque INSTANCE d'un rendez-vous récurrent dans Outlook.

Le problème est que lorsque j'utilise appt.start, il affiche la date de début de la série, ce qui n'est pas utile !

Exemple : un rendez-vous récurrent a lieu le premier de chaque mois en 2009. Je souhaite afficher 12 INSTANCES, avec 12 dates de début différentes (1/1/09, 2/1/09, etc.). En d'autres termes, les 12 INSTANCES ne doivent PAS afficher la date de début = 1/1/09.

Gracias

2voto

Andrew Brown Points 1

Une restriction de date permet d'identifier les instances d'un rendez-vous récurrent qui se produisent entre les dates spécifiées MAIS lorsque vous interrogez les propriétés de l'instance - par exemple .IsRecurring ou .AllDayEvent Outlook redirige le pointeur vers le premier rendez-vous récurrent (le parent en quelque sorte). La solution consiste à examiner les dates de début et de fin (en les copiant dans des variables locales) avant de les perdre en examinant d'autres propriétés.

Dim olNS As Outlook.Namespace
Dim olRec As Outlook.Recipient

Dim myCalItems As Outlook.Items
Dim strRestriction As String

Dim ItemstoCheck As Outlook.Items
Dim MyItem As Outlook.AppointmentItem

Dim datAppStart As Date
Dim datAppEnd As Date

Set myCalItems = olNS.GetSharedDefaultFolder(olRec, olFolderCalendar).Items

' Including recurrent appointments requires sorting by the Start property, apparently!
myCalItems.Sort "[Start]", False
myCalItems.IncludeRecurrences = True

strRestriction = "[Start]<= " & Quote(datEndDate & " 12:00 AM") & " AND [End] >= " & _
    Quote(datStartDate & " 11:59 PM")
Set ItemstoCheck = myCalItems.Restrict(strRestriction)

For Each MyItem In ItemstoCheck
    If MyItem.Class = olAppointment Then        

'Save Start and end dates in case replaced by first instance of recurring appointment
datAppStart = MyItem.Start
datAppEnd = MyItem.End

etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X