Envoi plage cellules corps mail

Fermé
Romain21410 Messages postés 7 Date d'inscription mercredi 7 octobre 2020 Statut Membre Dernière intervention 1 décembre 2020 - 1 déc. 2020 à 15:24
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 1 déc. 2020 à 17:01
Bonjour,

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"

End If
Next Ligne
End Sub

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
1 déc. 2020 à 17:01
0