Saltar al contenido

Usuario y contraseña de acceso a las hojas de un libro


Antoni

Recommended Posts

Hola a to2,...to2:

El motivo de la presente es para comunicarles que como estoy hasta el "forro" de que a pesar de estar ya en pleno siglo XXI, siguen apareciendo una y otra vez el tema dichoso de proteger la información a los usuarios, he decidido acometer la tarea de hacer un sistema de protección de la información de forma definitiva.

De momento, se limita a un control de acceso por medio de usuario y contraseña.

Posteriormente, también podrá limitarse el control acceso a rangos concretos dentro de la hoja.

A partir de la adjudicación de perfiles, cada usuario solo tendrá acceso a las hojas que le indique ese perfil, eso nos evitará tener que adjudicar permisos usuario a usuario.

Os adjunto dos archivos.

$Y$Users & passwords.xls

Contiene dos hojas: Usuarios y Perfiles y solo puede ser editado por el usuario ADMIN con el perfil ADMINISTRACION y contraseña ADMIN, ambas hojas además, están protegidas por contraseña: ADMIN y encima el proyecto VBA, también está protegido por la contraseña ADMIN.

Todas las contraseñas pueden cambiarse a voluntad, pero si eliminais el registro del usuario ADMIN de la hoja Usuario, nunca mas volvereis a acceder a este archivo.

Al abrir el archivo, se os presentará una pantalla de identificación, introducir usuario ADMIN, contraseña ADMIN, y tendreis acceso a las hojas Usuarios y Perfiles para poder actualizar vuestros usuarios y sus respectivos perfiles.

El otro archivo, MiAplicacion.xls, es un ejemplo de aplicación del tema.

Se os muestra dos combos con los accesos permitidos en función del usuario.

Esos combos pueden ser ocultados y los textos de ayuda de las celdas, pueden ser borrados sin problemas.

Pues a disfrutar, o no, vaya Vd a saber.

06/10/2012 -Subido de nuevo el archivo MiAplicacion.xls. Ver posts #9 y #10.

$Y$Users & passwords.xls

MiAplicación.xls

Enlace a comentario
Compartir con otras webs

Amigo Macro Antonio, me gusta tu trabajo pues poniendo perfiles quizas se puede tener hasta un historial de usuario que ingreso y que cambios a realizado, seria genial que se pudiera realizar.

otro tema con respecto a la seguridad de las hojas tengo este codigo que he utilizado mucho y pienso seguir utilizando, pero me da un error si el usuario da en cancelar da un error en programacion.

se me olvida este codigo, puedes poner una clave y asignar que hojas estaran protegidas, cuando un usuario quiere ingresar le pide la clave si no la tiene lo regresa a la hoja que esta desportegida. lo subo haber si uds. genios del excel lo pueden modificar y sea mas facil asignar que hojas seran portegidas y que clave se usara, porque por ahora todo es atravez de programacion.

Dim strStartHoja As StringDim strSegundaHoja As String
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim z As Integer
Dim i As Integer
Dim x As Boolean
Dim varHoja As Variant
Dim varPaso As Variant
Dim varInput As Variant

'preparar modelo [admin. input]
varHoja = Array("Reporte de Salidas del Almacen", "CONSUMIDORES") 'las hojas a proteger...
varPaso = "celest3" 'palabra de paso... [letras/números]


'desconectar otros Events (evitar un tipo de bucle)
Application.EnableEvents = False

'comprobar hojas
strSegundaHoja = Sh.Name
For i = LBound(varHoja) To UBound(varHoja)
If varHoja(i) = strSegundaHoja Then x = True
Next i
If x = False Then GoTo 99

'ocultar la hoja temporalmente
z = ActiveWindow.Index
Windows(z).Visible = False

'comparar palabra de paso
varInput = InputBox("Palabra de paso:")
If varInput <> varPaso Then Sheets(strStartHoja).Select

'volver a mostrar la hoja
Windows(z).Visible = True

99:

'conectar Events
Application.EnableEvents = True

End Sub

'*************************************************


Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'recordar hoja inicial
strStartHoja = Sh.Name
End Sub[/CODE]

si lo prueban veran que s ecancelan da error y ademas despues abres el libro y no muestra las hojas.

espero que le puedan dar uso y darle sus pequeños arreglos.

subo archivo el cual le di cancelar y ya no me muestra nada pero ahi esta el codigo.

Saludos

Celest3

diesel.rar

Enlace a comentario
Compartir con otras webs

  • 4 weeks later...

No está permitido hacer consultas en este foro.

Publica el tema en el foro de macros y explica exactamente que es lo que pretendes obtener.

Sube el archivo compatible Excel2003 (.xls)

Enlace a comentario
Compartir con otras webs

  • 2 months later...
  • 2 weeks later...
Esta muy bien, solo una pega:

Si desactivas las macro en excel 2003 lo abres sin problema(Usuario-Contraseña). Alguna solucion?

Muchas gracias un Saludo

Cierto, ya lo he arreglado. Subido también el archivo de nuevo en el post #1.

Mis disculpas.

MiAplicación.xls

MiAplicación.xls

Enlace a comentario
Compartir con otras webs

El motivo de la presente es para comunicarles que como estoy hasta el "forro" de que a pesar de estar ya en pleno siglo XXI, siguen apareciendo una y otra vez el tema dichoso de proteger la información a los usuarios, he decidido acometer la tarea de hacer un sistema de protección de la información de forma definitiva.

De momento, se limita a un control de acceso por medio de usuario y contraseña.

$Y$Users & passwords.xls

Contiene dos hojas: Usuarios y Perfiles y solo puede ser editado por el usuario ADMIN con el perfil ADMINISTRACION y contraseña ADMIN, ambas hojas además, están protegidas por contraseña: ADMIN y encima el proyecto VBA, también está protegido por la contraseña ADMIN.

Hola!

Es muy practico e interesante tu aporte el cual estoy seguro que servira para casi todas las situaciones ante usuarios que no tengan mucha pericia en tratar de vulnerarlo. Todo esto lo digo mas que nada con el afan de que aquellos que decidan emplear este metodo para proteger informacion valiosa y confidencial tengan en mente que no es 100% seguro.

Saludos!

Enlace a comentario
Compartir con otras webs

  • 1 year later...

Buenas tardes! Gracias por la ayuda que nos has dado a muchos!. Te quiero consultar si me podras ayudar, ya que hice una planilla y quiero que varios de mi grupo de trabajo puedan entrar con un usuario y una contraseña cada uno de ellos. Es una planilla simple de ventas y la verdad necesito AYUDA!!!....Gracias por todo un saludo:)

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 98 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola perdon no pegue todo mi codigo, no lo copie bien es este al principio: Sub MacroG() Application.ScreenUpdating = False       Mensaje = "No se pueden guardar los datos aún hay celdas vacías:" 'Recorremos las celdas For i = 1 To 6     If Sheets("INGRESO").Range("DATO" & i).Value = "" Then         Valor = Sheets("INGRESO").Range("DATO" & i).AddressLocal         Valor1 = Valor1 & VBA.vbNewLine & Valor     End If   Next i   If Not Valor1 = "" Then     MsgBox Mensaje & VBA.vbNewLine & Valor1, vbExclamation, "Ingreso de Productos" Else     End If   Donde cada celda le cambie el cuadro de nombre C4= DATO1 C5= DATO2 C6= DATO3 C7= DATO4 F4= DATO5 F5= DATO6 asi estoy seleccionando las celdas Comparto mi macro que esta en la nube https://files.fm/u/uzb68tetng  
    • No has especificado cuales son las celdas a validar si están vacías, te he puesto un ejemplo para el rango A1:A6, corrige a voluntad: Sub Borrar() '------- Corregir las celdas según necesidad If Range("A1") = "" Or _ Range("A2") = "" Or _ Range("A3") = "" Or _ Range("A4") = "" Or _ Range("A5") = "" Or _ Range("A6") = "" Then MsgBox "Hay celdas vacías", vbInformation Exit Sub End If '------- Range("C5").ClearContents Range("C7").ClearContents Range("C8").ClearContents Range("C23").ClearContents Range("C24").ClearContents Range("C39").ClearContents Range("C40").ClearContents Range("C55").ClearContents Range("C56").ClearContents Range("C71").ClearContents Range("C72").ClearContents Range("C87").ClearContents Range("C88").ClearContents Range("C103").ClearContents Range("C104").ClearContents Range("C119").ClearContents Range("C120").ClearContents Range("C135").ClearContents Range("C136").ClearContents Range("C151").ClearContents Range("C152").ClearContents End Sub  
    • Hola me podrian ayudar a corregir esta macro, ya que que he puesto la condicion que no se ejecute por si hay valores vacios en 6 celdas y siempre se ejecuta, comparto codigo:     Selection.ClearContents     Range("C5").Select     Selection.ClearContents     Selection.ClearContents     Range("C7").Select     Selection.ClearContents     Selection.ClearContents     Range("C8").Select     Selection.ClearContents     Range("C23").Select     Selection.ClearContents     Range("C24").Select     Selection.ClearContents     Range("C39").Select     Selection.ClearContents     Selection.ClearContents     Selection.ClearContents     Range("C40").Select     Selection.ClearContents     Range("C55").Select     Selection.ClearContents     Range("C56").Select     Selection.ClearContents     Range("C71").Select     Selection.ClearContents     Selection.ClearContents     Range("C72").Select     Selection.ClearContents     Range("C87").Select     Selection.ClearContents     Range("C88").Select     Selection.ClearContents     Range("C103").Select     Selection.ClearContents     Range("C104").Select     Selection.ClearContents     Range("C119").Select     Selection.ClearContents     Range("C120").Select     Selection.ClearContents     Range("C135").Select     Selection.ClearContents     Range("C136").Select     Selection.ClearContents     Range("C151").Select     Selection.ClearContents     Range("C152").Select     Selection.ClearContents     Range("A1").Select     Selection.End(xlUp).Select     Selection.End(xlUp).Select     Selection.End(xlUp).Select     Selection.End(xlToLeft).Select     Selection.End(xlToLeft).Select     Selection.End(xlToLeft).Select     Selection.End(xlToLeft).Select     Selection.End(xlUp).Select     Selection.End(xlUp).Select     Selection.End(xlUp).Select     Selection.End(xlToLeft).Select     Range("C4").Select         End Sub
    • Hola quisiera solucionar un problema ya que tengo 2 hojas de excel. En la "hoja1 columna A" tengo los datos con filtro y hago 2 eventos siempre que son ordenarlos por columna  e inserto filas. Pero al hacerlo en la "hoja2 columna A" donde tengo mis formulas fijas con $  que estan haciendo referencia a la hoja antes mencionada se me desordenan los datos. Entiendo que al fijar la formula con $ e inserto filas en la hoja1  ayuda, pero no cuando ordeno los datos. =hoja1!$A$1   Como hacer que se fijen y no cambien mis formulas?
    • Tengo el siguiente conjunto de formulas con las cuales pretendo buscar el par de fechas con la mayor cantidad de días existente dentro en un conjunto de fechas consecutivas mediante los cuales puedo determinar récords de cumplimiento o incumplimiento de ciertas metas en base a las fechas de eventos determinados  =INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018="");;1);1) =INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018="");;1);2) =INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018<>"");;1);1) =INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018<>"");;1);2) 1.       Como se puede observar en la Columna “U” de la Hoja3 (MATRIZ) hay un total de 18 fechas individuales repartidas desde la Celda “U3” a la Celda “U20” 2.       Las fórmulas deberían ordenar y filtrar las fechas entre eventos consecutivos que correspondan cuando AU=””, 14 pares fechas (U3:U5, U5:U7, U7:U8, U8:U9, U9:U10, U10:U11, U11:U12, U12:U13, U13:U14, U14:U16, U16:U17 U17:U18, U18:U19 y U19:U20) y cuando AU<>”” 02 pares de fechas (U4U6 y U6:U15) conforme a la Imagen 1. 3.       Las fórmulas deberían evaluar individualmente el resultado de la diferencia entre la fecha más reciente y la fecha más antigua correspondiente a cada par de fechas obtenidas en el punto anterior seleccionando el par de fechas con mayor cantidad de días cuando AU=”” y cuando AU<>””, conforme se muestra en la Imagen 1 4.       En consecuencia, el par de fechas con el valor más alto cuando AU=”” es del 07/07/2023 al 01/12/2023 = 147 días, mientras que el par de fechas con el valor más alto cuando A<>”” es del 30/04/2023 al 17/01/2024 = 262 días. 5.       Sin embargo, como se puede observar en la Hoja65 (CARTELERA) al aplicar las fórmulas, aunque los datos varíen la posición y/o se introduzcan otros pares de fechas con mayor cantidad de días dichas formulas solo toman en cuenta el primer par de fechas de abajo hacia arriba cuando AU=”” del 01/01/2023 al 29/01/2023 = 28 días y cuando AU<>”” del 30/04/2023 al 17/01/2024= 262 días. PRUEBA.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.