XL 2013 Activer automatiquement référence outlook par macro

Lisette

XLDnaute Junior
Bonjour à tous,

déjà, j'aimerais vous dire que je cherche la solution sur le net depuis 2 jours et que, même si de nombreux forums en parlent, je n'ai toujours pas réussi à mettre en application.

Voilà le sujet.

J'ai un Fichier Central qui regroupe toutes mes infos concernant des accidents.
De ce fichier, je génère par macro un fichier excel par accident, au coup par coup. Que j'appellerai Fichier Généré.
De ce Fichier Généré, je voudrais lancer une macro permettant d'envoyer une copie pdf de ce fichier par Outlook. Cette macro-ci, je l'ai, elle fonctionne, pas de problème.

Par contre.
Il faut, pour que ma fonction "envoi de mail" fonctionne, activer la référence "Microsoft Outlook 15.0 Object Library"
Je peux activer cette référence dans mon Ficher Central, mais ce faisant, ça ne l'active pas dans mon Fichier Généré.
Je souhaitais donc, dans ma macro "envoi de mail" forcer cette activation.

J'ai donc noté le code suivant :
Code:
Private Sub CommandButton5_Click()
Dim x As String
x = "C:\Program Files (x86)\Microsoft Office\Office15\MSOUTL.OLB"
ThisWorkbook.VBProject.References.AddFromFile x

Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
  
    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
   
    numero = Range("M5").Text
    Nom = numero & " - " & Range("e9") & " " & Range("e10")
    'If Nom_Fichier = "Faux" Then Exit Sub

    Nom_Fichier = "\\Groups\2 - ACCIDENTS DE TRAVAIL-TRAJET\2017\" & numero & " - " & Range("e9") & " " & Range("e10") & "\" & numero & " - " & Range("e9") & " " & Range("e10") & ".pdf"
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
      With oBjMail
        .To = "xxx.xxx@xxx.com"
        .Subject = "TITRE" 
        .Body = "Bonjour à tous xxxxx"
        .Attachments.Add Nom_fichier
        .Display 
        .Send
    End With
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Et, comme vous l'imaginez [vu que je post ici] ça ne roudjouijoui fonctionne pas XD
Pourriez-vous m'aider s'il vous plaît ?
Bonne journée,
Lisette
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Lisette :)

Il faut faire comme ceci, si le classeur généré est ouvert ActiveWorkbook.VBProject.References.AddFromFile x .
Sinon

Workbooks.Open("C:\Lisette\Bureau\Classeur généré.xls")
With ActiveWorkbook
.VBProject.References.AddFromFile x
.Close True
End With
 
Dernière édition:

Lisette

XLDnaute Junior
Bonjour Lone-Wolf,
Merci beaucoup pour ta réponse rapide.
J'ai changé un peu ma façon de faire et j'ai inclus ton bout de code dans la macro qui génère le Fichier Généré.
Ca a l'air de vouloir fonctionner, mais, j'ai un message d'erreur :
"L'accès par programme au projet visual basic n'est pas fiable"

Je crois qu'il y a une manip à faire dans les options excel genre Menu Outils d'Excel -> Macro -> Sécurité -> Onglets Sources fiables -> Cocher "Faire confiance au projet Visual Basic".** mais ce fichier étant commun, est-ce que, à ton avis, la manip sera valable sur tous les postes ?
Merci encore
Lisette
 

Discussions similaires

Statistiques des forums

Discussions
312 938
Messages
2 093 779
Membres
105 823
dernier inscrit
sawosko