Permisos usuarios microsoft excel
Hola... Tengo el siguiente macro que quiero ampliar y la verdad no logro hacerlo
En este macro hay dos tipos de usuarios administradores y el resto
Yo lo que quiero es que existan 4 tipos de usuarios (administradores, RRHH, sueldos, Administración)
Muchas gracias por la ayuda
Les dejo la macro
Private Sub Workbook_Open()
'Creamos un vector con todos los usuarios con
'permisos de mayor nivel, para lo cual creamos una lista
administradores = "Contabilidad,Facturacion,Personal,Mateo,Ignacio,Irene"
'separamos los elementos de la matriz
'"administradores" usando split, y por la coma
administrador = Split(LCase(administradores), ",")
'Miramos si el nombre del usuario que ha abierto
'el fichero de excel, está en esa lista
usuario = LCase(Application.UserName)
For i = 0 To UBound(administrador)
posicion = posicion + InStr(usuario, administrador(i))
Next
'Si el nombre del usuario no está dentro de
'la lista, entonces, la posición será igual a 0,
'por lo que el usuario no tendrá derechos de administrador
If posicion = 0 Then
'en ese caso, ocultamos las hojas que no queremos mostrar
'(en este caso suponemos que es la hoja3, pero el nombre
'interno que se ve desde VBA, no el nombre de la pestaña)
Hoja3.Visible = xlSheetVeryHidden
Else
'en esl caso de ser un usuario administrador,
'mostraremos las hojas que queremos mostrar
'(en este caso suponemos que es la hoja3, pero el nombre
'interno que se ve desde VBA, no el nombre de la pestaña)
Hoja3.Visible = xlSheetVisible
End If
'grabamos los cambios
ActiveWorkbook.Save
End Sub
En este macro hay dos tipos de usuarios administradores y el resto
Yo lo que quiero es que existan 4 tipos de usuarios (administradores, RRHH, sueldos, Administración)
Muchas gracias por la ayuda
Les dejo la macro
Private Sub Workbook_Open()
'Creamos un vector con todos los usuarios con
'permisos de mayor nivel, para lo cual creamos una lista
administradores = "Contabilidad,Facturacion,Personal,Mateo,Ignacio,Irene"
'separamos los elementos de la matriz
'"administradores" usando split, y por la coma
administrador = Split(LCase(administradores), ",")
'Miramos si el nombre del usuario que ha abierto
'el fichero de excel, está en esa lista
usuario = LCase(Application.UserName)
For i = 0 To UBound(administrador)
posicion = posicion + InStr(usuario, administrador(i))
Next
'Si el nombre del usuario no está dentro de
'la lista, entonces, la posición será igual a 0,
'por lo que el usuario no tendrá derechos de administrador
If posicion = 0 Then
'en ese caso, ocultamos las hojas que no queremos mostrar
'(en este caso suponemos que es la hoja3, pero el nombre
'interno que se ve desde VBA, no el nombre de la pestaña)
Hoja3.Visible = xlSheetVeryHidden
Else
'en esl caso de ser un usuario administrador,
'mostraremos las hojas que queremos mostrar
'(en este caso suponemos que es la hoja3, pero el nombre
'interno que se ve desde VBA, no el nombre de la pestaña)
Hoja3.Visible = xlSheetVisible
End If
'grabamos los cambios
ActiveWorkbook.Save
End Sub
1 respuesta
Respuesta de calvuch
1