Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
913 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression de RDV dans Outlook via macro Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppression de RDV dans Outlook via macro Excel

n°1990110
AlexMagnus
J'have fnu sans être gud !
Posté le 04-05-2010 à 11:46:35  profilanswer
 

Bonjour à tous,  
 
J'ai une macro dans Excel qui crée des RDV dans Outlook, récupérée sur le Net, qui fonctionne une fois modifiée par mes soins pour ma convenance.
 
Sauf que si je lance plusieurs fois la macro d'affilée, plusieurs RDV sont créés, ce qui bien entendu n'est pas bon.
J'ai géré les conflits dans Excel. Un onglet m'affiche maintenant les RDV qui ne sont pas bons, et qui doivent être supprimés. Sauf que là est mon problème : je trouve plein de bouts de code qui permettent de créer des RDV, mais pas des codes documentés qui permettent de les supprimer
 
Auriez-vous ça sous le coude ?
 
:jap:


---------------
J'ai le poignet loin derrière | Top hontes HFR | [VDS] Montres | [VDS] de l'histoire
mood
Publicité
Posté le 04-05-2010 à 11:46:35  profilanswer
 

n°1990410
SuppotDeSa​Tante
Aka dje69r
Posté le 05-05-2010 à 12:23:07  profilanswer
 

Hello
 
Supprimer un rendez vous c'est assez simple. Le souci reside dans le fait de trouver le bon.
Tu veux tester sur quoi ? Le sujet ? Le sujet et la date etc. ?
 
Je te donne un début de piste :

Code :
  1. Set myOlApp = CreateObject("Outlook.Application" )
  2.     Set myNameSpace = myOlApp.GetNamespace("MAPI" )
  3.     Set myOlApp.ActiveExplorer.CurrentFolder = myNameSpace.GetDefaultFolder(olFolderCalendar)
  4.     Set outlookitems = myOlApp.ActiveExplorer.CurrentFolder.Items
  5.     Cpte = outlookitems.Count
  6.    
  7.         For x = 1 To Cpte
  8.             'exemple de test : si le sujet est "toto" alors on supprime le rdv
  9.             If outlookitems(x).Subject = "toto" Then
  10.                 outlookitems(x).Delete
  11.             End If
  12.         Next x


 
Edit : Exemple de propriété :
outlookitems(x).Start ---)> Date de début
outlookitems(x).End ---)> Date de fin
outlookitems(x).Location ---)> Lieu
outlookitems(x).Body ---)> Corps du message
etc.


Message édité par SuppotDeSaTante le 05-05-2010 à 12:27:57

---------------
Soyez malin, louez entre voisins !
n°1992649
AlexMagnus
J'have fnu sans être gud !
Posté le 12-05-2010 à 15:52:45  profilanswer
 

Hello,  
 
Merci pour ton code bien explicite. Il fonctionne parfaitement, mais j'ai une petite spécificité que je n'arrive pas à résoudre. J'avoue qu'étant parti en vacances et ayant laissé le tout à mon collègue, j'avais un peu laissé de côté, mes excuses :o
 
Les RDV sont créés auparavant pour s'afficher sur toute la journée : alldayevent=true, pas de soucis.
Avant de faire la suppression, je fais une vérification des RDV existants, de quoi découle deux variables : DateDebut et DateFin, ces deux dates étant celles de début et de fin des RDV à supprimer (mais uniquement, donc, pour les alldayevent correspondant à ce que je cherche - la recherche se fait sur le subject, pas de problème là-dessus normalement)
 
Je n'ai malheureusement pas le code en tête, mais j'ai donc :
 
Pour les dates comprises entre DateDebut et Datefin
  Si le sujet du RDV = MonSujet Alors supprimer le RDV
 
Sauf que j'ai un problème sur les dates : imaginons que DateDebut = Lundi et que DateFin = Jeudi, ça va supprimer les RDV alldayevent souhaités de Mardi à Jeudi, mais sauter Lundi. J'ai pas l'impression, du coup, que le alldayevent de Lundi soit bien enregistré sur le Lundi, mais je ne sais comment le pointer :/
 
Une idée ? :)
   


---------------
J'ai le poignet loin derrière | Top hontes HFR | [VDS] Montres | [VDS] de l'histoire
n°1992747
SuppotDeSa​Tante
Aka dje69r
Posté le 12-05-2010 à 21:04:41  profilanswer
 

Et avec une date de debut du dimanche ? Je pense que vous avez peu de rendez vous le dimanche. Mais ca permetra peut etre d'inclure le lundi...


---------------
Soyez malin, louez entre voisins !
n°1992809
AlexMagnus
J'have fnu sans être gud !
Posté le 13-05-2010 à 11:26:16  profilanswer
 

C'est ce que je pensais faire, mais quand je fais DateDebut=DateDebut-1 (en supposant alors que ça prenne le jour précédent), ça reste à DateDebut (donc ne passe pas au jour précédent)
 
L'exemple avec le lundi est arbitraire, c'était juste pour illustrer, ça peut bien entendu être n'importe quel jour de la semaine :jap:
 
Dans un tableur Excel, si je mets dans la cellule A1 une date, et que dans A2 je fais =A1-1, j'ai bien le jour précédent. Je  n'arrive pas à reproduire la chose dans la Macro ; je pense aussi que ça pourrait solver le problème...


---------------
J'ai le poignet loin derrière | Top hontes HFR | [VDS] Montres | [VDS] de l'histoire
n°1992865
SuppotDeSa​Tante
Aka dje69r
Posté le 13-05-2010 à 17:15:15  profilanswer
 

Ta variable est bien defini comme une date et non pas une chaine ?


---------------
Soyez malin, louez entre voisins !
n°1993093
AlexMagnus
J'have fnu sans être gud !
Posté le 14-05-2010 à 17:11:23  profilanswer
 

En fait, ne sachant pas comment la définir, elle ne l'est pas vraiment...
 
Elle est contenue dans une cellule du tableau, par exemple dans A1, et je fais DateDebut = range("A1" ). Sauf que cette cellule A1 est remplie par un programme tiers sur lequel je n'ai pas la main, je sais pas quel est le type de format utilisé :/
 
C'est ma toute première macro, faut dire :o


---------------
J'ai le poignet loin derrière | Top hontes HFR | [VDS] Montres | [VDS] de l'histoire
n°1993097
SuppotDeSa​Tante
Aka dje69r
Posté le 14-05-2010 à 17:19:45  profilanswer
 

essaie qqchose comme ca :
DateDebut = CDate(Range("A1" ))
DateDebut = DateDebut - 1
 
Mise a part le type de variable, je ne vois pas pourquoi il n'arrive pas a soustraire 1 à une date...


---------------
Soyez malin, louez entre voisins !
n°2220610
xenon10092
Posté le 24-02-2014 à 15:47:44  profilanswer
 

Bonjour.
 
Déjà merci pour ce code.
 
Par contre moi j'ai un autre problème, j'ai un tableur Excel qui prend en compte plusieurs autres tableur, après je fais mon tri et ma mise en forme ce qui me donne un tableur dans lequel mes RDV apparaissent.
 
Le problème est que je n’arrive pas à mettre à jour la macro pour supprimé tous les rdv de la colonne A.
 
Pouvez-vous m'aider Merci
 
Code :
Set myOlApp = CreateObject("Outlook.Application" )
    Set myNameSpace = myOlApp.GetNamespace("MAPI" )
    Set myOlApp.ActiveExplorer.CurrentFolder = myNameSpace.GetDefaultFolder(olFolderCalendar)
    Set outlookitems = myOlApp.ActiveExplorer.CurrentFolder.Items
    Cpte = outlookitems.Count
   
        For x = 1 To Cpte
            'exemple de test : si le sujet est "toto" alors on supprime le rdv
           If outlookitems(x).Subject = Columns("A" ) Then
                outlookitems(x).Delete
            End If
        Next x


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Suppression de RDV dans Outlook via macro Excel

 

Sujets relatifs
Macro SASVBA : débutant, besoind'aide pour une macro
Petit probleme de macro VBA sous Exceltracer une ligne verticale en vba (excel)
VBA / Excel : Bug étrange ...Macro Excel : "scan" de colonne et données sur plusieurs fichiers
[RESOLU]Plus de "insérer un commentaire" après la macro[VBS] passé d'une macro à ...autoit
Plus de sujets relatifs à : Suppression de RDV dans Outlook via macro Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR