Bonjour,
Quelques aménagements mineurs :
Private Sub Workbook_Open()
Dim Ws As Worksheet, Cel As Range, mess$, cpt%
Set Ws = Worksheets("Feuil1")
For Each Cel In Ws.Range("G2:G" & Ws.Range("G" & Rows.Count).End(xlUp).Row)
If Cel.Value + 30 <= Date And Cel.Offset(0, 1) = "" Then
mess = mess & "* " & Cel.Offset(0, -2) & " sur la facture " & Cel.Offset(0, -1) & Chr(10)
cpt = cpt + 1
End If
Next Cel
If mess <> "" Then
If cpt > 1 Then
MsgBox "Attention !" & Chr(10) & "Les clients suivants sont en retard de règlement :" & _
Chr(10) & Chr(10) & mess
Else
MsgBox "Attention !" & Chr(10) & mess & " est en retard de règlement."
End If
End If
End Sub
Mais il faut surtout mettre cette procédure dans le module ThisWorkbook pour qu'ell fonctionne !
Que Feuil1 soit visible ou non ne l'empêchera pas de fonctionner...
Cordialement.