Afficher une liste des calendriers Outlook

Bonjour Forum,

en lien avec ce sujet:

https://forum.excel-pratique.com/excel/afficher-une-liste-des-categories-outlook-calendars-dans-un-c...

J'aimerais pouvoir faire maintenant afficher une liste des calendriers, pour ensuite sélectionner une categorie du calendrier ...

Donc ce serait la même manip, mais pour la liste des calendriers

En essayant d'adapter .. mais ca ne fonctionne pas ...

Sub Calendars(ByRef zCalendars() As String)
Dim s As String
    Dim objOL As Outlook.Application
    Dim objNS As Outlook.Namespace
    Dim objExpCal As Outlook.Explorer
    Dim objNavMod As Outlook.CalendarModule
    Dim objNavGroup As Outlook.NavigationGroup
    Dim objNavFolder As Outlook.NavigationFolder
    Dim objFolder As Outlook.Folder
    Dim colExpl As Outlook.Explorers

 ReDim zCalendars(0)
 Dim lNb As Long

s = ""
Set objOL = Outlook.Application
    Set objNS = objOL.Session
    Set colExpl = objOL.Explorers
    Set objExpCal = objNS.GetDefaultFolder(olFolderCalendar).GetExplorer
    Set objNavMod = objExpCal.NavigationPane.Modules.GetNavigationModule(olModuleCalendar)

      For Each objNavGroup In objNavMod.NavigationGroups
        ReDim Preserve zCalendars(lNb)
        On Error Resume Next
    Set objFolder = objNavFolder.Folder
        zCalendars(lNb) = s & objNavFolder.DisplayName & vbCrLf
        lNb = lNb + 1
        'olstrOutput = olstrOutput & olobjCategory.Name & vbCrLf
     Next

 'MsgBox olstrOutput
    Set objOL = Nothing
    Set objNS = Nothing
    Set objNavMod = Nothing
    Set objNavGroup = Nothing
    Set objNavFolder = Nothing
    Set objFolder = Nothing
    Set colExpl = Nothing
 End Sub

Private Sub UserForm_Initialize()
    Dim aCalendars() As String
    Dim i As Long

    Calendars aCalendars()

    Me.ComboBox1.List = aCalendars()

End Sub

Merci!

Le but étant de developper un exportateur de taches Microsoft Project vers des Outlook Calendars Appointments

Petit vidéo de l'avancement

https://screenrec.com/share/1Ldhqoiw4v

J'ai fait beaucoup de vba dans excel (pour excel), mais j'avoue que lorsqu'il sagit de faire le pont entre 2 logiciels de la suite office .. j'ai encore beaucoup de lacunes.

Il faudrait aussi que je trouve comment sélectionner le calendrier, sa catégorie, et ensuite pouvoir faire une mise à jour des tâches qui sont déjà existentes .. ouff ... ca va encore en faire beaucoup de question à se poser!

Je poste ici ca il y a 100 fois plus de réponse dans le forum Excel que dans Office .. et la réponse est valable aussi dans excel

A+!

Bonjour,

ci-joint exemple de code

'// ... cocher les références des bibliothèques Microsoft Outlook et Scripting Runtime
Option Explicit

Public dic_calendriers As New Dictionary

Sub stocker_calendriers()
    Dim OLApp As New Outlook.Application
    Dim explorateur As Outlook.Explorer
    Dim module As Outlook.NavigationModule
    Dim module_calendrier As Outlook.CalendarModule
    Dim groupe_calendriers As Outlook.NavigationGroup
    Dim calendrier_dossier As Outlook.NavigationFolder
    Dim calendrier As Outlook.Folder
    Dim nom_calendrier As String

    '// assignation explorateur
    Set explorateur = OLApp.ActiveExplorer

    '// stockage des calendriers
    For Each module In explorateur.NavigationPane.Modules
        If module.Class = olCalendarModule Then
            Set module_calendrier = module
            For Each groupe_calendriers In module_calendrier.NavigationGroups
                For Each calendrier_dossier In groupe_calendriers.NavigationFolders

                    'assignation du calendrier
                    Set calendrier = calendrier_dossier.Folder

                    'nom du calendrier
                    nom_calendrier = calendrier.Name & "-" & Split(calendrier.FolderPath, "\")(2)

                    'stockage calendriers dans le dictionnaire des calendriers
                    Set dic_calendriers(nom_calendrier) = calendrier

                Next calendrier_dossier
            Next groupe_calendriers
            Exit For
        End If
    Next module

End Sub

Private Sub UserForm_Initialize()

    Me.ComboBox1.List = dic_calendriers.Keys

End Sub

Private Sub ComboBox1_Change()
    Dim calendrier As Outlook.Folder
    Dim item As Object
    Dim rdv As Outlook.AppointmentItem

    Set calendrier = dic_calendriers(Me.ComboBox1.Value)
    For Each item In calendrier.Items
         If item.Class = olAppointment Then Set rdv = item
    Next item
End Sub

Merci je test et vous reviens!!

Malheureuse la boite combobox est complètement vide

Bonjour Thev!

En ajoutant

On Error Resume Next

au début de la sub stocker_calendriers

et en démarrant la procédure stocker_calendriers à l'initialisation du Userform ca fonctionne!

Merci!!

Rechercher des sujets similaires à "afficher liste calendriers outlook"