Bonjour,
J'ai un code qui me permet d'envoyer une feuille d'un classeur en vba qui fonctionne correctement mais le souci c'est lorsque le destinataire ouvre cette feuille, la fenêtre "activer les macros" s'affiche ainsi "le classeur contient des liens...." s'ouvre. Ce qui n'est pas gênant mais est-ce que l'on peut ajouter un code qui permettrait de désactiver macro et lien pour l'envoi?
Voici le code :
Merci d'avance.
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 Option Explicit Sub EnvoiMail() Application.DisplayAlerts = False 'Supprime l'alerte Enregistrer Dim objMessage As Variant 'ici on cré le chemin complet de ton fichier qui sera créé plus bas Dim chemin, nom As String chemin = ActiveWorkbook.Path nom = "Devis.xls" 'Copie la feuille dans le fichier à envoyer ThisWorkbook.ActiveSheet.Copy ' ActiveSheet.Shapes("Rectangle 8").Visible = False 'Masquer le bouton d'envoi et autres formes ActiveSheet.Shapes("CommandButton1").Visible = False ActiveSheet.Shapes("Oval 19").Visible = False ActiveSheet.Shapes("Rectangle 20").Visible = False ActiveSheet.Shapes("Rectangle 21").Visible = False ActiveSheet.Shapes("Rectangle 22").Visible = False 'Enregistre le fichier à envoyer avec le nom que l'on a créé plus haut ActiveWorkbook.SaveAs chemin & "\" & nom Application.DisplayAlerts = False ActiveWorkbook.SaveAs nom 'Ferme le fichier ActiveWorkbook.Close Application.DisplayAlerts = True Call Procédure_Envoi 'Appel procédure d'envoi Kill ActiveWorkbook.Path & "\" & "Devis.xls" End Sub Sub Procédure_Envoi() Dim messageHTML As Variant Dim objMessage As Variant Dim piece_jointe As Variant '----------------------------------------crée le fichier à envoyer On Error GoTo errorHandler 'on cré une instance de la reference "cdo" (message) Set objMessage = CreateObject("CDO.Message") 'avec le message blablabla blablabla objMessage.Subject = "Devis" & " " & Range("D10").Value & " " & "du" & " " & Range("B13").Value objMessage.From = Worksheets("Présentation").Range("K52").Value 'adresse mail de l'expéditeur n'est pas obligatoire objMessage.To = Worksheets("Présentation").Range("K54").Value 'Email du destinataire doit-être correct ici objMessage.Cc = Worksheets("Présentation").Range("K56").Value 'Email du destinataire en copie objMessage.Bcc = Worksheets("Présentation").Range("K58").Value 'Email du destinataire en copie cachée 'Crée le corps du message avec insertion de sauts de ligne objMessage.TextBody = "Bonjour" & " " & Worksheets("Présentation").Range("C62").Value & "," & vbCrLf & vbCrLf _ & "Veuillez trouvez ci-joint le devis du " & Range("D10").Value & "." & vbCrLf & vbCrLf _ & "Cordialement " & vbCrLf _ & Worksheets("Présentation").Range("C66").Value & vbCrLf _ & Worksheets("Présentation").Range("C67").Value & vbCrLf & vbCrLf _ & Worksheets("Présentation").Range("C64").Value & vbCrLf _ & Worksheets("Présentation").Range("K61").Value & vbCrLf _ & Worksheets("Présentation").Range("K62").Value & vbCrLf _ & Worksheets("Présentation").Range("K63").Value & vbCrLf _ & Worksheets("Présentation").Range("K64").Value & vbCrLf & vbCrLf _ & Worksheets("Présentation").Range("K52").Value piece_jointe = ActiveWorkbook.Path & "\" & "Devis.xls" ' "Devis.xls" objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'remplacer ici le smtp par celui de son fournisseur d'accés objMessage.Configuration.Fields.Update objMessage.AddAttachment (piece_jointe) objMessage.Send MsgBox "Le mail a été bien envoyé !" 'Confirmation de l'envoi 'si erreur on sort de la procédure Exit Sub errorHandler: 'description de l'erreur survenue MsgBox Err.Description End Sub
Cordialement
Dan
Partager