Bonjour,
J’ai créé un module qui export un tableau en Excel et sauvegarde le fichier dans un folder spécific.
J’ai créé un deuxième module permettant d’envoyer ce fichier par mail aux différentes personnes concernées.
Le point noir est que je développe sur un server qui se trouve en externe et sur lequel n’est pas installé outlook.
Pour tester cette fonction (mail) je lance le rapport via QV en local sur mon PC. Tout fonctionne parfaitement
Pour passer en live, ce rapport est mis sur une page HTML (accesspoint) et de là cette fonction ne marche plus.
Ci-dessous le code des modules.
Export Tableau
---------------
Envoie par mail
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 Sub SendTS dim v_Employee dim v_Week dim v_Year dim v_Maintenant v_Employee = ActiveDocument.Variables("v_Employee").GetContent.String v_Year = ActiveDocument.Variables("v_Year").GetContent.String v_Week = ActiveDocument.Variables("v_Week").GetContent.String v_Maintenant = ActiveDocument.Variables("v_Maintenant").GetContent.String filePath = "J:\...\Oli files"&v_employee&"-"&v_Year&"-"&v_Week&"-"&v_Maintenant&".xlsx" Set excelFile = CreateObject("Excel.Application") excelFile.Visible = TRUE Set WorkBook = excelFile.WorkBooks.Add Set Sheet = WorkBook.WorkSheets(1) Set Sheet2 = WorkBook.WorkSheets(2) Set Sheet3 = WorkBook.WorkSheets(3) Set tableToExport = ActiveDocument.GetSheetObject("CH123") Set chartProperties = tableToExport.GetProperties tableToExport.CopyTableToClipboard true chartCaption = tableToExport.GetCaption.Name.v Sheet.Range("A1") = chartCaption Sheet.Range("A1:J1").Merge Sheet.Paste Sheet.Range("A2") Sheet.Range("A:A").ColumnWidth = 14 Sheet.Range("E:E").ColumnWidth = 15.29 Sheet.Range("F:H").ColumnWidth = 11 Sheet.Range("I:I").ColumnWidth = 13 Sheet.Range("J:K").ColumnWidth = 30 Sheet.Range("A2:H1500").RowHeight = 15 ''---------------------------------------------------------------------------------------------- ' Set table2ToExport = ActiveDocument.GetSheetObject("CH131") Set chart2Properties = table2ToExport.GetProperties table2ToExport.CopyTableToClipboard true chart2Caption = table2ToExport.GetCaption.Name.v Sheet2.Range("I10") = chart2Caption Sheet2.Range("I10:N10").Merge Sheet2.Paste Sheet2.Range("I11") Sheet2.Range("I:N").ColumnWidth = 15 set LockSheet = Sheet LockSheet.Protect(Password ="Olivier") set LockSheet = Sheet2 LockSheet.Protect(Password ="Olivier") Sheet.Name = v_employee&"-"&v_Year&"-"&v_Week Sheet2.Name ="Overview"&v_employee&"-"&v_Year&"-"&v_Week Sheet3.Name ="Comments" excelFile.Visible = TRUE WorkBook.SaveAs filepath WorkBook.Close excelFile.Quit Set WorkBook = nothing Set excelFile = nothing End Sub
---------------
v_Tech = adresse mail.
Pourriez-vous me dire quelle modification doit être apportée pour que cela fonctionne aussi bien niveau programmation et/ou server.
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 Sub SendTSMail Dim MsO Dim ObjMail dim v_Employee dim v_Week dim v_Year dim v_Tech v_Employee = ActiveDocument.Variables("v_Employee").GetContent.String v_Year = ActiveDocument.Variables("v_Year").GetContent.String v_Week = ActiveDocument.Variables("v_Week").GetContent.String v_Maintenant = ActiveDocument.Variables("v_Maintenant").GetContent.String v_Tech = ActiveDocument.Variables("v_Tech").GetContent.String On Error Resume Next Set MsO = GetObject(, "Outlook.Application") If Err Then Err.Clear Set MsO = CreateObject("Outlook.Application") End If Set ObjMail = MsO.CreateItem(olMailItem) ObjMail.Subject = "TimeSheet" ObjMail.Recipients.Add ("v_Tech") On Error Resume Next Set MsO = GetObject(, "Outlook.Application") If Err Then Err.Clear Set MsO = CreateObject("Outlook.Application") End If Set ObjMail = MsO.CreateItem(olMailItem) ObjMail.Subject = "TimeSheet" ObjMail.Recipients.Add (v_Tech) ObjMail.Body = "" & vbCrLf ObjMail.Body = ObjMail.Body & "Beste collegas" & vbCrLf ObjMail.Body = ObjMail.Body & ""& vbCrLf ObjMail.Body = ObjMail.Body & ""& vbCrLf ObjMail.Body = ObjMail.Body & "In bijlage vindt je overzicht van je uren van de afgelopen periode." & vbCrLf ObjMail.Body = ObjMail.Body & ""& vbCrLf ObjMail.Body = ObjMail.Body & "Indien hier zaken in staan die niet correct zijn stuur deze mail ,voorzien van commentaar, door naar je teamleider."& vbCrLf ObjMail.Body = ObjMail.Body & "Het is niet mogelijk om deze mail te beantwoorden."& vbCrLf ObjMail.Body = ObjMail.Body & ""& vbCrLf ObjMail.Body = ObjMail.Body & "Met vriendelijk groet,"& vbCrLf ObjMail.Body = ObjMail.Body & ""& vbCrLf ObjMail.Body = ObjMail.Body & "" & vbCrLf Dim MessageAttachment MessageAttachment = "J:\...\Oli files"&v_employee&"-"&v_Year&"-"&v_Week&"-"&v_Maintenant&".xlsx" ObjMail.Attachments.Add(MessageAttachment).Displayname = v_employee&"-"&v_Year&"-"&v_Week&"-"&v_Maintenant&".xlsx" ObjMail.Send Set ObjMail=Nothing Set MsO=Nothing end sub
Exemple est-ce qu’en installant outlook sur le serveur cela suffirait ?
Merci
Partager