Afficher une liste des calendriers Outlook
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Bonjour Forum,
en lien avec ce sujet:
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 SubMerci!
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+!
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Merci je test et vous reviens!!
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Malheureuse la boite combobox est complètement vide
- Messages
- 409
- Excel
- 365, Anglais
- Inscrit
- 07/03/2016
- Emploi
- Entrepreneur en construction
Bonjour Thev!
En ajoutant
On Error Resume Nextau début de la sub stocker_calendriers
et en démarrant la procédure stocker_calendriers à l'initialisation du Userform ca fonctionne!
Merci!!