Bonjour,
voici la modification,
Sub test_mail2()
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
Set sh1 = Sheets("Planning")
Set sh2 = Sheets("mail")
lastRow = sh1.Cells(Rows.Count, "A").End(xlUp).Row + 1
n = 1
deb = 3
sh2.Activate
For i = 4 To lastRow
n = n + 1
If sh1.Cells(i, "C").Value <> sh1.Cells(deb, "C").Value Then
sh2.Range(sh2.Cells(3, "A").Address, sh2.Cells(n + 1, "BG").Address).Value = sh1.Range(sh1.Cells(deb, "B").Address, sh1.Cells(i - 1, "BG").Address).Value
destina = Evaluate("MATCH(B3,adresseMail!A:A,0)")
destinataire1 = Sheets("adresseMail").Cells(2, destina)
destinataire2 = Sheets("adresseMail").Cells(3, destina)
destinataire3 = Sheets("adresseMail").Cells(4, destina)
deb = i
sh2.Copy
chemin = "C:\Users\hamilaha\Desktop\"
fichier = chemin & Range("B3") & ".xlsx"
ActiveWorkbook.SaveAs Filename:=fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
With oBjMail
.To = destinataire1
.CC = destinataire2 & ";" & destinataire2
.BCC = ""
.Subject = "programme de la semaine prochaine"
.Body = "Bonjour, ci-joint le programme de la semaine prochaine"
.Attachments.Add (fichier)
' .Display ' vérification avant d'envoyer (pour un test en pas à pas)
.Send 'envoi du message
End With
ActiveWorkbook.Close SaveChanges:=False
sh2.Range("A3:GD" & sh2.Cells(Rows.Count, "B").End(xlUp).Row).ClearContents
n = 1
End If
Next
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub