IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Suppression rendez-vous Outlook 2003


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut Suppression rendez-vous Outlook 2003
    Bonjour,

    Je travaille sur un script qui exporte les rendez-vous du calendrier dans un fichier Excel en fonction de la date de début et de la date de fin.
    Je demande ensuite si l'utilisateur veut supprimer les rendez-vous qui ont été exporté.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SuppRdv
     
    Sub SuppRdv
     
    appointmentItems.Sort "[Start]"
     
    MsgBox"Voulez-vous supprimer les messages archivés de votre  Agenda ?",VbYesNo+VbQuestion
     
    If VbYes then
    Set Appointments = appointmentItems.Find("[Start] >= """ & StartOfRange & """ and [Start] <= """ & EndOfRange & """ ")
    While TypeName(Appointments) <> "Nothing"
    Appointments.Delete
    Set Appointments = appointmentItems.FindNext
     
    Wend
     
    Else 
    	wscript.quit
     End If
     
     
    End Sub
    Là je rencontre 2 problèmes :

    - Même si je répond "non", les rendez-vous sont supprimés
    - Les rendez-vous périodiques sont supprimés même au-delà de la date de fin "EndOfRange" alors que dans l'export les rendez-vous ne dépassent pas la date de fin.

    Merci de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    Oui c'est normal, VbYes est une constante égale à 6. Quelque soit la réponse à la question, cette constante ne changera pas de valeur. Tu dois tester le retour de la fonction MsgBox et comparer si c'est égal à VbYes. Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if mgsbox("C'est l'heure de manger ?", vbyesno) = vbyes then
    ...
    else
    ...
    endif

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Merci captainKirk, j'ai modifié le script de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub SuppRdv
     
    appointmentItems.Sort "[Start]"
     
    If MsgBox("Voulez-vous supprimer les messages archivés de votre  Agenda ?",VbYesNo+VbQuestion) = VbYes then
    Set Appointments = appointmentItems.Find("[Start] >= """ & StartOfRange & """ and [Start] <= """ & EndOfRange & """ ")
    While TypeName(Appointments) <> "Nothing"
    Appointments.Delete
    Set Appointments = appointmentItems.FindNext
     
     Wend
     
    Else 
     End If
     
    End Sub
    Reste donc le problème concernant les rendez-vous périodiques qui sont supprimés même au-delà de la date de fin "EndOfRange" alors que dans l'export Excel, les rendez-vous ne dépassent pas la date de fin.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    Cela vient probablement du fait que les rendez-vous périodiques sont liés entre eux. Lorsqu'on en supprime un via Outlook, ce dernier demande si on souhaite supprimer uniquement cette occurrence ou la série complète. Je suppose que par défaut la fonction Delete supprime toute la série. Par contre, je ne connait pas suffisamment l'API d'Outlook pour savoir de tête s'il existe une autre méthode ou un paramètre à passer à la fonction Delete. Il faudrait regarder dans la documentation de Microsoft.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    Après avoir consulté la doc Microsoft, j'ai testé plusieurs choses mais je ne m'en sort pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    appointmentItems.Sort "[Start]"
     
    If MsgBox("Voulez-vous supprimer les messages archivés de votre  Agenda ?",VbYesNo+VbQuestion) = VbYes then
    Set Appointments = appointmentItems.Find("[Start] >= """ & StartOfRange & """ and [Start] <= """ & EndOfRange & """ ")
    While TypeName(Appointments) <> "Nothing"
    Appointments.ClearRecurrencePattern()
    Appointments.RecurrenceState = 0
    Appointments.Delete
    Set Appointments = appointmentItems.FindNext
    Que j'essaye de supprimer la récurrence avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClearRecurrencePattern()
    ou avec rien n'y fait.

    C'est vraiment désesprérant !!!!

Discussions similaires

  1. [Automation] ajout participants rendez-vous Outlook
    Par estebandelago dans le forum Access
    Réponses: 6
    Dernier message: 28/03/2007, 15h03
  2. [VBA-O]lire les rendez vous outlook
    Par LostIN dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 27/03/2007, 15h53
  3. Réponses: 1
    Dernier message: 12/09/2006, 15h29
  4. Rendez-vous Outlook depuis Access
    Par pascal@falcy.ch dans le forum Access
    Réponses: 4
    Dernier message: 03/10/2005, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo