Bonjour à tous
Voila, je suis en train d'essayer de developepr une macro qui, après le parcours de tous les élements du clendrier outlook, mettra a jour un agenda en ligne (php) en y ajoutant des éléments de outlook.
J'aimerai que cela soit fait de manière automatique.
Pour l'instant je m'en sors avec la créatiion d'un ficheir xml que j'envoie sur le site, lequel parse ensuite mon fichier et mete à jour mon agenda en ligne (via une base mysql)
Le code de création du fichier a parser est le suivant:
Sub export()
Dim dirLocation As String
Dim webnav As String
Dim webfile As String
Dim password As String
Dim RetVal As Integer
Dim chaine As String
'Valeur modifiables pour l'utilisateur
'Chemin d'accès au fichier temporaire
dirLocation = "C:\temp.txt"
'Chemin d'accès à votre navigateur web
webnav = "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
'Chemin d'accès à la page de post d'évènements
webfile = "http://127.0.0.1/agenda/post_events.php"
'Password Défini lors de l'installation du script
'NB: vous pouvez laisser ce champs vide, mais vous serez obligé de l'entrer sur la page de post!
password = ""
If dirLocation = Null Or Len(dirLocation) = 0 Then
Exit Sub
End If
Dim objApplication As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim objAppointments As Outlook.MAPIFolder
Dim objAppointment As Outlook.AppointmentItem
Dim appointmentIndex As Integer
Set objApplication = CreateObject("Outlook.Application")
Set objNameSpace = objApplication.GetNamespace("MAPI")
Set objAppointments = objNameSpace.GetDefaultFolder(olFolderCalendar)
Open dirLocation For Output As #6
Print #6, "<calendar>"
Print #6, ""
For appointmentIndex = 1 To objAppointments.Items.Count
Set objAppointment = objAppointments.Items.Item(appointmentIndex)
Print #6, "<event>"
Print #6, "<private>" & objAppointment.Sensitivity & "</private>"
Print #6, "<start>" & Format(objAppointment.Start, "yyyymmdd") & "|" & Format(objAppointment.Start, "hhmmss") & "</start>"
Print #6, "<long>" & objAppointment.Duration & "</long>"
Print #6, "<description>" & objAppointment.Subject & "</description>"
Print #6, "<body>" & objAppointment.Body & "</body>"
Print #6, "<priority>" & objAppointment.Importance & "<priority>"
Print #6, "</event>"
Next
Print #6, "</calendar>"
Close #6
RetVal = Shell("" & webnav & " " & webfile & "?file=" & dirLocation & "&pass=" & password & "&chaine=" & chaine, 1)
End Sub
Ce que j'aimerai que ma macro face:
Pour chaque élément trouver dans mon agenda outlook,
Faire une appel à une url de mise à jour
Ceci donnerai:
Sub export()
Dim dirLocation As String
Dim webnav As String
Dim webfile As String
Dim password As String
Dim RetVal As Integer
Dim chaine As String
'Valeur modifiables pour l'utilisateur
'Chemin d'accès au fichier temporaire
dirLocation = "C:\temp.txt"
'Chemin d'accès à votre navigateur web
webnav = "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
'Chemin d'accès à la page de post d'évènements
webfile = "http://127.0.0.1/agenda/post_events.php"
'Password Défini lors de l'installation du script
'NB: vous pouvez laisser ce champs vide, mais vous serez obligé de l'entrer sur la page de post!
password = ""
If dirLocation = Null Or Len(dirLocation) = 0 Then
Exit Sub
End If
Dim objApplication As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim objAppointments As Outlook.MAPIFolder
Dim objAppointment As Outlook.AppointmentItem
Dim appointmentIndex As Integer
Set objApplication = CreateObject("Outlook.Application")
Set objNameSpace = objApplication.GetNamespace("MAPI")
Set objAppointments = objNameSpace.GetDefaultFolder(olFolderCalendar)
For appointmentIndex = 1 To objAppointments.Items.Count
Set objAppointment = objAppointments.Items.Item(appointmentIndex)
Appel à "http://monsiteweb/page_de_mise_a_jour.php?date_start="& Format(objAppointment.Start, "yyyymmdd") &"heure_start="&Format(objAppointment.Start, "hhmmss")&"&duration="&objAppointment.Duration&"desc="&objAppointment.Subject&"body="&objAppointment.Body
Next
End Sub
Seulement, je n'ai aps la moindre idée de comment faire ce genre d'appel, et je ne sais même pas si c'est possible.
Merci d'éclairer ma lanterne!