Saltar al contenido

Permisos de Usuarios para formularios


Editame

Recommended Posts

publicado

hola buenas noches a todos, antes de empezar quiero decir que me puse en la tarea de buscar en cada tema relacionado a este y no encontre una respuesta veraz sobre lo que necesito por eso me atrevo a crear nuevamente este tema pero basado en Formularios.

Puntualmente tengo un archivo de excel con formularios a los cuales les quiero aplicar  permisos de usuarios para habilitar o deshabilitar algunos CommandButond del UserForm principal o Menu segun sea el usuario que ingrese, lo mas similar a este tema que encontre usa Acces y algo con ADO lo cual no tengo conocimientos y por eso no me sirvio pido por favor el redireccionamiento necesario o la ayuda necesaria para poder encontrar la solucion.

Adjuntare el archivo en el cual estoy trabajando con dos fines, el primero poder facilitar la ayuda o respuesta a mi tema y segundo compartir con los demas por si les piuede servir, es un archivo que he sacado de varias fuentes y que poco a poco he ido construyendo segun mi necesidad todavia le faltan muchisimas cosas pero creo que voy por un buen camino para llegar a tener una solucion definitiva en cuanto al manejo de una pequeña empresa.

Les agradezco de antemano la colaboracion que puedan prestarme y esperare atento cualquier solicitud de su parte.

 

NO ME DEJO ADJUNTAR EL ARCHIVO POR LA PAGINA ME BOTA UN ERROR " Ha habido un problema procesando el fichero enviado. Please contact us for assistanc"

ADJUNTO ARCHIVO POR DROPBOX 

https://www.dropbox.com/s/x6yxte77kinxblo/CONTABLE - copia.xlsm?dl=0

publicado

Hola Editame,

Lo tengo hecho en access. Te voy a dar la idea para ver si lo puedes hacer tu. Si luego puedo te pongo algo mas. O si te atascas en algo pregunta.

En mi caso lo hice con los formularios no con los commandbutton. Osea que cuando un usuario va abrir un formulario, dependiendo el nivel que tenga le dejo o no.

Cuando identificas la entrada en el Form LOGIN, ¿Guardas el usuario que ha entrado en algun sitio? ES NECEsARIO. En mi caso lo guardo en una tabla access.

En este caso yo pondria en el form donde quieres que te deasactive los command button, una etiqueta (label) con el típico "USUARIO CONECTADO: JUAN PEPITO".

A la hoja usuario le pondria una columna nueva que se llame por ejemplo NIVEL.(del 1 al 5 por ejemplo, fue mi caso)

Y a cada formulario le doy un nivel en su propiedad tag. En access los formularios tienen la propiedad tag que sirve como información adicional de los formularios. Excel tambien la tiene, la veras en las propiedades del userform. Pues te vas a las propiedades de tus formularios y escribes el la propiedad tag el nivel que quieres que necesite el usuario que va a abrirlo.

En los eventos de los Open_Form de todos los formularios, evaluas el nivel del usuario con el del formulario y si es mayor o igual le dejas y sino no.

 

Ufff espero que me haya explicado:mad:

EDITO: Luego pensando me he dado cuenta que los formularios en excel no tienen el evento al Abrir , ASí que no sirve mi ejemplo, lo borro.

En acces el evento alAbrir te da la opcion de cancelar y en mi caso si el usuario no tenia suficiente nivel cancelaba y no se abria. Pero excel no se puede solo tiene el evento initialize y no se puede cancelar así que no se puede leer la informacion tag del formulario.

 

 

 

 

 

publicado

Mira esto, He quitado formularios por que sino no lo podia colgar.

Solo dejo dos en los cuales he cambiado el color de los botones. Si entras como administrador puedes abrir los dos si entras como el otro usuario solo puedes abrir uno de ellos.

 

 

publicado
Cita

ikanni dijo: "Pero excel no se puede solo tiene el evento initialize y no se puede cancelar así que no se puede leer la informacion tag del formulario".

 

Pero en el evento Activate, si.

publicado

Hola Ikanni agradezco tu respuesta el dia de ayer estuve muy ocupado y no pude revisar pero ya estoy en esas, estudiare el archivo que enviaste revisare el codigo a ver si entiendo como lo hiciste y continuo con el resto.

 

gracias y ya te estare contando como me fue.

publicado
Hace 18 horas, Macro Antonio dijo:

 

Pero en el evento Activate, si.

Ok no lo sabía, estoy un poco perdido con los eventos. Probaré para captarlo bien.

Gracias  MarcroAntonio.

publicado

El evento Activate se ejecuta inmediatamente después del procedimiento Initialize con el formulario ya cargado.

Una forma de ver como funciona todo este tema, es ejecutando el formulario/macro paso a paso (F8), y/o poniendo puntos de interrupción (F9) en la línea deseada y a continuación ejecutar (F5).

publicado

hola muchachos gracias por participar en el tema 

aaquino para entender o simplificar mas bn la forma de hacerlo en el ejemplo que enviaste, es jugar con los tipos de niveles y los mayor o menor que cierto ?

pero tengo una duda 

"If Hoja1.Range("B1") < Me.Tag Then"

En esta linea para el ejemplo tu pones B1 por que es donde esta el grado del nivel pero si son varias celdas como debo seleccionar el rango ??  Normalmente Range(B1:B10 ") por ejemplo o habria que utilizar otro metodo ??

publicado

Apañado para tu ejemplo, como decia MAcroAntonio e Aaquino  pero no me gusta como queda. En el fondo con evento activate no cancelas la apertura del formulario lo que sucede es que ya pasas a tener el control del formulario y entonces lo puedes cerrar. Y el usuario aunque se le cierra, lo puede ver y a mi particularmente no me gusta.

Queda mas apañado con el ejemplo que te he puesto arriba.

Saludos a todos

 

CONTABLE_IK_1.xlsb

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.