Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Accès à un agenda partagé GOOGLE depuis MS ACCESS (via outlook)
    Bonjour,

    Sous Outlook, j'ai un agenda type ical qui me permet de visualiser un agenda google. Ça, ça fonctionne.

    Depuis ACCESS, en VBA, je voudrais extraire les rdv de cet agenda sur une plage donnée.

    Extraire les rdv sur une plage donnée, j'y arrive avec l'agenda outlook par défaut.

    Par contre, je galère pour accéder à l'agenda google pourtant visible sous outlook.

    Arborescence outlook :
    - Mes Calendriers
    - Calendrier
    - Autres calendriers
    - diet <<<<=== c'est à cet agenda que je voudrais accéder


    Le code :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Private Sub Commande26_Click()
    ' ENVOI DES EMAILS DE RAPPEL
    Dim strMailDest As String           ' email destinataire
    Dim strMailMessage As String        ' corps du mail
    Dim strMailTitre As String          ' titre du mail
     
    Dim myStart As Date                 ' date de début de scruptation
    Dim myEnd As Date                   ' date de fin de scruptation
    Dim oCalendar As Outlook.MAPIFolder
    Dim oItems As Outlook.Items
    Dim oResItems As Outlook.Items
    Dim oAppt As Outlook.AppointmentItem
    Dim strRestriction As String        ' critères de filtrage outlook calendar
    Dim oOutlook As Outlook.Application
    Dim namespaceOutlook As Outlook.NameSpace
    Dim myrecipient As Object
     
    myStart = Date                      ' date du jour
    myEnd = DateAdd("d", 8, myStart)    ' date du jour + 5 jours
     
    'Set oCalendar = Outlook.Session.GetDefaultFolder(olFolderCalendar)
     
    Set oOutlook = CreateObject("Outlook.Application")
    Set namespaceOutlook = oOutlook.GetNamespace("MAPI")
    Set myrecipient = namespaceOutlook.CreateRecipient("monnom@gmail.com")
    myrecipient.Resolve
    Set oCalendar = namespaceOutlook.GetSharedDefaultFolder(myrecipient, olFolderCalendar)
     
    Set oItems = oCalendar.Items
     
    strRestriction = "[Start] <= '" & Format$(myEnd, "mm/dd/yyyy hh:mm AMPM") _
        & "' AND [End] >= '" & Format(myStart, "mm/dd/yyyy hh:mm AMPM") & "'"
        Debug.Print strRestriction
     
    'Restrict the Items collection
    Set oResItems = oItems.Restrict(strRestriction)
     
    For Each oAppt In oResItems
        strMailTitre = "Rappel concernant votre prochain rendez-vous diététique"
        strMailMessage = "Bonjour" & vbCrLf & vbCrLf & "Ceci est un message automatique de rappel de rendez-vous." & vbCrLf & "Patient : " & oAppt.Subject & vbCrLf & "Date du rendez-vous : " & oAppt.Start & vbCrLf & vbCrLf & "En cas d'impossibilité de venir à ce rendez-vous, merci de me prévenir au XXXXXXXX." & vbCrLf & "Cordialement," & vbCrLf & "XXXX"
        strMailDest = "monnom@gmail.com" ' à terme aller chercher le mail de la personne
        ' Envoi du message
        SendMail strMailDest, strMailTitre, strMailMessage, False
    Next
     
    End Sub


    VBA me dit : "Echec de l'opération. Impossible de trouver l'objet" lorsqu'il est sur la ligne

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Set oCalendar = namespaceOutlook.GetSharedDefaultFolder(myrecipient, olFolderCalendar)


    Merci d'avance pour votre aide...

  2. #2
    Expert éminent
    Bonjour,
    Quand tu cliques bouton droit puis propriétés sur ton calendrier diet tu vois son emplacement

    de là :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
       Set oCalendar = namespaceOutlook.Folders("Calendriers internet")
     Set oCalendar = oCalendar.Folders("Calendrier Doodle")

  3. #3
    Membre à l'essai
    Merci Oliv, je teste ça dès que possible et je te dis !

  4. #4
    Membre à l'essai
    Merci beaucoup, ça fonctionne parfaitement !

###raw>template_hook.ano_emploi###