Comment fixer active du classeur Excel à un e-mail
J'ai essayé toute la matinée pour obtenir ce script VBA pour attacher mon actif excel document généré automatiquement outlook message. Tout fonctionne bien si je déclare le chemin d'accès au fichier en tant que chaîne et de la joindre. Sauf que je voudrais joindre le chemin complet du fichier de l'actuel document excel au lieu d'utiliser une statique de la chaîne de valeur.
Voici mon code:
Private Sub CommandButton1_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim sAttach As String
Dim sTo As String
Dim sCC As String
'For To field
Set emailRng = Worksheets("Pre-Clearance Email").Range("E11:J14")
For Each cl In emailRng
sTo = sTo & ";" & cl.Value
Next
sTo = Mid(sTo, 2)
'For CC field
Set emailRngCC = Worksheets("Pre-Clearance Email").Range("E16:J19")
For Each cl In emailRngCC
sCC = sCC & ";" & cl.Value
Next
sCC = Mid(sCC, 2)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
'variable declarations for email body and attachment
strbody = "<BODY style=font-size:11pt;font-family:Calibri>Good Morning;<p>Please see the attached aliases for validation. Please let me know if you have any questions.<p>Thank you.</BODY>"
sAttach = "K:\CRM Support\Data\Systematic Trade Recon (1).xlsm"
'the below code adds a users default signature to the email
With OutMail
.Display
End With
signature = OutMail.HTMLBody
With OutMail
.to = sTo
.CC = sCC
.Subject = "STR Pre-Clearance"
.HTMLBody = strbody & signature
.Attachments.Add (ActiveDocument.FullName)
'.Attachments.Add sAttach
.Display 'Instead of .Display, you can use .Send to send the email _
or .Save to save a copy in the drafts folder
End With
Le compilateur me donne une erreur à cette ligne:
.Attachments.Add (ActiveDocument.FullName)
J'ai fait quelques recherches, et a tenté de résoudre le problème moi-même, mais je ne peux pas comprendre comment le faire ce script joindre le fichier actif à ce message outlook. Comme vous pouvez le voir par mon code, mon option de sauvegarde est d'utiliser une variable de type chaîne et d'une adresse statique à joindre le fichier, mais je préfère faire ce script plus polyvalent que cela.
Ici est l'un des sites que j'ai trouvé qui m'a donné cette idée pour commencer: Ici
- C'est
ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
.Attachments.Add (ActiveWorkbook.FullName)
est ce qui a fonctionné pour moi. Il ressemble àActiveWorkbook.Path
les tentatives de lier l'ensemble de l'annuaire, ce qui est bien trop grand. >_< Merci pour l'astuce, je me rends compte maintenant que j'aurais été à l'aide deActiveWorkbook
.- Corrigez-moi si je me trompe, mais n'est-ce pas
ActiveWorkbook.FullName
le même queActiveWorkbook.Path & "\" & ActiveWorkbook.Name
? - Oui c'est la même chose, j'ai juste oublié qu'il existait.
- +1 Merci pour l'aide et les explications.
Vous devez vous connecter pour publier un commentaire.
Bien, après plus d'effort, j'ai été en mesure d'obtenir le classeur à joindre à la perfection. Ici, c'est la révision que j'ai faite à la OutMail Objet dans mon orginales code:
J'ai pensé que je pourrais répondre à ma propre question afin de ne pas s'attarder sans une réponse technique. Peut-être que ça va aider quelqu'un dans le futur.
Le correctif devrait en fait être: