Tu as raison, il y a toujours quelque chose dans mess . De plus je n'avais pas vu que les dates n'étaient pas prises en compte...
Il faut quelques modifs de plus.
Je reviens...
Voilà qui devrait mieux coller :
Private Sub Worksheet_Activate()
Set fm = Sheets("MACHINE")
mess = ""
For ln = 4 To fm.Range("D" & fm.Range("Tableau1").Rows.Count).End(xlUp).Row
If fm.Range("D" & ln) <> "" Then
If fm.Range("D" & ln) = Date Then mess = mess _
& Chr(13) & " - " & fm.Range("C" & ln)
End If
Next ln
If mess <> "" Then MsgBox "Opération(s) à effectuer :" & Chr(13) & mess, vbExclamation, _
"Opération(s)"
End Sub