Un exemple mais avec un dilemme.
A copier dans thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 2 To Feuil2.Range("a" & Rows.Count).End(xlUp).Row
If Date = Feuil2.Cells(i, 1) And Environ("username") = Feuil2.Cells(i, 2) And Time > Feuil2.Cells(i, 3) And Feuil2.Cells(i, 4) = "" Then
Feuil2.Cells(i, 4) = Time
Application.ThisWorkbook.Save
End If
Next
End Sub
Private Sub Workbook_Open()
'UserForm1.Show
lr = Feuil2.Range("a" & Rows.Count).End(xlUp).Row + 1
Feuil2.Cells(lr, 1) = Date
Feuil2.Cells(lr, 2) = Environ("username")
Feuil2.Cells(lr, 3) = Time
End Sub
Globalement cela remplit tout automatiquement sans se servir de l'userform sauf que,dans le cas où l'utilisateur ouvre le classeur juste pour consulter, en quittant il n'est pas obligé d'enregistrer les modifications donc l'heure de sortit ne sera pas enregistré. j'ai alors rajouter Application.ThisWorkbook.Save mais ce sera à l'insu de l'utilisateur que le fichier sera enregistré...