VBA mail pdf sharepoint

Bonjour,

J'ai un fichier Excel avec des modules VBA dont un pour l'envoi de mail avec un fichier pdf en PJ

L' Excel fonctionne parfaitement si le fichier est sur mon disque C

Par contre j'ai déplacé le fichier sur un SharePoint pour l'utiliser à plusieurs et depuis le code de fonctionne plus, le fichier pdf de ce créer pas.

Voici le code :

Sub MessageOutlook()

    'Declaration des variable

Dim MaMessagerie As Object
Dim MonMessage As Object
Dim MonContenu As String
Dim AdresseEmail As String
Dim DdeTransport As String
Dim MonClasseur As String

    ' Affectation Variables

Set MaMessagerie = CreateObject("outlook.Application")
Set MonMessage = MaMessagerie.createitem(0)
AdresseEmail = "persoadresse@mail.com"
DdeTrsp = " " & Range("H8") & "_" & Range("C4") & "_" & Range("D4") & "_" & Range("E4") & "_" & Range("G4") & "_" & Range("H4") & "_" & Range("I4") & "_" & Format(Date, "dd_mm_yyyy")

    'Creation fichier PDF

Feuil8.ExportAsFixedFormat xlTypePDF, ActiveWorkbook.Path & "\" & DdeTrsp & ".pdf", xlQualityStandard, True, False, 1, 1, False

    'Creation du message à envoyer

With MonMessage
.To = AdressEmail
.Subject = " " & Range("H8") & "_" & Range("C4") & "_" & Range("D4") & "_" & Range("E4") & "_" & Range("G4") & "_" & Range("H4") & "_" & Range("I4").Value

MonContenu = "Bonjour," & vbNewLine & vbNewLine & _
"voici le fichier " & vbNewLine & _
"Merci de votre retour."

'J'ai enlevé le contenu vs signature
'.body = MonContenu

MonClasseur = ActiveWorkbook.Path & "\" & DdeTrsp & ".pdf"

.attachments.Add (MonClasseur)
.Display

    End With

'on supprime le fichier temporaire

Kill ActiveWorkbook.Path & "\" & DdeTrsp & ".pdf"

'liberer memoire Outlook
Set MaMessagerie = Nothing

End Sub

Merci pour votre aide.

Bonjour tryomph,

Est-ce le pdf qui ne se créer pas ou le fichier pdf sur le sharepoint qui ne se met pas en pièce jointe du mail ?

Ce n'est pas clair...

Merci et bonne journée,

Baboutz

Ce que j'avais compris du code c'est qu'il créer un pdf du document mais juste pour l'envoie du mail, il ne sauvegarde pas de pdf dans un dossier.

Depuis que le fichier excel est sur Sharepoint, j'ai ceci en PJ de mail qui s'ouvre :

1

Pas de pdf

Alors que normalement j'ai ceci :

4

Pdf OK mais non sauvegardé, car lorsque j'envoie le mail, le pdf d'existe plus !

J'ai donc sur le fichier excel cette erreur :

2

Et ceci dans le code :

3

Merci pour l'aide.

Ok,

Il faut que tu vérifies que le path que tu récupères est correcte. Pour un sharepoint, c'est un https:// normalement.

Teste ce code et dis moi si dans la msgbox tu as bien un lien internet :

    'Creation fichier PDF
msgbox ActiveWorkbook.Path
Feuil8.ExportAsFixedFormat xlTypePDF, ActiveWorkbook.Path & "\" & DdeTrsp & ".pdf", xlQualityStandard, True, False, 1, 1, False

Déjà merci pour ton aide et explication ;-)

En effet, j'au un message avec une adresse https://.....

Je dois modifier quoi ?

Ok, pour le moment on continue les tests.

Peux-tu tester juste cette macro :

Sub test()

    Feuil8.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=ActiveWorkbook.Path & "\test.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

End Sub

Chez moi, cette macro créer un fichier pdf de mon fichier excel sur sharepoint. Peux-tu exécuter la macro et me dire si ça marche bien chez toi également ?

Sa marche oui il est créer dans SharePoint, dans le même dossier que le fichier Excel.

Okay super ! Le problème vient donc du fait que tu veuilles l'insérer en pièce jointe dans le mail.

Essaye de remplacer cette ligne de code :

.attachments.Add (MonClasseur)

Par :

.Attachments.Add (MonClasseur), 7

Je n'ai plus la message "le téléchargement a échouée" mais la PJ semble etre un lien ou je ne sais quoi qui m'ouvre une page internet blanche avec comme adresse :

6 5

Et j'ai toujours le defaut dans le code pour le kill :

3

Je souhaiterai que la PJ soit vraiment un fichier pdf que le destinataire du mail ouvre sans devoir aller sur internet.

Merci.

D'acc donc n'ajoute pas en effet le ", 7".

Mais en fait, pourquoi s'embêter à créer le fichier sur SharePoint juste pour l'intégrer au mail ? Autant exporter la feuille sur ton bureau, la joindre au mail et la supprimer ensuite, non ? Cela évitera les problème avec SharePoint même si ton fichier Excel se trouve sur SharePoint

Pardon, j'ai surement mal expliqué en effet, ceci étant j'ai appris quelque truc comme le message box ;-) merci

Mais en effet, pour reprendre à 0 mon code, ce que je souhaite faire c'est exactement cela :

envoyer un mail avec en pj le pdf de la feuille 8 sans le garder quelque part, ni sur mon pc, ni sur le SharePoint ;-) mais tout cela devrai ce faire en automatique via le code vba.

Le code créer le pdf, ouvre un nouveau mail avec ce pdf et le supprime (ou ne le sauvegarde pas ;-) )

Merci.

tryomph,

C'est pour ça qu'il vaut mieux s'intéresser au code et le comprendre et ne pas seulement recopier un code trouvé sur internet !

Dans ton cas, essaie ceci :

Sub MessageOutlook()

    'Declaration des variable
    Dim MaMessagerie As Object
    Dim MonMessage As Object
    Dim MonContenu As String
    Dim DdeTrsp As String
    Dim MonPDF As String

    ' Affectation Variables
    Set MaMessagerie = CreateObject("outlook.Application")
    Set MonMessage = MaMessagerie.createitem(0)
    DdeTrsp = " " & Range("H8") & "_" & Range("C4") & "_" & Range("D4") & "_" & Range("E4") & "_" & Range("G4") & "_" & Range("H4") & "_" & Range("I4")
    MonPDF = "C:\Users\XXXXXX\Desktop\" & DdeTrsp & "\" & Format(Date, "dd_mm_yyyy") & ".pdf"

    'Creation fichier PDF
    Feuil8.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=MonPDF, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    'Creation du message à envoyer
    With MonMessage
        .To = "prenom.nom@entreprise.com"
        .Subject = DdeTrsp

        MonContenu = "Bonjour," & vbNewLine & vbNewLine & _
        "voici le fichier " & vbNewLine & _
        "Merci de votre retour."

        'J'ai enlevé le contenu vs signature
        '.body = MonContenu
        .attachments.Add (MonPDF)
        .Display
    End With

    'on supprime le fichier temporaire
    Kill MonPDF

    'liberer memoire Outlook
    Set MaMessagerie = Nothing
    Set MonMessage = Nothing

End Sub

En modifiant le chemin de ton bureau dans la variable MonPDF et le destinataire.

Je n'ai pas testé mais ça devrait marcher. Dis moi

j'ai une erreur :

7 8

C'est normal, je vois sur ton Screenshot que tu as deux fois le code Création fichier PDF....

Tu n'as qu'à faire un copié/collé du code que je t'ai donné !

Lol, non j'ai bien fait le copier coller

Sur mon post du dessus il y a 2 screen ;-)

Oups, au temps pour moi

Remplacer

MonPDF = "C:\Users\XXXXXX\Desktop\" & DdeTrsp & "\" & Format(Date, "dd_mm_yyyy") & ".pdf"

Par

MonPDF = "C:\Users\XXXXXX\Desktop\" & DdeTrsp & "_" & Format(Date, "dd_mm_yyyy") & ".pdf"

En effet, il n'y avait pas le dossier voulu sur le bureau, my bad...

Super ! Merci beaucoup - sa fonctionne à merveille.

Avec plaisir ! Tu peux clore le sujet en cochant le message qui a répondu à ton besoin !

Rechercher des sujets similaires à "vba mail pdf sharepoint"