Macro Export Outlook Calendar

HowTo Macro Export Outlook Calendar

  •  Thread starter
  •  Admin
  • Objectif

    Créer une macro VBA Outlook qui exporte toutes les données d'un planning (calendrier), sélectionné vers une feuille Excel tout en permettant de choisir une période.

    Avant d'exécuter ce code, assurez-vous d'avoir installé Excel sur votre système et que vous avez un accès approprié à Outlook via VBA.

    Étapes pour créer la macro :

    1. Ouvrez Outlook.
    2. Appuyez sur `ALT + F11` pour ouvrir l'éditeur VBA.
    3. Dans le menu, allez à `Insertion > Module` pour créer un nouveau module.
    4. Copiez le code ci-dessous dans le module créé.

    Code VBA :

    [syntax=vbscript]Sub ExporterCalendrierVersExcel()
    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olCalendar As Outlook.Folder
    Dim olAppointment As Outlook.AppointmentItem
    Dim olApptItems As Outlook.Items
    Dim startDate As Date
    Dim endDate As Date
    Dim ws As Object
    Dim i As Integer

    ' Initialiser Outlook
    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olCalendar = olNamespace.GetDefaultFolder(olFolderCalendar)

    ' Demander à l'utilisateur d'entrer la période
    startDate = InputBox("Entrez la date de début (format JJ/MM/AAAA):", "Date de début")
    endDate = InputBox("Entrez la date de fin (format JJ/MM/AAAA):", "Date de fin")

    ' Filtrer les éléments du calendrier selon la date sélectionnée
    Set olApptItems = olCalendar.Items
    olApptItems.Sort "[Start]"
    olApptItems.IncludeRecurrences = True

    ' Créer une nouvelle feuille Excel
    Set ws = CreateObject("Excel.Application")
    ws.Visible = True
    ws.Workbooks.Add

    ' En-têtes de colonnes
    ws.Cells(1, 1).Value = "Titre"
    ws.Cells(1, 2).Value = "Début"
    ws.Cells(1, 3).Value = "Fin"
    ws.Cells(1, 4).Value = "Lieu"
    ws.Cells(1, 5).Value = "Description"

    ' Exporter les rendez-vous dans la feuille Excel
    i = 2 ' Commencer à la deuxième ligne
    For Each olAppointment In olApptItems
    If olAppointment.Start >= startDate And olAppointment.Start <= endDate Then
    ws.Cells(i, 1).Value = olAppointment.Subject
    ws.Cells(i, 2).Value = olAppointment.Start
    ws.Cells(i, 3).Value = olAppointment.End
    ws.Cells(i, 4).Value = olAppointment.Location
    ws.Cells(i, 5).Value = olAppointment.Body
    i = i + 1
    End If
    Next olAppointment

    ' Formatage de la feuille Excel
    ws.Columns("A:E").AutoFit
    ws.Cells(1, 1).EntireRow.Font.Bold = True
    ws.Cells(1, 1).AutoFilter

    ' Nettoyer
    Set olAppointment = Nothing
    Set olApptItems = Nothing
    Set olCalendar = Nothing
    Set olNamespace = Nothing
    Set olApp = Nothing
    End Sub[syntax]

    Comment utiliser cette macro :

    1. Après avoir collé le code, fermez l'éditeur VBA.
    2. De retour dans Outlook, allez dans l'onglet "Développeur", puis cliquez sur "Macros".
    3. Sélectionnez `ExporterCalendrierVersExcel` dans la liste et cliquez sur "Exécuter".
    4. Suivez les instructions pour saisir la date de début et la date de fin.
    5. Les données seront exportées vers une nouvelle feuille Excel.

    Remarques :

    - Assurez-vous d'avoir les permissions nécessaires pour accéder aux données de calendrier.
    - Le format des dates doit être respecté (JJ/MM/AAAA) pour que la fonction `InputBox` fonctionne correctement.
    - Si votre Outlook est configuré dans une autre langue ou paramètre de région, vérifiez que les formats de date et autres sont appropriés à votre configuration.

    Enjoy Coding :)
     
    Similar content Most view View more
    Back
    Top