Suppression de RDV dans Outlook via macro Excel - VB/VBA/VBS - Programmation
Marsh Posté le 05-05-2010 à 12:23:07
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 :
|
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.
Marsh Posté le 12-05-2010 à 15:52:45
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
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 ?
Marsh Posté le 12-05-2010 à 21:04:41
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...
Marsh Posté le 13-05-2010 à 11:26:16
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
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...
Marsh Posté le 13-05-2010 à 17:15:15
Ta variable est bien defini comme une date et non pas une chaine ?
Marsh Posté le 14-05-2010 à 17:11:23
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
Marsh Posté le 14-05-2010 à 17:19:45
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...
Marsh Posté le 24-02-2014 à 15:47:44
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
Marsh Posté le 04-05-2010 à 11:46:35
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 ?
---------------
J'ai le poignet loin derrière | Top hontes HFR | [VDS] Montres | [VDS] de l'histoire