Cómo registrar el acceso a un archivo excel

Tengo un archivo excel en una carpeta compartida en red, en el que se van introduciendo datos a través de un formulario (UserForm). A este archivo únicamente pueden acceder usuarios autentificados mediante usuario y contraseña. Lo que pretendo hacer es que cada vez que uno de estos usuarios acceda al archivo en cuestión quede registrado, en una de las hojas de este libro, usuario que accede, hora y fecha de acceso; pero, además, si fuera posible, que datos han incorporado y/o modificado.

1 respuesta

Respuesta
2

Ya tienes definido en qué hoja van a estar los usuarios y su contraseña, ¿o estos datos los quieres en la macro?

¿Cómo se va a llamar la hoja dónde se van a almacenar los accesos?

¿Y eso de que los datos que han incorporado y/o modificado? ¿Te refieres a todo lo que hagan en cuál hoja? ¿O lo que hagan en todo el libro? Y si modifican 6 hojas, ¿quieres qué la macro te cree 6 hojas para decirte qué hizo en cada hoja?

Dam, gracias por responder. Paso a dar respuesta a tus cuestiones:

Los usuarios y contraseñas se encuentran definidos en una de las hojas del Libro, concretamente en "LISTAS". Al abrír el libro, de lanza un UserForm, en el que deben introducir Usuario y Contraseña que, a través de una macro, se copian en la hoja ("LISTAS") y, si estos datos coinciden con los definidos en esa misma hoja, se abre el Libro.

En cuanto a los datos que incorporen y/o modifiquen, se refiere a los siguiente:

Una vez se accede al Libro (Usuario y contraseña correcta), se da paso a otro UserForm1, utilizado como formulario para la entrada de datos, que los registra en la Hoja "DATOS", donde cada uno de los items introducidos se irán colocando en sus respectivas columnas, todas ellas tituladas, de la "A" a la "I" (Núm. de Registro, fecha, procedencia..., etc.). Los usuarios autorizados, únicamente pueden introducir datos nuevos o modificar alguno de los ya existentes, no pueden hacer nada más, ni crear hojas nuevas, ni acceder al resto del Libro; por lo tanto, lo que me interesa es saber:

1.- Cómo registrar la fecha y hora de acceso del usuario

2.- Qué datos ha introducido o modificado

NOTA.- De momento, por si se te ocurre algo más estructurado y organizado, para salir del paso, he preparado el siguiente código, que me graba en la columna "J" la fecha y hora de acceso y en la "K" el Usuario. De esta manera, cada dato introducido (recordemos que se encuentran en el rango "A:I"), llevará, a continuación la fecha y de la grabación y el Usuario que la efectuó.

'' Código en la Hoja ("DATOS")

Private Sub Worksheet_Change(ByVal Target As Range)
Application.MoveAfterReturn = False
If Target.Count = 1 Then
If Not
Intersect(Target, Range("A:I")) Is Nothing Then

Cells(Target.Row,"J") = Now
Cells(Target.Row, "K") = Sheets("LISTAS").Range("H2")
End If
End If
End Sub

Saludos.

Perdona en tardar en responder, podrías enviarme tu archivo con los formularios para ir ajustando el código. Pensé que había de empezar de cero, pero mejor trabajamos en tu hoja hasta terminarla.

No hay nada que perdonar. Te acabo de enviar el Libro de ejemplo.

Gracias, Dam.

Veo bastante bien el código para poner la fecha y el usuario.

Si quieres puedes poner este código en tu form de inicio, para que te almacene la fecha y la hora cada vez que entren a excel

If a = ComboBox1 And b = TextBox1 Then
Sheets(4).Range("H" & Sheets(4).Range("H" & Rows.Count).End(xlUp).Row + 1) = ComboBox1 ''Copia el dato del ComboBox1 en la hoja que ocupa la posición 2
''en la celda ("H2")
Sheets(4).Range("I" & Sheets(4).Range("I" & Rows.Count).End(xlUp).Row + 1) = TextBox1 ''Copia el dato del textbox1
''en la celda ("I2")
Sheets(4).Range("J" & Sheets(4).Range("J" & Rows.Count).End(xlUp).Row + 1) = Now
frmContraseña.Hide

Con se código cada vez te va a poner los datos de usuario y clave y fecha en el siguiente fila disponible de las columnas H, I y J

Saludos. Dam

Gracias por tu respuesta. Te importaría enviarme el archivo incluyendo el código que propones, manteniendo desactivado al que sustituye. Te digo esto porque creo que debe haber un error en las cedas que supuestamente se copian los datos del código. Es que no me funciona.

Saludos

Listo te envié el archivo.

Saludos. Dam

No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas