Formulas Excel

Ejemplos de Formulas Excel

  • Home
  • Descargas
  • App a Medida
  • Sobre mi
  • Contacto
  • FAQ

Guía paso a paso para saber quien abre un archivo excel compartido

por Nolberto Lopez 8 comentarios

Si manejas un archivo compartido en tu red, es probable que desees tener un registro de cada acceso a dicho archivo, por ejemplo, en un formato de registros contables, se puede registrar automáticamente el nombre de usuario, fecha y hora de acceso, incluso la fecha y hora en la que cierra el archivo.

Descargar Pack de Apps Contables en Excel

Registrar la apertura del archivo

La idea es que al abrir el archivo, en una hoja que puede estar oculta, se ponga el nombre del usuario, fecha y hora.

Lo primero es definir una hoja que contendrá los datos de los accesos al libro.

Registra acceso a libro excel - hoja

En esa imagen vemos la estructura definida para el registro, esa hoja puede estar oculta, incluso se puede ocultar desde el código vba como vemos a continuación.


Private Sub Workbook_Open()
Dim uFila As Long
Dim ws As Worksheet
Set ws = Worksheets("data")
uFila = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ws.Cells(uFila, 1) = "Entrada"
ws.Cells(uFila, 2) = Application.UserName
ws.Cells(uFila, 3) = Date & " " & Time
Worksheets("data").Visible = xlVeryHidden
ActiveWorkbook.Save
End Sub

Ese código se debe guardar en el ThisWorkbook, para abrir el editor de visual basic solo hay que presionar ALT+F11, a la izquierda esta la estructura del proyecto, solo debes ubicar el ThisWorkbook del libro actual y dar doble click para abrirlo.

Registrar la salida del archivo

En el caso de la salida de dicho archivo, el código es casi el mismo, solo se cambia el evento en el que se debe registrar, en este caso es justo antes de cerrar el libro, es decir, cuando se da click en cerrar.


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim uFila As Long
Dim ws As Worksheet
Set ws = Worksheets("data")
uFila = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ws.Cells(uFila, 1) = "Salida"
ws.Cells(uFila, 2) = Application.UserName
ws.Cells(uFila, 3) = Date & " " & Time
Worksheets("data").Visible = xlVeryHidden
ActiveWorkbook.Save
End Sub

Las ultimas dos lineas del código sirven para ocultar la hoja donde están los registros y para guardar los cambios, esto ultimo es importante ya que de lo contrario el usuario puede dar clic en cancelar en el mensaje de guardar cambios y aun así se hace el registro de salida, luego cuando realmente cierre se realizara otro registro, así que tu decides si dejas esa linea ActiveWorkbook.Save

Como ver los registros de accesos al libro

Finalmente, para ver los registros, tendrás que entrar Visual Basic presionando ALT+F11, después dar click en el signo mas del proyecto de tu libro y click en el signo mas de Microsoft Excel Objetos, de esa manera podrás ver las hojas que contiene el libro, seleccionas la hoja que tiene los registros y en las propiedades seleccionar la opción xlSheetVisible.

Registra acceso a libro excel - desbloquear hoja

Forzar la activación de macros

Cabe mencionar que esta macro no funcionara si las macros no son activadas, si tu libro forzosamente necesita de macros para poder trabajar con el, entonces no debes tener problema alguno, pero si es un libro que no usa macros para su funcionamiento regular, puedes agregar las siguientes lineas de código tanto para la apertura como en el cierre, justo antes de ActiveWorkbook.Save

Este código va en Workbook_BeforeClose(Cancel As Boolean)

Worksheets("data").Visible = xlVeryHidden

Solo debes cambiar data por el nombre de la hoja que desees ocultar justo al cerrar el libro, de este modo, forzaras al usuario a activar las macros para poder trabajar con el libro.

Entonces si activa las macros, entonces esa hoja deberá ser visible, así que debes poner lo siguiente en Workbook_Open

Worksheets("data").Visible = xlVisible

Puedes agregar mas lineas de esas, en cada linea debes poner el nombre de la hoja que debe ocultarse y abrirse, me refiero a que puedes hacer esto para mas de una hoja, aunque regularmente basta con ocultar la hoja mas importante del libro.

Aun así, esto no funcionara al inicio si las macros no se habilitan, así que tienes que ocultar manualmente esa hoja antes de ponerla a disposición de los usuarios, esto se hace igual desde visual basic seleccionando la opción xlSheetVeryHidden para la hoja que deseas ocultar.

Registra acceso a libro excel - bloquear hoja

Con ese pequeño truco obligaras al usuario a activar las macros desde la primera vez para que pueda ver esa hoja oculta ya que solo desde el código de la macro se hará visible, después al cerrar el libro, esa hoja se ocultara automáticamente puesto que las macros están activadas.

Esto da para mucho mas, es posible llevar un registro de cada modificación que hace cada usuario, por ejemplo, se puede indicar en una columna lo que había antes y en otra el dato que lo sustituyo, claro que esto provocaría que con el tiempo la cantidad de registros de esa hoja sea enorme, pero esto lo veremos en otro post.

Espero les sea de mucha ayuda este ejemplo.

Descargas formulasexcel.com

Categoría: Macros

Recibir nuevos post por correo:

Acerca de Nolberto Lopez

Experto en Microsoft Excel. Desarrollador de aplicaciones en Excel con VBA. Autor del sitio formulasexcel.com

« Aplicaciones contables en excel ( 2023 )
Buscador con Formulas de Excel »

Comentarios

  1. Marco dice

    marzo 19, 2020 en 3:49 pm

    Hola, buenos días!

    Habrá algún método para darnos cuenta si un tercero se mete a nuestro proyecto?

    Es decir, que quieran violentar a un libro nuestro por medio del editor de Visual Basic.

    Sería como que cuando entren al VBA de nuestro libro, nos envíe un correo automatico con información de quien lo está abriendo.

    Gracias,

    Responder
  2. Giovanny dice

    febrero 21, 2019 en 3:16 pm

    Hola Nolberto; muchas gracias por la información, fue de gran utilidad. Solo tengo una pregunta. Tengo una hoja de datos a la que pueden ingresar dos usuarios mediante una UserForm que desarrolle. Me gustaría saber si es posible que me quede registrado el usuario que ingrese, pues como esta el código que usted amablemente compartió aparece es el usuario del sistema, por lo tanto, no podría rastrear cual fue el usuario que ingresó.

    Muchas gracias y quedo muy atento

    Cordial saludo

    Responder
  3. Gabriel Gonzalez dice

    abril 19, 2018 en 8:45 am

    Buenos días, Nolberto y gracias por compartir tus conocimientos.

    En el ejercicio “Como ver los registros de accesos al libro”, como podría adaptarlo a:
    1. El libro lo utilizan varias personas, entonces como poner un usuario y login, para que puedan ingresar a este.
    2. Que el usuario y login sean lo que aparecen en la hoja “data”, para saber realmente quienes han ingresado.

    Responder
  4. arly dice

    junio 24, 2016 en 5:18 pm

    hola, estoy ocupando las lineas para forzar la apertura del macros, pero me detecta error para mostrar la hoja y el codigo es el mismo ayuda 🙁

    Responder
    • Nolberto Lopez dice

      junio 24, 2016 en 10:23 pm

      Y cual es el error…?

      Responder
  5. danilo efren dice

    agosto 30, 2015 en 7:48 am

    Excelente ejercicio.
    Gracias por compartirlo.
    Saludos
    Danilo

    Responder
  6. Mario Ibarra dice

    agosto 29, 2015 en 11:54 am

    Buenos días:
    Necesito con urgencia:
    Actualmente estoy utilizando la siguiente fórmula (Excel) =CONTAR.SI(DESDE:HASTA;”L/M”),donde L/M representa Licencias médicas o reposos médicos.EL punto es que no puedo descontar las licencias médicas que implican días Sábados,Domingos o festivos.¿Cómo puedo lograrlo?

    Saludos cordiales,

    Mario Ibarra

    Responder
    • Nolberto Lopez dice

      agosto 29, 2015 en 4:16 pm

      Puedes usar la función DIAS.LAB

      Responder

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Descargar Apps Formulas Excel
  1. Aplicación a Medida
  2. MegaPack contable en excel
  3. Nómina en excel
  4. Contabilidad electrónica en excel
  5. Sistema contable en excel
  6. Cuentas por cobrar en excel
  7. Pago a proveedores en excel
  8. Ingresos y Egresos en excel
  9. Vacaciones de empleados en excel
  10. Control de cfdi en excel
  11. Inventarios en excel
  12. Agenda en excel
  13. Conciliación bancaria en excel
  14. Bancos en excel

Ponte en contacto conmigo para definir detalles de tu nuevo proyecto.

Contactar
  • INICIO
  • CONTACTO
  • CONTABLES
  • VIDEOS
  • CATEGORIAS
  • VBA EXCEL
  • Política de privacidad

Copyright © 2023 · Formulas Excel · by Nolberto Lopez

Copyright © 2023

Descargar Apps Contables en Excel

  1. MegaPack Contable ( 12 aplicaciones ).
  2. Calculo de nomina con acumulados.
  3. Genera XML de Contabilidad Electrónica.
  4. Sistema contable ( Registro de pólizas y estados financieros ).
  5. Control de cuentas por cobrar.
  6. Control de cuentas por pagar.
  7. Control de vacaciones de empleados.
  8. Extrae datos de los CFDI.
  9. Control de inventarios.
  10. Control de agenda.
  11. Conciliaciones bancarias.
  12. Registro de movimientos bancarios.

Descargar aplicaciones contables en excel