Macro pour exporter le calendrier complet outlook en format vcalendar (vcs)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 38 098 fois - Téléchargée 29 fois

Contenu du snippet

J'aurai aimé pouvoir trouver cette option directement dans Outlook, mais apparemment ce n'était pas prévu.
Il est possible d'enregistrer chaque événement un par un en format vcs (vCalendar) mais pas d'exporter tout le calendrier.
Voici donc une petite macro permettant d'exporter tous les événements dans un fichier qui peut ensuite être importé dans un agenda collectif en ligne (WebCalendar par exemple).
Il doit être assez simple d'en faire une version pour iCalendar.

Source / Exemple :


Sub export()

Dim dirLocation As String
   
    dirLocation = InputBox("Donnez un emplacement sur votre disque et un nom de fichier avec l'extsension .vcs (e.g., c:\cal.vcs). Vous pourrez importer ce fichier à partir de WEbcalendar")
    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, "BEGIN:VCALENDAR"
    Print #6, "PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN"
    Print #6, "VERSION:1.0"
    For appointmentIndex = 1 To objAppointments.Items.Count
        Set objAppointment = objAppointments.Items.item(appointmentIndex)
        Print #6, "BEGIN:VEVENT"
        If objAppointment.AllDayEvent = True Then
          Print #6, "TRANSP:1"
        End If
        Print #6, "DTSTART:" & Format(objAppointment.Start, "yyyymmdd") & "T" & Format(objAppointment.Start, "hhmmss") & "Z"
        Print #6, "DTEND:" & Format(objAppointment.Start, "yyyymmdd") & "T" & Format(objAppointment.Start, "hhmmss") & "Z"
        Print #6, "SUMMARY;ENCODING=QUOTED-PRINTABLE:" & objAppointment.Subject
        Print #6, "DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & objAppointment.Body
        Print #6, "PRIORITY:" & objAppointment.Importance
        Print #6, "END:VEVENT"
     
    Next
    Print #6, "END:VCALENDAR"
    Close #6
    MsgBox "Le calendrier a été exporté dans : " & dirLocation
    End Sub

Conclusion :


Bon, j'espère que ce sera utile à certains

A voir également

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
14 mars 2015

Bonjour,
Ayant de multiples doublons
j'ai exporté Outlook en cal.vcs;
j'ai créé un fichier Nouveau.vcs expurgé,
j'ai "délété" tous les Evénements dans Outlook
j'ai Importé le .vcs
Tout est bien
SAUF QUE LES LETTRES NON COURANTES (accentuées, ç etc) ONT DISPARU dans Outlook

QUE FAIRE ?????
Remerciements
bien@vous
Messages postés
1
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
19 novembre 2008

Pour ceux à qui ça interesse encore, pour que l'heure soit en GMT il faut remplacer les lignes ci-dessus (Outlook 2007) :

Print #6, "DTSTART:" & Format(objAppointment.Start, "yyyymmdd") & "T" & Format(objAppointment.Start, "hhmmss") & "Z"
Print #6, "DTEND:" & Format(objAppointment.Start, "yyyymmdd") & "T" & Format(objAppointment.Start, "hhmmss") & "Z"

par ---->

Print #6, "DTSTART:" & Format(objAppointment.StartUTC, "yyyymmdd") & "T" & Format(objAppointment.StartUTC, "hhmmss") & "Z"
Print #6, "DTEND:" & Format(objAppointment.EndUTC, "yyyymmdd") & "T" & Format(objAppointment.EndUTC, "hhmmss") & "Z"
Messages postés
5
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
31 octobre 2008

salut à tous

quelqu'un saurait-il transposer ce code pour enregistrer l'agenda au format html dans un répertoire spécifique ? J'ai besoin d'une macro qu'on peut executer par une touche Ctrlxxx ou bien une macro qui s'execute sur une action particulière.

Merci
Messages postés
1
Date d'inscription
mercredi 16 juillet 2008
Statut
Membre
Dernière intervention
16 juillet 2008

Bonjour,

Il y a t'il un lien explixcant comment importer cette macro dans Outlook 2007 ?

Cordialement
Messages postés
3
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
14 janvier 2008

pour faire avancer un peu le schmilibilik, j'ai trouvé ici http://www.ietf.org/rfc/rfc2445.txt des infos sur les fuseaux horaires et comment les utiliser: chercher le texte suivant, page 137

BEGIN:VCALENDAR
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:US-Eastern
BEGIN:STANDARD
DTSTART:19981025T020000
RDATE:19981025T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19990404T020000
RDATE:19990404T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:19980309T231000Z
UID:guid-1.host1.com
ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:
MAILTO:employee-A@host.com
DESCRIPTION:Project XYZ Review Meeting
CATEGORIES:MEETING
CLASS:PUBLIC
CREATED:19980309T130000Z
SUMMARY:XYZ Project Review
DTSTART;TZID=US-Eastern:19980312T083000
DTEND;TZID=US-Eastern:19980312T093000
LOCATION:1CP Conference Room 4350
END:VEVENT
END:VCALENDAR
Afficher les 19 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.