Je cherche à envoyer dans le corps d'un mail une plage de cellule définie par une macro qui génère l'adresse de cette plage de cellules. Je souhaite que le mail soit envoyé au président délégué qui gère la section.
Par exemple pour la section de l'AIN (N°1) j'aimerais envoyer dans le corps d'un mail la plage de cellules (A1:G6) au président délégué de l'AIN, monsieur MEGE (bonjour@gmail.com2). Pour la section de l'AISNE (N°2) j'aimerais envoyer dans le corps d'un mail la plage de cellules (A7:G11) au président délégué de l'AISNE, monsieur BERTRAND (bonjour@gmail.com8).
Et ainsi de suite, j'ai environ 80 sections différentes, donc 80 plages de celulles à insérer dans des mails à envoyer aux présidents délégués de chaque section (donc 80 mails au total à envoyer).
J'ai fait 2 macros : une première qui détermine les coordonnées des plages de cellule à envoyer et une seconde qui doit normalement envoyer par mail au président délégué de la section la bonne plage de cellule.
J'ai 2 problèmes :
Dans ma seconde macro, je ne pense pas avoir la bonne syntaxe pour incorporer une plage de cellules dans un mail
Je ne suis pas sûr de pouvoir relier les 2 macros entre elles (je ne sais pas bien si je dois créer des procédures ou des fonctions et comment récupérer les variables de la première macro dans la seconde).
Voici mon fichier :
Cela fait plusieurs jours que je regarde des tutos sur YT pour essayer de comprendre comment faire, mais toutes mes tentatives sont infructueuses. Si vous pouviez me donner un coup de pouce, ça m'aiderait beaucoup :)
Merci d'avance pour votre aide,
Romain
Sub Bornes()
Dim BorneInf As Integer
Dim BorneSup As Integer
Dim i As Integer
Dim j As Integer
i = 2
BorneInf = 1
Do While Cells(i, 1).Value = Cells(i + 1, 1).Value
i = i + 1
Loop
BorneSup = i
j = i + 2
Call Mailfinal(BorneInf, BorneSup) 'Je veux appeler la macro qui envoie la plage de cellules dans le corps du mail
Do While BorneSup < 16
BorneInf = BorneSup + 1
Do While Cells(j, 1).Value = Cells(j + 1, 1).Value
j = j + 1
Loop
BorneSup = j
j = BorneSup + 2
Call Mailfinal(BorneInf, BorneSup) 'Je veux appeler la macro qui envoie la plage de cellule dans le corps du mail
Loop
End Sub
Sub Mailfinal(BorneInf As Integer, BorneSup As Integer)
Worksheets("DDA").Activate
Dim LeMail As Variant
Dim Ligne As Integer
Set LeMail = CreateObject("Outlook.Application")
For Ligne = BorneInf To BorneSup
If Range("H" & Ligne) = "président délégué" Then
With LeMail.CreateItem(olMailItem)
.Subject = Range("J1")
.To = Range("I" & Ligne)
.Body = Range("A & BorneInf :G & BorneSup").Select
.Send
End With
MsgBox "Votre email a été envoyé.", vbInformation + vbOKOnly, "CONFIRMATION ENVOI"