Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OUTLOOK : ENVOI DE MAIL ET AJOUT, MODIFICATION ET SUPRRESION DES RENDEZ-VOUS DANS LE CALENDRIER


Information sur la source

Catégorie :Tutoriaux Niveau : Débutant Date de création : 24/03/2005 Vu : 16 063

Note :
8,5 / 10 - par 6 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

J'ai eu un mal fou à trouver comment faire tout ça, alors je me suis dit que cela pourrait aider de faire une source permettant la MAJ du calendrier Outlook ainsi que l'envoi de mail.
 

Source

  • 'Envoie de mail
  • Dim objOutlook as New Outlook.Application
  • Dim objOutlookMsg as Outlook.MailItem
  • Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
  • With objOutlookMsg
  • .To = "Adresse@Destinataire"
  • .Subject = "Objet du message"
  • .Body = "Texte du message"
  • .Send
  • End With
  • Set objOutlookMsg = Nothing
  • 'Ajout d'un rdv au calendrier
  • Dim objOutlook as New Outlook.Application
  • Dim objOutlookAppt as Outlook.AppointmentItem
  • Set objOutlookAppt = objOutlook.CreateItem(olAppointmentItem)
  • With objOutlookAppt
  • .Start = "jj/mm/aaaa hh:mm"
  • .Duration = x 'En minute
  • .Subject = "Description du rendez-vous"
  • .Save
  • End With
  • 'Modifier/Supprimer un rdv du calendrier
  • Dim objOutlook as New Outlook.Application
  • Dim objOutlookAppt as Outlook.AppointmentItem
  • Dim objOutlookCalendar as Outlook.Items
  • Dim objOutlookNameSpace as Outlook.NameSpace
  • Dim DateDebut as String, DateFin as String
  • Set objOutlookNameSpace = objOutlook.GetNameSpace("MAPI")
  • Set objOutlookCalendar = objOutlookNameSpace.GetDefaultFolder(olFolderCalendar).Items
  • objOutlookCalendar.Sort "[Start]"
  • objOutlookCalendar.IncludeReccurrences = True
  • DateDebut = "jj/mm/aaaa hh:mm"
  • DateFin = "jj/mm/aaaa hh:mm"
  • Set objOutlookAppt = objOutlookCalendar.Find("[Start] >= " " " & DateDebut & " " " and [Start] <= " " " & DateFin & " " " ")
  • While TypeName(objOutlookAppt) <> "Nothing"
  • If objOutlookAppt.Subject = "RDV recherché pour etre modifié" then
  • objOutlookAppt.Subject = "Nouveau sujet"
  • objOutlookAppt.Save
  • Exit Sub
  • End If
  • If objOutlookAppt.Subject = "RDV recherché pour supprimé" then
  • objOutlookAppt.Delete
  • Exit Sub
  • End If
  • Set objOutlookAppt = objOutlookCalendar.FindNext
  • Wend
'Envoie de mail

Dim objOutlook as New Outlook.Application
Dim objOutlookMsg as Outlook.MailItem

Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
       .To = "Adresse@Destinataire"
       .Subject = "Objet du message"
       .Body = "Texte du message"
       .Send
End With
Set objOutlookMsg = Nothing

'Ajout d'un rdv au calendrier

Dim objOutlook as New Outlook.Application
Dim objOutlookAppt as Outlook.AppointmentItem

Set objOutlookAppt = objOutlook.CreateItem(olAppointmentItem)
With objOutlookAppt
       .Start = "jj/mm/aaaa hh:mm"
       .Duration = x       'En minute
       .Subject = "Description du rendez-vous"
       .Save
End With

'Modifier/Supprimer un rdv du calendrier

Dim objOutlook as New Outlook.Application
Dim objOutlookAppt as Outlook.AppointmentItem
Dim objOutlookCalendar as Outlook.Items
Dim objOutlookNameSpace as Outlook.NameSpace
Dim DateDebut as String, DateFin as String

Set objOutlookNameSpace =  objOutlook.GetNameSpace("MAPI")
Set objOutlookCalendar = objOutlookNameSpace.GetDefaultFolder(olFolderCalendar).Items
objOutlookCalendar.Sort "[Start]"
objOutlookCalendar.IncludeReccurrences = True

DateDebut = "jj/mm/aaaa hh:mm"
DateFin = "jj/mm/aaaa hh:mm"

Set objOutlookAppt = objOutlookCalendar.Find("[Start] >= " " " & DateDebut & " " " and    [Start] <= " " " & DateFin & " " " ")
While TypeName(objOutlookAppt) <> "Nothing"
       If objOutlookAppt.Subject = "RDV recherché pour etre modifié" then
              objOutlookAppt.Subject = "Nouveau sujet"
              objOutlookAppt.Save
              Exit Sub
       End If

       If objOutlookAppt.Subject = "RDV recherché pour supprimé" then
              objOutlookAppt.Delete
              Exit Sub
       End If 
       Set objOutlookAppt = objOutlookCalendar.FindNext
Wend

Conclusion

Une petite précision au sujet des dates : peu importe dans l'ajout, mais dans le objOutlookCalendar.Find(), il ne faut pas mettre les secondes dans les dates sinon il deboguera.

Point Important : rien ne marche... si vous n'avez pas cocher Microsoft Outlook x.0 Object Library dans Projet/Références, alors n'oubliez pas ;-)

Vérifié bien que Outlook est bien configuré, sinon, même si le code est bon, Outlook vous causera des problèmes.
 

Commentaires et avis

signaler à un administrateur
Commentaire de BrianBellamy le 25/03/2005 09:10:52

Ce code m'ayant énormément servi, je ne pouvais que laisser une note élevée.. cependant un détail que j'ai signalé dans le forum que j'avais lancé me perturbe encore...
En fait, je viens de voir que ce que j'ai laissé sur mon forum ne fonctionnait pas comme je le voulais puisqu'il ne tient pas compte de l'horaire..
Une petite aide serait la bienvenue car meme si je change "datedébutrecherche = VBA.Format(Date.Value & Space(1) & HDbt.Value, "Short Date")" en "datedébutrecherche = Date.Value & Space(1) & Hdbt.Value" cela ne fonctionne pas, pire, cela m'affiche une erreur "type mismatch or the value is not valid".

En espérant que vous puissiez m'aider une nouvelle fois..
D'avance merci

Brian Bellamy

PS: Date.Value= jj/mm/aaaa
      Hdbt.Value= hh/mm (qui devient après enregistrement hh/mm/ss)

signaler à un administrateur
Commentaire de phil5710 le 15/05/2005 13:39:41

Bonjour.

Après des heures de recherches personnelles infructueuses, j'ai découvert cet article et je me suis empressé de copier/coller le code dans mon application.
Mon objectif est de supprimer un rendez-vous dans un calendrier précis.
Hélas, ça ne marche pas:

> la commande Set objOutlookAppt = objOutlookCalendar.Find retourne toujours un status "Nothing"

> dans la commande Dim objOutlookAppt As Outlook.AppointmentItem, la propriété "AppointmentItem" ne m'est pas proposée.
Me manque-t-il quelque-chose dans mon projet?

Merci d'avance.

signaler à un administrateur
Commentaire de dchrist le 04/05/2007 16:01:51

Bonjour,

Super !!! Un gros merci...
Depuis quelques jours je recherche comment fixer ma recherche sur des RDV de mon calendrier OUTLOOK selon une date précise.
Je réussissais bien à avoir une liste mais je récupérais tous les RDV.

Par contre, je ne peux pas appliquer la commande suivante :
          objOutlookCalendar.IncludeReccurrences = True
??????
Je pense que c'est lié au RDV avec une périodicité.

Encore merci !

signaler à un administrateur
Commentaire de gfortin9 le 30/05/2007 03:27:46

Un débutant ...
La ligne :
Set objOutlookAppt = objOutlookCalendar.Find("[Start] >= " " " & DateDebut & " " " and    [Start] <= " " " & DateFin & " " " ")

me donne une erreur de syntaxe.

signaler à un administrateur
Commentaire de phenixa77 le 16/12/2007 19:32:11

SLT
je vous remercie pour ce code , mais j aimerai bien savoir comment envoyé un mail à une date système précis

signaler à un administrateur
Commentaire de RENAUD34 le 14/05/2008 15:26:18 10/10

merci pour le code, ça va enormément me rendre service.

3 rectifications pour la recherche (chez moi en tout cas):
1) objOutlookCalendar.IncludeRecurrences = True
2) DateDebut = "jj/mm/aaaa"
   DateFin = "jj/mm/aaaa"
3) Set objOutlookAppt = objOutlookCalendar.Find("[Start]>= " & """" & DateDebut & """" & " and [Start]<=" & """" & DateFin & """")

signaler à un administrateur
Commentaire de mitsh666 le 15/01/2009 16:40:25 4/10

Hello,

Perso, j'ai un soucis avec ton code lors de l'exécution de la ligne suivante :
        objOutlookCalendar.IncludeReccurrences = True

J'ai aussi beaucoup chercher pour arriver à trouver qqch. Voici la solution que j'ai trouvée : http://www.vbfrance.com/codes/CREATION-CANCEL-MEETING-SUR-CALENDRIER-AUTRE-CELUI-COMPTE_48982.aspx

Ta solution de modification des rendez-vous ne me plaît pas du tout, car tu supprime un rendez-vous pour en recréer un nouveau. Cela n'est pas une mise à jour du rendez-vous. Si quelqu'un a modifier le rendez-vous sur outlook avant que tu fasse la tienne, tu écrase/annule/supprime sa modification avec ta méthode. Ton code permet de créer ou supprimer. et pour la suppression c'est pas encore ça. Imagine que tu aie 2 rendez-vous avec le même sujet! Ils sont supprimés les 2. (voilà le pourquoi de la note)
Ma solution ne contient malheureusement pas la mise à jour, car je n'ai pas trouvé comment la réaliser. Et ce malgré que j'arrive à charger le bon rendez-vous grâce à l'identifiant.

Je préfère ta méthode de recherche de meetings. Cela dis, j'avais lu sur un forum qu'il était mieux de faire une recherche for next que for each afin d'éviter des erreurs non définies par Microsoft (fiction ou réalité?). Du coup, j'ai modifier le code.

A+

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.