Guardar histórico de celdas modificadas en Excel para auditoría
En este video tutorial veremos una macro en VBA que nos ayudará a guardar un log o histórico de cambios en un rango de celdas.
Usaremos el evento Change aplicable a una hoja para generar dicho histórico en una hoja para que podamos auditar los cambios realizados en las celdas.
Ver video Guardar log de celdas modificadas
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Histórico de celdas modificadas
Imaginemos un caso donde enviamos un archivo por correo y lo deseamos de vuelta, pero queremos saber si el usuario que recibió el correo modificó algunas celdas.
En nuestro archivo de ejemplo, tenemos el rango A1:E4 el cual será el que estaremos auditando si se realiza alguna modificación en sus celdas. En la hoja Log guardaremos cada cambio realizado en la Hoja1. Guardaremos los siguientes datos:
-
Fecha de modificación.
-
Hora de modificación.
-
Celdas modificadas.
-
Usuario.
Evento Change
Usaremos el evento Change asociado a una hoja, el cual nos ayudará a detectar cualquier celda modificada en la Hoja1. Para usar el evento, realizamos los siguientes pasos:
-
Damos clic derecho sobre la etiqueta la Hoja1 > Ver código.
-
Se abre el IDE de VBA.
-
En el Combo General elegimos Worksheet.
-
Ahora en el Combo de la derecha elegimos Change.
-
Escribimos en VBA una macro que nos genere el histórico de celdas modificadas.
Figura 1. Histórico de celdas modificadas en Excel.
Código VBA de la macro
El siguiente código VBA va alojado en el objeto Hoja1 usando el evento Worksheet_Change.
Private Sub Worksheet_Change(ByVal Target As Range) Dim HojaLog As Worksheet Dim RangoLog As Range Dim NuevaFila As Integer If Target.Column <= 5 And Target.Row <= 4 Then Set HojaLog = ThisWorkbook.Sheets("Log") Set RangoLog = HojaLog.Range("A1").CurrentRegion NuevaFila = RangoLog.Rows.Count + 1 With HojaLog .Cells(NuevaFila, 1).Value = Date .Cells(NuevaFila, 2).Value = Time .Cells(NuevaFila, 3).Value = Target.Address .Cells(NuevaFila, 4).Value = Application.UserName End With End If End Sub
Descarga el archivo de ejemplo
Histórico de celdas modificadas – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.