Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Inscrire un rdv dans un calendrier partagé

xad

XLDnaute Nouveau
bonjour,

Malgrè les nbx posts sur le sujet, je n'arrive pas à écrire mon code pour inscrire un rdv (pas une réunion) dans un calendrier partagé.
Mon arborescence dans outlook :
.Mes calendriers
- Calendrier
.Calendriers Partagés
- planning (calendrier visé dont je ne suis pas le propriétaire)
-etc...

Mon code est le suivant :
Sub AjoutRDVCalendrierpartage()
Dim oOutlook As Outlook.Application
Dim oAppointment As Outlook.AppointmentItem
Dim namespaceOutlook As Outlook.NameSpace
Dim DossierCalendrier As Outlook.MAPIFolder
Dim myrecipient As Object
On Error GoTo Err_Execution
Set oOutlook = CreateObject("Outlook.Application")
Set namespaceOutlook = oOutlook.GetNamespace("MAPI")
Set myrecipient = Recipients.Add("mail du proprietaire du calendrier")
'définit le dossier calendrier
'GetDefaultFolder renvoit le calendrier du compte actif
Set DossierCalendrier = namespaceOutlook.GetSharedDefaultFolder(myrecipient, olFolderCalendar).Folders("nom quej'aidonné au calendrier")
'on crée un nouveau rendez-vous
Set oAppointment = DossierCalendrier.Items.Add
'on renseigne ensuite les principaux paramètres
With oAppointment
.Start = "13/07/19 08:30:00"
.Duration = 380 'durée de rdv, en minutes
.Subject = "INTERVENTION XXX " 'Sujet du rdv
.Location = "Paris" 'Lieu du rdv
.Display

End With
'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

Le message d'erreur renvoyé par Excel intervient dès la première ligne de code : erreur de compilation ,type défini par l'utilisateur non défini
Si je mets ce code directement dans outlook, le message d'erreur est : objet requis

Merci pour votre aide !!
 
C

Compte Supprimé 979

Guest
Bonjour,

Le message d'erreur renvoyé par Excel intervient dès la première ligne de code : erreur de compilation ,type défini par l'utilisateur non défini
Si je mets ce code directement dans outlook, le message d'erreur est : objet requis
C'est qu tu n'as pas coché la référence "Mircosoft Outlook" dans les références de VBAProject




A+
 

xad

XLDnaute Nouveau
Bonjour,

Le fichier n'est pas finalisé. Je ne ferai la maquette globale avec choix du rdv à créer que si j'arrive à inscrire mon rdv dans un calendrier partagé.
Merci pour ton aide.

A+
 

Pièces jointes

  • testrdv.xlsm
    25.2 KB · Affichages: 14
C

Compte Supprimé 979

Guest
Bonjour Xad,

Alors pour commencer et par rapport à ton message d'erreur que je trouvais étrange.
Tu ne sais apparemment faire la différence entre une redirection d'erreur et un débogage simple

Il faut mettre cette ligne en commentaire
VB:
On Error GoTo Err_Execution

Cela t'aurais permis de voir que ça bloque sur la ligne
Code:
Set MyRecipient = Recipients.Add("adresse mail du calendrier partagé")

Ensuite, je ne pense pas que ce soit la bonne méthode

Une solution peut-être ici
https://www.excel-downloads.com/thr...er-partage-outlook-a-partir-excel-vba.231634/
 

xad

XLDnaute Nouveau
Merci pour ton retour.
Je n'arrive pas à pointer sur le calendrier partagé, je ne maîtrise pas le folders.Item. Je vais voir si je trouve des pistes sur les forums.
En tout cas, merci pour ton aide.
 

STephane

XLDnaute Occasionnel
Bonjour

Ton code semble correct. Pour compléter la réponse de Bruno, tu peux rajouter un bloc d'instruction pour contrôler que le "recipient" soit reconnu.

VB:
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objDummy = objApp.CreateItem(olMailItem)
Set objRecip = objDummy.Recipients.Add(strName)
objRecip.Resolve
If objRecip.Resolved Then
    On Error Resume Next
    Set objFolder = _
      objNS.GetSharedDefaultFolder(objRecip, _
        olFolderCalendar)
...

Bout de code repris ici: http://www.outlookcode.com/codedetail.aspx?id=43

HTH
STéphane
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…