Foros del Web » Soporte técnico » Ofimática »

Contraseña en Excel - So what?

Estas en el tema de Contraseña en Excel - So what? en el foro de Ofimática en Foros del Web. Hola Amigos, tengo un pequeño programa de facturacion el cual utilizan mis empleados. Quisiera que en las demas solapas de excel, donde figura mis ingresos, ...
  #1 (permalink)  
Antiguo 08/03/2006, 06:39
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Contraseña en Excel - So what?

Hola Amigos, tengo un pequeño programa de facturacion el cual utilizan mis empleados.
Quisiera que en las demas solapas de excel, donde figura mis ingresos, mi empleado no pueda ingresar!, se que las solapas se pueden ocultar, pero es mucho trabajo hacerlo, si existe la posibilidad de bloquear el ingreso con alguna clave, seria lo ideal, algo en VS, gracias!!!
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #2 (permalink)  
Antiguo 08/03/2006, 06:50
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Hola

Selecciona la hoja que no quieres que modifiquen y en Herramientas / Proteger / Proteger Hoja --> Puedes definir que quieres dejar hacer a los usuarios, si no quieres que toquen nada deshabilita todas las opciones e introduce una contraseña (para luego poder desbloquear la hoja)

--Saludos--
  #3 (permalink)  
Antiguo 08/03/2006, 07:55
Avatar de zipi2006  
Fecha de Ingreso: febrero-2006
Mensajes: 33
Antigüedad: 18 años, 1 mes
Puntos: 0
Pero haciendo eso pueden ver los datos de la hoja, lo único es que no pueden modificar nada. Lo ideal es que cuando vayan a pinchar el la hoja dos no se pueda.
  #4 (permalink)  
Antiguo 08/03/2006, 08:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Para lo que pides sería una cosa así:
Private Sub Worksheet_Activate()
Cells.EntireColumn.Hidden = True
contra = InputBox("Debes introducir la contraseña correcta o estás despedido", "CONTRASEÑA")
If contra = "Ingresos" Then
Sheets("Hoja2").Visible = True
Cells.EntireColumn.Hidden = False
Range("A1").Select
Else
Sheets("Hoja2").Visible = False
Sheets("Hoja1").Activate
End If
End Sub

Colocalo en el código de VBA perteneciente a la hoja2 (en mi ejemplo).
Haz los cambios precisos en el nombre de la hoja y en la contraseña y ya lo tienes. Sin embargo, ¿no sería más sencillo ocultar todas las columnas y proteger la celda con una clave?
Bueno, aquí tienes un código que te puede servir, pero si quieres algún cambio no tienes mas que comentarlo.
Un saludo.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #5 (permalink)  
Antiguo 08/03/2006, 09:00
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Si lo quieres con código, yo haría lo que propone Potypoty, pero añadiendo solo una pequeña cosita. Pulsas Alt+F11, y desde Herramientas, seleccionas Propiedades de VBAproject... Ahí deberías proteger tu código, con un password, en caso contrario, es como dejar las llaves de la caja fuerte, ecima de la propia caja
  #6 (permalink)  
Antiguo 08/03/2006, 09:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Despiste

Tienes razón 3pies. Como yo lo hago de forma automática cada vez que lo necesito, se me ha olvidado proponerselo.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #7 (permalink)  
Antiguo 08/03/2006, 09:25
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Cita:
Iniciado por potypoty
Tienes razón 3pies. Como yo lo hago de forma automática cada vez que lo necesito, se me ha olvidado proponerselo.
Lo intuía, jejejejeje.
  #8 (permalink)  
Antiguo 12/03/2006, 21:30
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Hola PotyPoty, una consulta mas, probe el codigo y funciona excelente, mi duda es "ya que no manejo VB :( ", que codigo hay que agregarle, para que si apretan "cancel" vuelvan a la hoja donde estaban, y 2do en caso de errarle a la contraseña, como hago para mostrarla nuevamente? y finalmente, se puede ocultar el passoword con astericos **** ?, ojala tengas tiempo y ganas agregarme el codigo que falta, asi lo pongo en uso :D :D :D
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #9 (permalink)  
Antiguo 13/03/2006, 04:25
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
De acuerdo

Lo siento pero los fines de semana no me suelo conectar mucho y además mi ordenador anda bastante lento.
A ver paso a paso:
1: Existen varios tipos de mensajes para interactuar con el usuario. Vete a donde se escribe el código de VB y dale a la ayuda. Escribe msgbox y allí tendrás toda la información sobre las ventanas. Si tienes alguna duda me comentas y te la aclaro.

2: lo de mostrarla nuevamente es solo cambiar un poco el código que te di. Dime cuando quieres que te la muestre y cuando no y ya te lo cambio. Pero de todas formas se puede hacer manualmente Formato-Hoja-Mostrar. Con este método eliges la hoja oculta que quieres mostrar y si es la prohibida te volverá a preguntar la clave.

3: lo de los asteriscos se podría hacer con cógido, pero me imagino que habrá sino una ventana para ello, una forma de hacerlo con alguna función. Date una vuelta por la ayuda de VBA y ya me comentarás. Yo no me he mirado todo. Es un mundo a parte y muchas veces yo me creo una función mas o menos complejo por no buscar entre los distintos objetos de VBA.

Prueba todo lo que te digo y ya me comentarás.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #10 (permalink)  
Antiguo 13/03/2006, 20:26
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
potypoty, lei la ayuda de VB, y encontre esto:

, Use InputBox para mostrar un cuadro de diálogo sencillo que permite introducir información para usarla en una macro. El cuadro de diálogo tiene un botón Aceptar y un botón Cancelar. Si elige el botón Aceptar, InputBox devolverá el valor introducido en el cuadro de diálogo. Si elige el botón Cancelar, InputBox devolverá False.

pero nunca programe en VB y por mas que ponga esfuerzo, no lo saco, yo, haria algo asi:
if InputBox = false then
Sheets("Hoja1").Activate

Pero ya veo que no funciona, como es la cosa?
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #11 (permalink)  
Antiguo 14/03/2006, 02:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Primero: el inputbox consta de varios campos. Uno con el mensaje que quieres que saque, otro con el título, respuesta predeterminada, etc. En tu caso con los dos primeros valdría. Yo utilizaría variables para que sea más visual a la hora de programar.

Segundo: en VBA, como en todos los lenguajes de programación, debes cerrar la función que abras. En este caso si abres el if ... then, se cierra con end if.

Tercero: inputbox es una función de VBA y te devolverá un valor. Este valor es conveniente meterlo en una variable para que esta te indique cúal ha sido la opción elegia. Esto se haría variable=inputbox().

En resumen sería:
Mensaje="Introduzca la contraseña"
Título="Contraseña"
Respuesta=input(Mensaje,Titulo)
if not Respueta then ' esto es como poner if Respuesta=false then
Sheets("Hoja1").Activate
end if

Espero que te sirva.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #12 (permalink)  
Antiguo 17/03/2006, 08:18
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
y si alguien olvidó la contraseña.. ¿cómo se recupera la información?
__________________
"Un experto es una persona que ha cometido todos los errores que se pueden cometer en un determinado campo" - Niels Bohr
:cool: 0!)!u!/\ :patada:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:54.