voici la modification, j'ai indiqué les 2 changements dans la macro
Sub test_mail()
Set sh1 = Sheets("Feuil1")
Set sh2 = Sheets("mail")
'changement sur la ligne suivante
lastRow = sh1.Cells(Rows.Count, "B").End(xlUp).Row + 1
deb = 2
sh2.Activate
For i = 3 To lastRow
n = n + 1
If sh1.Cells(i, 2).Value <> sh1.Cells(deb, 2).Value Then
'changement sur la ligne suivante
sh2.Range(sh2.Cells(2, 1).Address, sh2.Cells(n + 1, 4).Address).Value = sh1.Range(sh1.Cells(deb, "B").Address, sh1.Cells(i - 1, "E").Address).Value
destinataire = Evaluate("INDEX(adresseMail!B:B,MATCH(A2,adresseMail!A:A,0))")
deb = i
sh2.Copy
chemin = "C:\Users\xxxxxx\Documents\" 'à adapter
' ActiveWorkbook.SaveAs Filename:=chemin & Range("A2") & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
' recipients, subject, return_receipt
Application.Dialogs(xlDialogSendMail).Show destinataire, "Bonjour, ci-joint le programme de la semaine prochaine", False
ActiveWorkbook.Close SaveChanges:=False
sh2.Range("A2:D" & sh2.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
n = 0
End If
Next
End Sub