Génération d'un mail avec plusieurs pièces-jointes

Bonjour à vous,

Je souhaite créer une macro qui envoie un mail avec un nombre variable de pièces-jointes (mais 5 dans l'exemple ci-après).

Je vous remercie par avance de votre aide.

Sub Courriel()
Dim MonCorps As String
Dim NbFermage, NumFermage As Integer

NbFermage = 5
For NumFermage = 1 To NbFermage
Repfile & NumFermage = ThisWorkbook.Path & "\" & "Fermage" & NumFermage & ".pdf"
Next

MonCorps = "<p>Bonjour, <br>Vous trouverez en pièce-jointe les fermages de l'année. <br>Cordialement <p>"
fermage = "Fermage 2020"

With CreateObject("Outlook.Application")
With .createitem(0)
.to = "Testmail@gmail.com"
.CC = "TestmailCopie@gmail.com"
.Subject = fermage
.HTMLBody = MonCorps
.Attachments.Add (Repfile1)
.Attachments.Add (Repfile2)
.Attachments.Add (Repfile3)
.Attachments.Add (Repfile4)
.Attachments.Add (Repfile5)
.Display
End With
End With

End Sub

Je rencontre deux soucis :

1- Je ne sais pas comme mettre en variable le repfile

Repfile & NumFermage = ThisWorkbook.Path & "\" & "Fermage" & NumFermage & ".pdf"

2/ Toujours pour les pièces jointes, je voudrais également variabiliser le nombre de pièce-jointe en reprenant les fichiers du point précédent.

.Attachments.Add (Repfile1)
.Attachments.Add (Repfile2)
.Attachments.Add (Repfile3)
.Attachments.Add (Repfile4)
.Attachments.Add (Repfile5)

Je vous remercie de votre aide,

Merci de ne pas utiliser de terme trop technique, je n'ai jamais suivi de cours d'informatique. Mais je sais me servir d'un copier coller quand je vois des lignes qui m’intéresse sur des forums ^^.

Belle soirée à vous

Vincent LO

Bonjour Abbé Vincent 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

Concernant votre demande, voici le code corrigé

Sub Courriel()
  Dim MonCorps As String
  Dim NbFermage, NumFermage As Integer
  Dim RepFile As String
  ' Nombre de fermage
  NbFermage = 5
 '
  MonCorps = "<p>Bonjour, <br>Vous trouverez en pièce-jointe les fermages de l'année. <br>Cordialement <p>"
  fermage = "Fermage 2020"
  '
  With CreateObject("Outlook.Application")
    With .createitem(0)
      .Display
      .To = "Testmail@gmail.com"
      .CC = "TestmailCopie@gmail.com"
      .Subject = fermage
      .HTMLBody = MonCorps
      For NumFermage = 1 To NbFermage
        RepFile = ThisWorkbook.Path & "\" & "Fermage" & NumFermage & ".pdf"
        .Attachments.Add (RepFile)
      Next
    End With
  End With
End Sub

Reste le nombre de fermage à définir avec une cellule peut-être

Merci de votre participation

Cordialement

Bonjour BrunoM45 et merci de ce retour,

Le code de mon fichier est en réalité plus long, mais pour éviter de vous perturber pour rien (code pas forcément efficace qui pourrait faire défriser des habitués, mais qui pour moi est satisfaisant), j'ai réduit aux éléments que j'ai identifié comme problématique. Et visiblement, cela a été.

En l'occurrence, le nombre de fermage est défini préalablement par :

    NbFermage = 0
    NbLigne = 1
    While Sheets("Fermage").Cells(NbLigne, 2) <> ""
        If Sheets("Adresse").Cells(bailleur, 2) = Sheets("Fermage").Cells(NbLigne, 2) Then
        NbFermage = NbFermage + 1
        End If
    NbLigne = NbLigne + 1
    Wend

Je connais une formule plus élégante du style :

.Range("G4").End(xlDown).Row

Mais dans mon cas, je rencontre des problèmes liés à des lignes masqués.

C'est pour cela dans l'exemple que je vous ai communiqué, j'ai remplacé par un nombre. Je n'ai pas mis de valeur venant d'une cellule afin d'éviter de vous obliger à saisir un nombre pour lancer la macro, ni avec des feuilles à nommer.

Pour une fois je comprends la solution ! Elle était à mon niveau de compétence, mais il fallait être plus méthodique...

Je tente petit à petit de faire un petit facturier de fermage. Et je pense que j'arrive bientôt au bout, il suffit maintenant de tout rassembler : calcul des fermages, génération des factures en pdf, et envois par mail ou impression papier.

J'ai vu qu'il était possible de publier des fichiers, cela pourrait être mon premier quand j'aurai terminé. Mais l'hiver se terminant et la nature reprenant son activité, je vais avoir mon de temps dans les mois à venir.

Merci et bon week-end !

Rechercher des sujets similaires à "generation mail pieces jointes"