XL 2019 Dupliquer macro pour l'envoi de mail

HugoTR35

XLDnaute Nouveau
Bonjour à vous,

Dans un premier temps merci à ce forum d'exister il m'a dépatouillé de nombreuses fois, je me lance donc aujourd'hui à également demander votre aide.

J'ai créé un fichier Excel où je voudrais faire une macro pour l'envoi de mail en cliquant dessus,
j'utilise la macro suivante et je souhaiterai trouver une astuce pour passer à la ligne suivante sans recréer cette macro des centaines fois,

"Sub Ligne()

End Sub

Dim LeMail As Variant

Set LeMail = CreateObject("Outlook.Application") 'création d'un objet outlook

With LeMail.Createitem(olMailTeam) 'informe le programme que nous voulons envoyer un mail
.Subject = "Surveillance à réaliser"
.To = Range("c5:C3000") & ";" & Range("H5:H3000")
.Body = "Bonjour " & Range(" g5:G3000") & "," & vbCrLf & vbCrLf & "Vous avez des surveillances de compétences à réaliser le plus rapidement possible, pour " & Range("B5:B3000") & " concernant un " & Range("e5:E3000") & " de niveau " & Range("f5:f3000") & ", en " & Range("D5:D3000") & ", " & Range("B5:B3000") & " nous vous laissons le soin d'envoyer les documents necessaires à son évaluation," & vbCrLf & "Belle journée à vous deux. Cordialement "
.Send

End With"

Avez vous une idée ?
En espérant avoir été suffisamment clair ...

Belle soirée à vous et merci d'avance !
Cordialement

Hugo
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Hugo, et bienvenu sur XLD,
Peut être un truc du genre :
VB:
Sub Envoie()
    Dim L%
    For L = 5 To Range("A65500").End(xlUp).Row
        EnvoieMailLigne L
    Next L
End Sub
Sub EnvoieMailLigne(N)
    Dim LeMail As Variant
    Set LeMail = CreateObject("Outlook.Application") 'création d'un objet outlook
    With LeMail.Createitem(olMailTeam) 'informe le programme que nous voulons envoyer un mail
        .Subject = "Surveillance à réaliser"
        .To = Cells(N, "C") & ";" & Cells(N, "H")
        .Body = "Bonjour " & Cells(N, "G") & "," & vbCrLf & vbCrLf & "Vous avez des surveillances de compétences à réaliser le plus rapidement possible, pour " & Cells(N, "B") & " concernant un " & Cells(N, "E") & " de niveau " & Cells(N, "F") & ", en " & Range("D5:D3000") & ", " & Cells(N, "B") & " nous vous laissons le soin d'envoyer les documents necessaires à son évaluation," & vbCrLf & "Belle journée à vous deux. Cordialement "
        .Send
    End With
End Sub
"Envoie" scrute toutes les lignes de la colonne A, et lance la macro "EnvoieMailLigne" pour chaque ligne.
"EnvoieMailLigne" est votre macro avec chaque range remplacé par le contenu d'une cellule correspondante.

Mais, évidemment, rien pu tester. :)
 

HugoTR35

XLDnaute Nouveau
Merci Slylvanu pour cette réponse si rapide,

"Voici le résultats :

Sub EnvoieMailLigne(N)
Dim LeMail As Variant
Set LeMail = CreateObject("Outlook.Application") 'création d'un objet outlook
With LeMail.Createitem(olMailTeam) 'informe le programme que nous voulons envoyer un mail
.Subject = "Surveillance à réaliser"
.To = Cells(N, "B") & ";" & Cells(N, "g")
.Body = "Bonjour " & Cells(N, "f") & "," & vbCrLf & vbCrLf & "Vous avez des surveillances de compétences à réaliser le plus rapidement possible, pour " & Cells(N, "a") & " concernant un " & Cells(N, "d") & " de niveau " & Cells(N, "e") & ", en " & Range(N, "c") & ", " & Cells(N, "a") & " nous vous laissons le soin d'envoyer les documents necessaires à son évaluation," & vbCrLf & "Belle journée à vous deux. Cordialement "
.display
End With
End Sub"

Cela ne fonctionne pas et m'envoie sur la commande de débogage ...
Cela vient peut être du fait que j'ai supprimer la colonne A pour que mon tableau arrive bien sur celle-ci !
Je n'arrive pas à trouver l'erreur !
 

Statistiques des forums

Discussions
297 995
Messages
1 964 964
Membres
200 788
dernier inscrit
Mario45