Las bases de datos en Excel son frecuentemente actualizadas por los usuarios por lo que en ocasiones es necesario tener un control de cambios que nos permita registrar la fecha y hora de modificación de una celda. De esta manera siempre sabremos el momento de la última actualización de un registro.
En la siguiente imagen podrás observar una pequeña base de datos en donde deseo implementar el registro de la fecha hora de la última modificación que se realice en cualquier celda dentro de una misma fila:
Ya sea que modifique la columna Nombre, Apellido o Teléfono, la columna Última actualización deberá mostrar la fecha y hora del último cambio. La única manera en que podemos solucionar esto es utilizando programación VBA y considerando el evento Worksheet_Change.
El evento Worksheet_Change
El evento Worksheet_Change nos permite ejecutar cualquier código VBA al momento de que una celda de nuestra hoja sufre una modificación. De esta manera podremos registrar el cambio en cualquiera de los registros de nuestra base de datos. El código que utilizaremos será el siguiente:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column < 4 Then Cells(Target.Row, 4).Value = Now End If End Sub
Una vez que se dispara este evento comparamos la columna de la celda que ha sido modificada a través de la propiedad Target.Column. Si la columna es menor a 4 entonces insertamos el valor de la fecha y hora actual con la función Now. Observa que la fecha y hora son insertados en la columna 4 y en la misma fila que la celda que ha sido modificada la cual obtenemos con la propiedad Target.Row.
Para poder utilizar este código haz clic derecho en la pestaña con el nombre de la hoja y selecciona la opción Ver código:
Se abrirá el Editor de Visual Basic y deberás pegar el código de la subrutina que hemos creado. Una vez hecho esto, la hoja de Excel estará lista para actualizar la fecha y la hora de cambio de un registro de la base de datos. Observa la siguiente animación donde muestro el funcionamiento de nuestro código:
Para adaptar este código a tu propia base de datos deberás delimitar adecuadamente el rango de columnas que contienen los datos y la columna donde se insertará la fecha y hora.
De esta manera hemos aprendido a registrar la fecha y hora de modificación de una celda en Excel utilizando el evento Worksheet_Change en VBA. Ahora tienes otro recurso para mejorar el trabajo con tus bases de datos en Excel. Descarga el libro de trabajo haciendo clic aquí.