VBA envoyer un mail outlook avec une pièce jointe
Bonjour :)
Je suis assez désespérée à vrai dire car je ne connais rien au code et je n'arrive pas à trouver une solution malgré les nombreux tutos sur internet, j'ai un code pour envoyer des mails imbriquant des données différentes selon chaque destinataire qui fonctionne bien et j'aurais aimé ajouter dans celui-ci la possibilité de mettre les pièces jointes automatiquement pour ne pas avoir à le faire pour les 95 mails (pièces jointes qui sont toutes différentes).
Voici ci-dessous le code avec en rouge la partie qui me pose problème, vous auriez une solution svp ?
Sub email()
Dim x As Byte
MonNumero = Range("A2").Value
Set ws = Worksheets("TEST")
ws.Select
For compteur = 2 To 3
monNuméroActuel = Cells(compteur, 1)
If MonNumero = monNuméroActuel Then
If Cells(compteur, 5) = "a" Then
leSujet = Cells(compteur, 2)
mesAA = mesAA & ";" & Cells(compteur, 3)
pour = Cells(compteur, 3)
lecorp = " "
If contenu = "" Then contenu = "vide"
modifier = MsgBox(contenu & vbCr & "Voulez vous choisir un fichier à joindre ?", vbYesNo, "Fichiers paramétrés")
If modifier = vbYes Then
For i = 0 To 9
If i = 0 Then encore = MsgBox("un autre ?", vbYesNo)
If encore = vbNo Then
Quest:
PJ = InputBox("Emplacement du fichier joint au PUBLIPOSTAGE?", "Paramétrage du PUBLIPOSTAGE pour la session", publipostagePJ(i))
ElseIf Cells(compteur, 5) = "cc" Then
mesCC = mesCC & ";" & Cells(compteur, 4)
End If
Else
Set leOutlook = CreateObject("Outlook.Application")
MonNumero = monNuméroActuel
With leOutlook.CreateItem(0)
.Subject = leSujet
.To = mesAA
.Body = lecorp
.cc = mesCC
.display
End With
mesCC = ""
mesAA = ""
If Cells(compteur, 5) = "a" Then
leSujet = Cells(compteur, 2)
mesAA = mesAA & ";" & Cells(compteur, 3)
lecorp = " "
ElseIf Cells(compteur, 5) = "cc" Then
mesCC = mesCC & ";" & Cells(compteur, 4)
End If
End If
Next
Set leOutlook = Nothing
End SubMerci d'avance pour votre aide !
Bonjour Sarah03 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment
- Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
Ensuite, il y a tout à revoir
Il faut tout revoir à la base
A+
Bonjour BrunoM45, merci pour votre réponse !
Je ne comprend pourquoi il y a tout à revoir ? Voici le code de base :
Sub email()
Dim x As Byte
monNumero = Range("A2").Value
Set ws = Worksheets("Liste mails")
ws.Select
For compteur = 112 To 175 Step 1
monNumroActuel = Cells(compteur, 1)
If monNumero = monNumroActuel Then
If Cells(compteur, 5) = "a" Then
leSujet = Cells(compteur, 2)
mesAA = mesAA & ";" & Cells(compteur, 3)
pour = Cells(compteur, 3)
lecorp = " "
ElseIf Cells(compteur, 5) = "cc" Then
mesCC = mesCC & ";" & Cells(compteur, 4)
End If
Else
Set leOutlook = CreateObject("Outlook.Application")
monNumero = monNumroActuel
With leOutlook.CreateItem(0)
.Subject = leSujet
.To = mesAA
.Body = lecorp
.cc = mesCC
.display
End With
mesCC = ""
mesAA = ""
If Cells(compteur, 5) = "a" Then
leSujet = Cells(compteur, 2)
mesAA = mesAA & ";" & Cells(compteur, 3)
lecorp = " "
ElseIf Cells(compteur, 5) = "cc" Then
mesCC = mesCC & ";" & Cells(compteur, 4)
End If
End If
Next
Set leOutlook = Nothing
End SubIl a été utilisé de nombreuses fois et fonctionnait très bien, je voudrais juste pouvoir avoir la possibilité d'intégrer des pièces jointes différentes selon les personnes, vous auriez une solution ?
Re,
Il fonctionnait avec toutes ces boucles
Perso, je n'y mettrais pas les pieds, ni même les mains
Mais beaucoup le feront je pense