Para proteger las celdas tienes que bloquear las celdas en el menú Inicio, Formato, Formato de celdas, Proteger, Bloquear, y para que funcione, tienes que proteger la hoja.
Ahora, para registrar las modificaciones, se puede pero tendría que ser celda por celda, es decir, si copian toda una fila o toda una columna o todo un rango de celdas, el proceso tardaría mucho, tendría que registrar todas las celdas de una fila copiada.
Te anexo un archivo con una macro para registrar cualquier modificación a cualquier celda de cualquier hoja; el registro se realizaría en la hoja "control", puedes ocultar esta hoja y protegerla con password, para que no puedan ver ni borrar la información.
Tienes que poner tu macro con la actualización que te estoy enviando para que se registre el nombre de usuario:
Private Sub Workbook_Open()
Dim nombre As String
Dim paso2 As Boolean
nombre = UCase(InputBox("Nombre de Usuario"))
paso2 = False
Select Case nombre
Case UCase("tatiana")
If UCase(InputBox("Introduce tu clave de acceso")) = "123" Then paso2 = True
Case UCase("larixa")
If UCase(InputBox("Introduce tu clave de acceso")) = "456" Then paso2 = True
Case UCase("leydy")
If UCase(InputBox("Introduce tu clave de acceso")) = "789" Then paso2 = True
End Select
If paso2 = False Then ThisWorkbook.Close savechanges:=False
Sheets("control").[A1] = nombre
End Sub
Esta macro también debe ir en los eventos de thisworkbook
'
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Por.Dante Amor
Set h1 = Sheets("control")
If Sh.Name = h1.Name Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each c In Target
h1.Unprotect
r = Rows.Count
u = h1.Range("B" & Rows.Count).End(xlUp).Row + 1
If u >= r Then u = 2
h1.Cells(u, "B") = h1.[A1]
h1.Cells(u, "C") = Sh.Name
h1.Cells(u, "D") = c.Address(False, False)
h1.Cells(u, "E") = Date
h1.Cells(u, "F") = Time
h1.Cells(u, "G") = Target.Value
h1.Protect
Next
End Sub
Por último te anexo la macro para proteger las hojas y los datos después de que cierras el archivo, de esta forma cuando vuelvan a abrir el archivo esos datos estarán protegidos.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
For Each h In Sheets
h.Unprotect
h.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
h.Protect
Next
ActiveWorkbook.Save
End Sub
Debes crear una hoja llamada "control"
Te anexo mi archivo para que lo pruebes. Los datos a registrar son estos
https://www.dropbox.com/s/070osurj2yv88fg/control%20usuario.xlsm?dl=0
Saludos. Dante Amor
Hola. Trate de descargar el archivo pero ya está eliminado. - Alexis R.M