Bonsoir Philou.
Regarde si cela te va (à copier dans la feuille de code correspondant à ta feuille Excel):
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.EntireRow.Range("IV1").End(xlToLeft).Column > 1 Then
If Target.EntireRow.Range("IV1").End(xlToLeft).NumberFormat = "dd/mm/yy h:mm;@" Then
Target.EntireRow.Range("IV1").End(xlToLeft) = Now()
Else
Target.EntireRow.Range("IV1").End(xlToLeft).Cells(1, 2) = Now()
Target.EntireRow.Range("IV1").End(xlToLeft).NumberFormat = "dd/mm/yy h:mm;@"
End If
Else
Target.EntireRow.Range("B1") = Now()
Target.EntireRow.Range("B1").NumberFormat = "dd/mm/yy h:mm;@"
End If
Application.EnableEvents = True
End Sub
Juste un petit détail que je n'ai pas peaufiné: si tu effaces toutes les données d'une ligne, la date et l'heure se mettrons sur la case B de cette ligne. Si cette possibilité existe, il faudra rajouter un test.
En fait, je vais chercher la dernière case de la ligne, quelque soit le nombre de colonnes remplies. C'est ce qui complique un peu. Si ces nombres ne changent pas, on peut faire beaucoup plus simple.
Ah oui, un dernier détail: si tu cliques sur une cellule, que tu cliques ensuite dans la barre de formule, après Enter, même s'il n'y a pas eu de changement, l'heure sera modifiée.
Bonne soirée.