Mostrar columnas excel por usuario y contraseña

Tengo un calendario excel en donde las filas corresponden a los días del año y las columnas a distintas personas, por cuestiones de la ley de protección de datos necesito hacer que cada una de las personas solo pueda ver unicamente su propia columna o lo que seria su calendario y no las del resto.

¿Cómo puedo hacer esto?

1 respuesta

Respuesta

Entiendo que cada usuario es único, es decir, que el mismo usuario con diferente contraseña no significa dos usuarios diferentes.

Dicho esto, para poder hacer lo que quieres tendrás que poner en la fila 1 el nombre de cada usuario así:

De este modo identificas cada columna con su usuario.

Luego en Thisworkbook deberás pegar lo siguiente:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

MsgBox "No tienes permitido guardar el archivo", vbCritical
Cancel = True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

End Sub

Private Sub Workbook_Open()

Sheets("Hoja1").Select
Application.ScreenUpdating = False
ActiveSheet.Unprotect ("password")
Application.DisplayFormulaBar = False
Sheets("Hoja1").Range("A1").Select
Do Until ActiveCell.Value = Environ("Username")
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.EntireColumn.Hidden = False
ActiveSheet.Protect ("password")

End Sub

Son 3 macros:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Se ejecuta cuando cierras el libro y vale para que no pregunte por guardar los cambios

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Se ejecuta cuando intentas guardar y no deja guardar los cambios, ya que si el fichero está en red, podría guardar el libro con una columna sin ocultar

Private Sub Workbook_Open()

Se ejecuta al abrir el libro y muestra la columna que el Username del usuario del PC coincide con el de la fila 1

Ten en cuenta que cuando hagas el excel el libro debe quedar con todas las columnas de los usuarios ocultas

Una vez lo tengas hecho, si tienes que hacer alguna modificación, no te dejará porque se ejecutará la macro Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean). Para poder hace rmodificaciones debes primero Interrumpir el Editor de proyectos (Menu Ejecutar/Interrumpir) luego guardar y luego Restablecer (Menu Ejecutar/Reestablecer).

También debes proteger la visualización del proyecto en el Menu Herramientas/Propiedades de VBA Project

Por último te he puesto en negrita lo que debes modificar según el password que quieras poner y el nombre de la hoja que contiene los datos

Pruébalo y me cuentas

Hola gregori00001

Muchas gracias por tu tiempo, he probado lo que me has dicho pero no me ha terminado de funcionar, supongo que no lo habré ejecutado bien......me da un error de depuración en la línea

ActiveCell.Offset(0, 1).Select

Que puede ser?

Comprueba lo siguiente:

1- ¿Has sustituido "Hoja1" por el nombre de tus hojas?

2- ¿Has sustituido "password" por tu password real?

3- Entre los nombres de usuarios que has puesto en la fila 1 hay uno que coincide con el nombre de usuario de inicio de sesion de windows del PC que estás usando?

4- ¿La Hoja donde están los datos está protegida y las columnas ocultas cuando se abre el archivo?

5- ¿Las Macros están en THISWORKBOOK?

Para poder comprobar y modificar el libro recuerda que debes interrumpir la Macro para que te deje Guardar los cambios

Ya dirás

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas