Vba inscrire un rendez-vous outlook dans un calendrier partagé depuis excel? +

Signaler
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008
-
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008
-
Salut la communauté !

J'aimerais pouvoir ajouter un rendez-vous dans le calendrier outlook d'un de mes collaborateur. J'ai pu voir qu'il était possible de le faire sur notre calendrier, mais je n'ai pas trouvé de solution pour le faire sur un calendrier partagé.

Attention: Ce n'est pas une demande de rendez-vous que j'aimerais inscrire, mais bien un rendez-vous.

J'aimerais aussi savoir comment utiliser créer un evenement qui se lance à chaque apparition d'un formulaire excel. Le but est de remplir une liste à choix de celui-ci par rapport à une colone de donnée excel.

Merci d'avance !

9 réponses

Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
Salut,
Voici un exemple de comment faire un rendez-vous. pour ton calendrier partager il faut que tu créés un Namespace et que tu récupères le folder de ton calendrier partagé, il devrait avoir un nom, s'il ne change pas met le en dur, sinon voici un exemple:

    Dim myOlApp As New Outlook.Application
    Dim appitm As Outlook.AppointmentItem
    Set appitm = myOlApp.CreateItem(olAppointmentItem)
    appitm.Subject = "vba test"
    appitm.Start = Now
    appitm.End = Now
    appitm.Body = "test"
    appitm.Display

si tu es dans excel n'oubli pas les ref vers outlook.
@+
youpi :)
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008

"il faut que tu créés un Namespace et que tu récupères le folder de ton calendrier partagé"

J'ai essayé en m'inspirant d'autre code sans succès :(
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
essaye un truc du genre
    Dim myOlApp As New Outlook.Application
    Dim myNamespace As Outlook.NameSpace
   
    Dim appitm As Outlook.AppointmentItem
    Set myNamespace = myOlApp.GetNamespace("MAPI")

    Dim CalendarFolder As Outlook.MAPIFolder
    Set myRecipient = myNamespace.CreateRecipient("le Nom de ton recipient")
    myRecipient.Resolve
    If myRecipient.Resolved Then
        Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
    Else
        Exit Sub
    End If

    Set appitm = myOlApp.CreateItem(olAppointmentItem)
    appitm.Subject = "vba test"
    appitm.Start = Now
    appitm.End = Now
    appitm.Body = "test"
    appitm.Display

sinon regarde l'help c'est bien expliquer
sinon tu aurras peut être ta solution ici: http://www.developpez.net/forums/d528160/dotnet/csharp/vsto-lire-calendrier-partage/
@+
youpi :)
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008

Merci beaucoup, je vais essayer de faire quelque chose avec ça et je posterais dès que j'aurais trouvé la solution.
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008

Ca ne marche pas :(
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
Salut,

Donne plus d'information sur ta configuration outlook, et sur les messages d'erreurs pour que l'on puisse t'aider.

@+
youpi :)
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008

Outlook 2003.

Je pense que le problème se trouve ici:
Set appitm = myOlApp.CreateItem(olAppointmentItem)
Parce que quand je fais:
appitm.display
Et que je regarde dans planification le seul utilisateur assigné est moi même.
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
appitm.display n'affiche uniquement l'item que tu as crée donc ton erreur ne peut venir de la.



tu auras forcement des messages de securité c'est ce qui est pénible, mais est-ce que tu as bien fais attention a changer "le Nom de ton recipient"
sinon tu toujours un exit sub parce que le recipient ne sera jamais resolve. Je viens de retster le code que je t'ai donner il marche chez moi avec outlook 2003...
@+
youpi :)
Messages postés
12
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
17 septembre 2008

Voila vu que t'as solution ne marchait pas je suis passé par une autre méthode.


En faite je vais créer un meeting en mettant comme personne obligatoire la personne dont je veux que le rendez-vous dans le calendrier soit ajouter.

Sub SendMeetingRequest()
Dim objOL As Variant
Dim objAppt As Variant
Dim DateDebut As Variant
Dim DateFin As Variant




Const olAppointmentItem = 1
Const olMeeting = 1


Set objOL = CreateObject("Outlook.Application")




DateDebut = "10.11.2008 11:30"
DateFin = "10/11/2008 12:00"


 


 


    Set objAppt = objOL.CreateItem(olMeeting) 'olAppointmentItem
With objAppt
.Subject = "sujet de la réunion"


.start = DateDebut
.End = DateFin
.Location = "Test excel"
.Body = "texte du message d'invitation "
.BusyStatus = olFree
.Categories = ""




'// Activer ce paragraphe pour le rappel \\
.ReminderSet = False
'.ReminderMinutesBeforeStart = 120 'rappel 2 heures avant
'.ReminderOverrideDefault = True
'.ReminderPlaySound = True 'réveil en fanfare
'.Importance = olImportanceHigh
.MeetingStatus = olMeeting
.RequiredAttendees = "[mailto:christophe.weber@swisspro.ch christophe.weber@swisspro.ch]" 'participant obligatoire
.Send
End With


'Ici on va supprimer la réunion pour l'émetteur qui n'est pas concerné


Set objOutlookNameSpace = objOL.GetNamespace("MAPI")


Set objOutlookCalendar = objOutlookNameSpace.GetDefaultFolder(olFolderCalendar).Items


objOutlookCalendar.Sort "[Start]"
objOutlookCalendar.IncludeRecurrences = True
Set objOutlookAppt = objOutlookCalendar.Find("[Start] >= """ & DateDebut & """ and [Start] <= """ & DateFin & """")


objOutlookAppt.Delete
'Fin de la suppression du rendez vous




Set objAppt = Nothing
Set objOL = Nothing
End Sub

Voila c'est du bidouillage , mais ça fonctionne