Envoi plage cellules corps mail

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 :

  1. Dans ma seconde macro, je ne pense pas avoir la bonne syntaxe pour incorporer une plage de cellules dans un mail
  2. 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

ABCDEFGHI
1SectionCivilitéNomPrénomInscription ROIInscription TRIPrésident délégué ou autres fonction CSCourriel
201AINMadameDUCROZETValerieOKbonjour@gmail.com1
301AINMonsieurMEGEHenriOKOKprésident déléguébonjour@gmail.com2
401AINMonsieurMANGEMATINThierrybonjour@gmail.com3
501AINPoste vacantbonjour@gmail.com4
601AINPoste vacantbonjour@gmail.com5
7SectionCivilitéNomPrénomInscription ROIInscription TRIPrésident délégué ou autres fonction CSCourriel
802AISNEMonsieurMOINATMickaelOKbonjour@gmail.com7
902AISNEMonsieurBERTRANDAnthonyOKprésident déléguébonjour@gmail.com8
1002AISNEMonsieurLALONDEXavierbonjour@gmail.com9
1102AISNEPoste vacantbonjour@gmail.com10

Bonjour,

pour le point 1, ajoute cette fonction

Function tableauhtml(plage As Range) As String
Dim cel As Range
Set cel = plage.Cells(1, 1)
    tableauhtml = "<table>"
    For i = 1 To plage.Rows.Count
        tableauhtml = tableauhtml & "<tr>"
        For j = 1 To plage.Columns.Count
            tableauhtml = tableauhtml & "<td>" & (cel.Offset(i - 1, j - 1).Value) & "</td>"
        Next
        tableauhtml = tableauhtml & "</tr>"
    Next
    tableauhtml = tableauhtml & "</table>"
End Function

et modifie ta macro

au lieu de

.Body = Range("A & BorneInf :G & BorneSup").Select

fais

.htmlBody = tableauhtml(Range("A & BorneInf :G & BorneSup")) & .htmlBody

pour le second point

Mailfinal BorneInf, BorneSup

Bonjour Steelson,

Merci beaucoup pour votre aide. J'ai fait les modifications en prenant en compte vos remarques, mais le programme m'indique erreur 1004 quand je lance le fichier si joint. Peut-être ai-je mal compris vos indications ?

Merci encore pour votre aide.

Romain

Ton bouton est relié ici

'mail-et-plage-de-cellules-v1corrige.xlsm'!Feuil1.EnvoiMail

Or il n'y a aucune macro appelée EnvoiMail

je n'avais pas fait attention, mais ta plage doit s'écrire ... attention aux guillemets

Range("A" & BorneInf & ":G" & BorneSup)

tu es en explicit, il faut aussi définir i et j

dim i, j

a minima

enfin, place tes macros dans le module1 plutôt que dans une feuille

Rebonjour Steelson,

Merci beaucoup pour votre aide ! Cela fonctionne maintenant !

Parfait ! alors n'oublie pas de solder ce fil de discussion en cliquant sur

Rechercher des sujets similaires à "envoi plage corps mail"