VBA Excel Insertion PDF Mail

Bonjour à tous,

Dans le cadre de mon travail, je souhaite mettre en place une macro qui permettrait de faire gagner du temps à tous :slight_smile:

Je tiens à préciser que je suis totalement novice dans le domaine mais après plusieurs heures de recherche j’ai bien avancé dans mon projet.

Ce que je souhaite faire : Tous les mois nous travaillons sur un fichier excel, 1 mois = 1 nouvelle feuille exce . Je souhaite que la feuille active s’enregistre automatiquement en fichier pdf et que ce même fichier pdf soit joint dans un mail (la ou je me retrouve bloquée).

A ce jour via des tutos j’ai réussi à générer en un clique la création d’un dossier, dans ce même dossier s’y ajoute automatiquement le pdf de ma feuille active excel et s’ouvre dans la foulée une page outlook.

Cependant je n’arrive pas à joindre mon fichier pdf crée via cette macro.

Si une personne pouvait avoir la gentillesse de m’aider.

Ci-dessous ma macro :

Sub pdf()

NomDossier = Application.InputBox(« Nom du dossier », « Création du dossier », « Entrer le nom du dossier »)
Chemin = "Z:\Chemin du dossier " & NomDossier & ""

On Error Resume Next

Dossierexistant = GetAttr(dossier) And vbDirectory

If Dossierexistant = False Then
MkDir (Chemin)
End If

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Chemin & Range(« E6 ») & Range(« F6 »).Value & « .pdf », _
quality:=xkqualitystandard, _
includedocproperties:=True, _
ignoreprintareas:=False, from:=1, To:=1, _
openafterpublish:=False

MsgBox (« Le pdf a été crée »)

Dim LeMail As Variant

Set LeMail = CreateObject(« Outlook.Application »)

With LeMail.CreateItem(olMailItem)
.Subject = Range(« E6 ») & Range(« F6 ») & Space(1) & Range(« B1 ») & Space(1) & Range(« k3 »)
.To = Range(« j9 »)
.HtmlBody = « Message Mail »
.Display
.
End With

End Sub

Je vous remercie par avance,

Charlotte

Il vous manque :

 .Attachements.Add ( Chemin & Range("E6") & Range("F6").Value & ".pdf")

Bonjour
Certaines lignes de ton code me posent questions
Ici pour déterminer un chemin d’un dossier :

Chemin = "Z:\Chemin du dossier " & NomDossier & «  »

Si le dernier répertoire de ce chemin est NomDossier il manque le symbole "\" juste avant j’aurais écris :

Chemin = "Z:\Chemin du dossier \" & NomDossier & ""
(Chemin du dossier \)

ici :

Dossierexistant = GetAttr(dossier) And vbDirectory

tu cites une variable dossier qui n’est pas définie en amont je doute que cette ligne de code fonctionne sans cet impératif

Ici :

Filename:=Chemin & Range(« E6 ») & Range(« F6 »).Value & « .pdf »

Pour mettre le fichier pdf dans le répertoire créé NomDossier il faut séparé celui-ci du fichier pdf à intégrer dedans par toujours le symbole "\" j’aurais écris comme ceci cette ligne de code :

Filename:=Chemin & "\" & Range(« E6 ») & Range(« F6 »).Value & « .pdf »

Maintenant si tout fonctionne malgré tout, mais je reste très perplexe, pour joindre dans un mail outlook le fichier pdf il faut mettre cette instruction :

.Attachments.Add Chemin & "\" & Range(« E6 ») & Range(« F6 »).Value & « .pdf »

Ici :

With LeMail.CreateItem(olMailItem)
.Subject = Range(« E6 ») & Range(« F6 ») & Space(1) & Range(« B1 ») & Space(1) & Range(« k3 »)
.To = Range(« j9 »)
.HtmlBody = « Message Mail »
.Attachments.Add Chemin & "\" & Range(« E6 ») & Range(« F6 »).Value & « .pdf »
.Display
End With

Testes et dis moi

Bonjour,

Je vous remercie d’avoir pris le temps de me lire et de me répondre :slightly_smiling_face:

Comme vous me l’avez indiqué j’ai rajouté sous :
.Display

la ligne que vous m’avez indiqué :
.Attachements.Add ( Chemin & Range(« E6 ») & Range(« F6 »).Value & « .pdf »)

et rien ne se passe :frowning:

Encore merci pour votre aide,

Charlotte

Bonjour,

Mille merci pour votre aide je ne m’en sortais pas et mon erreur provenais simplement de l’intitulé Filename comme vous l’avez souligné, avant d’écrire sur le forum j’avais essayé de mettre attachements mais dans des termes bien plus simple enfin merci beaucoup car ça fonctionne. :partying_face:

Inutile de vous dire qu’après plusieurs jours semaines à y avoir travaillé je suis très heureuse d’y être arrivé enfin :slight_smile:

Je vous souhaite un excellent week end.

Charlotte

C’est bon le code fonctionne,

Mille merci pour votre aide, c’est très gentil me voila ravis de pouvoir montrer à mes collègues ceci :slight_smile:

1 « J'aime »

Ravi de t’avoir aidé avec succès
Un petit plus sympathique comme récompense en validant ma réponse
Merci d’avance
Peut-être à bientôt

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.