Bonjour,
Je sais que la question a déjà été posée plein de fois sur différents forums, mais je ne comprends pas les réponses, ou je n'arrive pas à les adapter, je ne sais pas, c'est pourquoi je sollicite votre aide...
J'ai fait un petit code qui permet d'enregistrer automatiquement des rendez-vous dans Outlook à partir d'une feuille Excel.
Cela fonctionne, mais les RDV sont toujours enregistrés dans mon calendrier personnel, et pas dans le calendrier que je partage avec mon équipe... Comment choisir un autre calendrier que celui par défaut ?......
Voilà mon code :
Je ne sais pas si le nom du calendrier n'est pas le bon, ni ce qu'il se passe...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 Private Sub CommandButton1_Click() Dim oOutlook As Outlook.Application Dim oAppointment As Outlook.AppointmentItem Dim namespaceOutlook As Outlook.Namespace Dim DossierCalendrier As Outlook.MAPIFolder Dim Cell As Range Dim DateDebut As String Dim ol As New Outlook.Application Dim ns As Outlook.Namespace Dim fdCalendar As Outlook.MAPIFolder Dim objItem As Object Dim objAppt As AppointmentItem Dim i, j, nCount As Integer Dim answer As Integer Dim strName As String Dim objRecip As Outlook.Recipient Dim objDummy As Outlook.MailItem ' ### name of person whose Calendar you want to use ### strName = "L&D" Set oOutlook = CreateObject("Outlook.Application") Set ns = ol.GetNamespace("MAPI") 'Reference the default Calendar folder Set objDummy = ol.CreateItem(olMailItem) 'Set fdCalendar = ns.GetDefaultFolder(olFolderCalendar) Set objRecip = objDummy.Recipients.Add(strName) objRecip.Resolve If objRecip.Resolved Then On Error Resume Next Set fdCalendar = _ ns.GetSharedDefaultFolder(objRecip, _ olFolderCalendar) End If i = 1 j = 0 'nCount = fdCalendar.Items.Count nCount = 500 Do While i < nCount Set objItem = fdCalendar.Items(i) If objItem.Class = olAppointment Then Set objAppt = objItem If (objAppt.Subject Like "TL profile reactivation*") Then objAppt.Delete j = j + 1 End If End If i = i + 1 Set objItem = Nothing Set objAppt = Nothing Loop MsgBox (j - 1 & " items have been deleted"), vbOKOnly Set fdCalendar = Nothing Set ns = Nothing Set ol = Nothing 'on crée ensuite les objets Set oOutlook = CreateObject("Outlook.Application") Set namespaceOutlook = oOutlook.GetNamespace("MAPI") 'plage de donnée For Each Cell In Sheets("Menu").Range("L2:L60") If Cell = "On leave-licence access" Then 'recherche dans la plage si il existe des données à inscrire 'définit le dossier calendrier 'GetDefaultFolder renvoit le calendrier du compte actif Set DossierCalendrier = namespaceOutlook.GetDefaultFolder(olFolderCalendar) 'on crée un nouveau rendez-vous Set oAppointment = DossierCalendrier.Items.Add With oAppointment .MeetingStatus = olNonMeeting .Subject = "TL profile reactivation for user " & Cell.Offset(0, -7) & " " & Cell.Offset(0, -6) & " " & Cell.Offset(0, -5) .Body = "Change Status - ""On leave - licence access"" to ""Active""" .Start = CDate(Cell.Offset(0, -2)) + 9 / 24 .Duration = 30 .Save End With MsgBox "Le rappel pour " & Cell.Offset(0, -7) & " " & Cell.Offset(0, -6) & " a été ajouté au calendrier" End If Next Cell 'Libération des variables. Set oAppointment = Nothing Set oOutlook = Nothing Fin_Execution: Exit Sub Err_Execution: MsgBox Err.Description, vbExclamation Resume Fin_Execution End Sub
J'ai recopié sans trop comprendre une petite procédure que j'avais trouvée sur le web pour choisir son calendrier, mais je ne sais pas appeler cette fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Sub ListerRépertoires() Dim MyNameSpace, Folder, SubFolder Dim strTemp As String On Error GoTo Erreur Set objOutlook = New Outlook.Application Set MyNameSpace = objOutlook.GetNamespace("MAPI") 'Lister les répertoires principaux For Each Folder In MyNameSpace.Folders strTemp = strTemp & Folder.Name & vbCrLf strTemp = strTemp & GetSubFolder(Folder) 'recherche des sous-répertoires Next Set MyNameSpace = Nothing Set objOutlook = Nothing MsgBox strTemp Exit Sub Erreur: MsgBox Err.Description End Sub Function GetSubFolder(Folder) As String Dim strTemp As String Dim FolderTemp For Each FolderTemp In Folder.Folders If FolderTemp.DefaultItemType = olAppointmentItem Then 'type Calendrier strTemp = strTemp & vbTab & FolderTemp.Name & vbCrLf End If Next GetSubFolder = strTemp End Function
Vraiment, un grand merci à qui pourra m'aider sur ce point !!!
Partager