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.

Histórico de celdas modificadas en Excel.

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.

You may also like...