Generation de mail outlook avec piece jointes via Excel

Bonjour à tous les membres,

Je suis nouveau sur le forum, et je me permets également de m’adresser à vous en sollicitant vos compétences liées aux macros et au Visual Basic sous Excel.

En effet, travaillant quotidiennement et maitrisant un grand nombre des fonctionnalités d’Excel, la seule ombre au tableau se porte sur les macros et le Visual basic.

C’est pourquoi j’aimerai beaucoup apprendre et progresser dans ces derniers domaines en tentant de développer un petit script permettant d’assouvir ma curiosité, de compléter mes connaissances mais aussi de me faciliter la tâche au quotidien.

J’ai créé un tableau sous Excel que je nourri chaque jour afin de suivre et répertorier les devis que je rédige.

Mon objectif (s’il est réalisable) serait de :

  • Générer à partir des données contenues dans mon tableau un mail type sur Outlook du genre : Veuillez trouver ci-joint notre devis « numéro du devis » du « date du devis » … bonne réception etc. etc.
  • Insérer le devis au format PDF en pièce jointe dans le mail généré automatiquement
  • Pouvoir sélectionner dans Excel les devis à envoyer (par l’intermédiaire d’une case à cocher par exemple)
  • Et enfin nourrir les cellules « date d’envoi » automatique après envoi du mail.

Dans un premier temps sauriez-vous me dire si mon projet n’est pas trop « utopique » et, si celui-ci est réalisable par un débutant pourriez-vous m’accorder un peu de votre temps en m’orientant vers la marche à suivre ?

Je remercie d’avance les membres qui s’intéresseront à ma problématique.

Salutations

Bonjour,

Ce sujet est un "récurrent" des forums traitant de VBA.

Je vous invite à consulter quelques-uns des nombreux fils de discussion qui fleurissent sur la toile à ce sujet :

https://www.google.fr/?gws_rd=ssl#q=generation+de+mail+outlook+avec+piece+jointes+via+excel

et, tout particulièrement, vous intéresser à cette source :

http://codes-sources.commentcamarche.net/source/31545-envoi-automatique-de-mail-avec-piece-jointe-en-vba-excel-word-ou-access-par-oulook-express-ou-modzilla-thunderbird-ou-d

Une fois cette documentation lue, je vous invite à revenir ici avec donc un début de projet un peu plus élaboré et nous vous aiderons à créer cet outil.

Cordialement

Merci de ta réponse Pijaku,

Avant de poster ici, j'ai déjà parcouru beaucoup de forum traitant de cette problématique et j'ai également trouvé quelques éléments de réponses notamment dans le post que tu as souligné.

Cependant, je suis débutant dans le monde du VBA et me retrouve complètement perdu face à la syntaxe a employer pour adapter le code de certains utilisateurs à mon propre cas, je ne parviens pas à interpréter beaucoup d'aspect du code et du coup je ne parvient pas à l'appliquer.

Par exemple :

  • je ne sais pas comment organiser et transcrire dans le code mes variables (adresse mail du destinataire, numero du devis, date du devis etc) afin qu'un mail soit généré à partir de chaque ligne de mon tableau.
  • je ne parviens pas non plus à définir par quel moyen déclencher la macro ( dans l'idéal par une sélection de case à cocher ou par un double clic sur les lignes concernées)
  • Mes potentielles pièces jointes étant répertoriées par le biais de liens hypertexte dans mon classeur excel, je ne vois pas du tout comment je pourrais exporter ces pièces jointes au format PDF via une macro.
  • et pour finir, je ne sais pas du tout comment automatiser à l'aide d'une macro l'écriture dans une cellule excel (en l’occurrence definir dans une cellule le statut du devis ("envoyé" lorsque le mail est générer automatiquement)

Je joints à mon post un tableau simplifié qui me sert pour développer ma macro et qui vous permettra de mieus comprendre mes attentes.

Je tiens à rajouter que j'ai bien conscience de la difficulté à réaliser un tel code pour un débutant comme moi mais pour apprendre il faut bien commencer par quelques part alors si en plus sa peut m'être utile .

Merci en tout cas d'avance à tous les membres qui m'accorderont un peu de temps et un peu de leur savoir.

27test.xlsx (9.10 Ko)

Bonjour,

Alors nous allons commencer par le début :

Grâce à un bouton de commande :

  • récolter les données utiles,
  • les restituer.
Pour cela, nous allons utiliser des variables de type String (chaînes de caractères) et Date (euh... dates!).

L'utilisateur devra, au préalable, sélectionner une cellule de la ligne référençant le devis à envoyer.

1- insérer un bouton de commande,

2- son code :

Option Explicit

Private Sub CommandButton1_Click()
Dim DateDuDevis As Date
Dim DateDuJour As Date
Dim NomDuClient As String
Dim MailDuClient As String
Dim NumeroDevis As String
Dim CheminDeLaPj As String
Dim Ligne As Long

'ici, on considère que l'adresse mail de l'expéditeur est toujours la même
'donc on la déclare en constante :
Const MailExpediteur As String = "monmail@maboite.fr"

'on stocke la date du jour d'envoi dans une variable :
DateDuJour = CDate(Date)

'on cherche à repérer le numéro de la ligne
'ou figurent les infos du devis à envoyer
'il s'agit de la ligne ou l'on a préalablement sélectionné une cellule
'peu importe la colonne, seule la ligne est importante
'Ligne = la ligne de la cellule active :
Ligne = ActiveCell.Row

'on n'a plus qu'à récupérer les infos situées dans cette ligne
'aux colonnes B (date), C (nom client), D (mail destinataire), E (numéro devis) et F (chemin du pdf)
DateDuDevis = Cells(Ligne, 2).Value '2 = Colonne B
NomDuClient = Cells(Ligne, 3).Value '3 = colonne C
MailDuClient = Cells(Ligne, 4).Value
NumeroDevis = Cells(Ligne, 5).Value
CheminDeLaPj = Cells(Ligne, 6).Value

'on va restituer ces informations sous la forme d'un message
MsgBox MailExpediteur & " a envoyé le devis : " & vbCrLf & _
    "numéro : " & NumeroDevis & vbCrLf & _
    "établi le : " & DateDuDevis & vbCrLf & _
    "situé : " & CheminDeLaPj & vbCrLf & _
    "à : " & NomDuClient & ", " & MailDuClient & vbCrLf & _
    "le : " & DateDuJour

'on enregistre la date d'envoi dans la cellule concernée (colonne G de la ligne)
Cells(Ligne, 7).Value = DateDuJour
End Sub

3- le fichier exemple en retour :

61test.zip (14.05 Ko)

Bonsoir,

Désolé de répondre aussi tard (les fins d'année professionnelle sont difficile), je tenais à te remercier, ton code est super bien détaillé et expliqué et tu maîtrise allègrement le sujet, j'ai appris énormément de chose grâce à ton code et je compte le compléter du mieux que je pourrais afin de lancer Outlook et de générer un mail type.

Je posterai tout sa ici afin que l'on puisse certainement corriger et critiquer la suite du développement (il n'y a pas de mystère c'est en se trompant que l'on apprend).

Merci encore de m'avoir transmis un peu de ton savoir.

A bientôt

Rechercher des sujets similaires à "generation mail outlook piece jointes via"