Microsoft 365 Mail et attachment.pdf

Claudy

XLDnaute Accro
Bonjour,
je voudrais envoyer par mail une facture au format .pdf, en pièce jointe.
L'adresse de celle ci se trouve en C2, sous la forme \\croix-rouge.prv\hum\MCR**\Tresorerie***\VSL\VSL 2022 318 Aline.pdf.
Et là ça coince:
Code:
Sub testmail()
  ' Créer unes instance outlook
  Set OutApp = CreateObject("Outlook.Application")
  On Error Resume Next
  With OutApp.Createitem(olMailItem)
    
    .SentOnBehalfOfName = "tresorerie.mcr@croix rouge.be" ' Adresse de l'émetteur (pas obligatoire)
    .To = Range("B2").Text 'là OK
    '.CC = "AdresseMailEnCopie"
    '.BCC = "AdresseMailCopieCachée"
    .Subject = "Facture VSL de " & Range("D2").Text
    .HTMLBody = "Bonjour,<br>" _
      & "Vous trouverez ci-joint... blabla"
      
    'C'est ici que ça coince....
    ' Joinde le PDF dont l'adresse se trouve en C2
    .Attachments.Add = Range("C2").Text
    'Adresse sous forme en C2: \\croix-rouge.prv\hum\MCR**\Tresorerie***\VSL\VSL 2022 318 Aline.pdf
     
    .Display  ' Pour afficher la signature si existante
  End With
  ' Libérer la mémoire
  Set OutMail = Nothing: Set OutApp = Nothing: Set Sht = Nothing
End Sub

Merci pour votre aide,
Claudy
 

Phil69970

XLDnaute Barbatruc
Bonjour @Claudy

Je te propose :

VB:
'Essaye 1 ==> Si par exemple l'adresse de ton fichier est dans la cellule C2
       .Attachments.Add ActiveSheet.Range("C2").Value

'Essaye 2 ==> adresse en dur de ton fichier
       .Attachments= "C:\Monchemin\Surmondisquedur\montruc\monmachin.xlsm"

'Essaye 3 ==> 'MonFichier est déclaré avec son chemin un peu plus haut
       .Attachments.Add (MonFichier)

Précision :

Dans l'essai 1 ==> Dans la cellule C2 de mon exemple tu dois avoir le chemin complet du fichier
exemple : C:\Monchemin\Surmondisquedur\montruc\monmachin.xlsm
Si chemin réseau ==> \\Monchemin\MonRepServeur\Montruc\Monmachin.xlsm


Dans l'essai 2 ==>Pour un chemin réseau
.Attachments= "\\Monchemin\MonRepServeur\Montruc\Monmachin.xlsm"


Dans l'essai 3 ==> MonFichier=ThisWorkbook.Path & "\" & ThisWorkbook.Name
(peut être il faudra remplacer ThisWorkbook.Name par ThisWorkbook.FullName )
donc ==> .Attachments.Add (MonFichier)

Por acces serveur : il faut que tout le monde est accès au serveur ET avec la même arborescence.

Merci de ton retour

@Phil69970
 

Claudy

XLDnaute Accro
Bonjour @Claudy

Je te propose :

VB:
'Essaye 1 ==> Si par exemple l'adresse de ton fichier est dans la cellule C2
       .Attachments.Add ActiveSheet.Range("C2").Value

'Essaye 2 ==> adresse en dur de ton fichier
       .Attachments= "C:\Monchemin\Surmondisquedur\montruc\monmachin.xlsm"

'Essaye 3 ==> 'MonFichier est déclaré avec son chemin un peu plus haut
       .Attachments.Add (MonFichier)

Précision :

Dans l'essai 1 ==> Dans la cellule C2 de mon exemple tu dois avoir le chemin complet du fichier
exemple : C:\Monchemin\Surmondisquedur\montruc\monmachin.xlsm
Si chemin réseau ==> \\Monchemin\MonRepServeur\Montruc\Monmachin.xlsm


Dans l'essai 2 ==>Pour un chemin réseau
.Attachments= "\\Monchemin\MonRepServeur\Montruc\Monmachin.xlsm"


Dans l'essai 3 ==> MonFichier=ThisWorkbook.Path & "\" & ThisWorkbook.Name
(peut être il faudra remplacer ThisWorkbook.Name par ThisWorkbook.FullName )
donc ==> .Attachments.Add (MonFichier)

Por acces serveur : il faut que tout le monde est accès au serveur ET avec la même arborescence.

Merci de ton retour

@Phil69970
Bonjour et merci,
j'ai trouvé:
tout simplement:
.Attachments.Add Range("C2").Value

Bonne soirée,

Claudy
 

Phil69970

XLDnaute Barbatruc
Re

Tu es sur que tu as trouvé toute seule ?

j'ai trouvé:
tout simplement:
.Attachments.Add Range("C2").Value

Donc c'est le 1ere essai de ma réponse !!! o_O

'Essaye 1 ==> Si par exemple l'adresse de ton fichier est dans la cellule C2 .Attachments.Add ActiveSheet.Range("C2").Value

Posé une question c'est bien lire les réponses et les valider c'est mieux !!! ;)

@Phil69970
 

Discussions similaires