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 de ActiveWorkbook.
  • Corrigez-moi si je me trompe, mais n'est-ce pas ActiveWorkbook.FullName le même que ActiveWorkbook.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.
InformationsquelleAutor | 2014-03-07