Outlook calendrier filtre sur date

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

J'ai un code me permettant de supprimer un Item dans Outlook calendrier.
Il est fonctionnel, à ceci près, qu'une fois l'item trouvé, il le supprime, peu importe l'horaire renseigné.

La ligne de filtre commence par [Start] >
[Start] = reste sans effet.

Voici le code.
VB:
Option Explicit

'procédure pour supprimer un rdv existant
Sub supprimeRDVCalendrier()

    'déclaration des variables
    Dim oOutlook As Outlook.Application
    Dim oAppointment As Outlook.AppointmentItem
   
    Dim namespaceOutlook As Outlook.Namespace
    Dim DossierCalendrier As Outlook.MAPIFolder
   
    'on déclare un objet collection qui va contenir tous les rdv correspondat aux critères de filtre
    Dim collectionAppointments As Outlook.Items
   
    Dim sFilter As String
   
    'gestion d'erreurs
    On Error GoTo Err_Execution
   
    'on crée ensuite les objets
    Set oOutlook = CreateObject("Outlook.Application")
    Set namespaceOutlook = oOutlook.GetNamespace("MAPI")

    'définit le dossier calendrier
    Set DossierCalendrier = namespaceOutlook.GetDefaultFolder(olFolderCalendar)

    'on définit les critères de filtre
    'la date doit être formaté au format Outlook
    sFilter = "[Start] > '" & Format("30/01/2017 18:00", "ddddd h:nn AMPM") & "'"
   
    'on recupère tous les rdv correspondant aux critères avec la méthode restrict
    Set collectionAppointments = DossierCalendrier.Items.Restrict(sFilter)
   
    'boucle sur tous les rdv trouvés
    For Each oAppointment In collectionAppointments
        'si le sujet correspond on supprime le rdv
        If oAppointment.Subject = "Mon Rdv" Then
            oAppointment.Delete
        End If
    Next

    'Libération des variables.
    Set oAppointment = Nothing
    Set oOutlook = Nothing

Fin_Execution:
    Exit Sub
Err_Execution:
    MsgBox Err.Description, vbExclamation
    Resume Fin_Execution
End Sub

Merci
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Calvus :)

Je ne sais pas si ce que je dis est un connerie mais, se ne serait pas mieux si tu supprime la ligne dans le calendrier? Mais je pense que sa vient de la boucle For each, mieux vaut

If sFilter Like "*" & XXX then oAppointment.Delete
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Bonsoir Lone-wolf,

Ca me prend la tête ce truc là. Je tourne autour sans trouver le code exact.
Chaque fois que je modifie, il me manque un mot dans la syntaxe pour tout faire fonctionner. C'est rageant ! Car les instructions séparées fonctionnent.
Tant pis, je vais laisser tomber.
Merci de ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 201
Membres
103 156
dernier inscrit
Ludo94130