Ayuda Plis

01/02/2004 - 00:08 por Daniel S.L. | Informe spam
Hola a todos !!

Mi consulta seria la siguiente de que forma por código se puede hacer de que cuando
uno entre o abra el archivo llamado "Estado de cuenta vendedores.xls" primero le pida
su clave de la persona que entra y que al darle la palabra clave a un costado de
Excel o en alguna parte visible ponga el nombre de la persona quien e ese momento
esta usando el archivo y si es que se hace alguna modificación se sepa con que fecha
se abrió dicho archivo. se puede hacer eso?...

Gracias anticipadas por la ayuda prestada

Un saludo,
Daniel.
 

Leer las respuestas

#1 Héctor Miguel
01/02/2004 - 07:31 | Informe spam
hola, Daniel !

... que cuando ... abra el archivo ... pida ... clave ... y que ... en alguna parte visible ponga el nombre [...]
... y si es que se hace alguna modificacion se sepa con que fecha se abrio dicho archivo. se puede hacer eso?...



en el modulo de codigo del libro [ThisWorkbook] ==el siguiente procedimiento:
1.- 'solicita' un nombre [por un inputbox] =>'supone' que el usuario es... 'honesto'???<2.- 'lo pone' en la siguiente celda 'libre' de 'cierta' hoja [que pudiera estar oculta =>propiedad Visible = xlVeryHidden<=]
[mientras el libro esta abierto, puedes hacer referencia a 'esta' celda para poner 'el nombre' en otros eventos] ;)
3.- en la celda 'contigua' pone la fecha y hora en que 'ocurre' el evento [Workbook_Open]
4.- en la 'siguiente' celda contigua pone una 'descripcion de la accion' =>p.e. 'apertura''<Private Sub Workbook_Open()
With Worksheets("Hoja0").Range("a65536").End(xlUp)
.Offset(1) = InputBox("Indica tu nombre/clave", "Iniciando sesión...")
ActiveWindow.Caption = ThisWorkbook.Name & " por: " & .Offset(1)
.Offset(1, 1) = Now
.Offset(1, 2) = "Apertura"
End With
End Sub

el siguiente procedimiento [similar al anterior] hace 'lo propio' cuando el usuario 'graba' el archivo
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Hoja0").Range("a65536").End(xlUp)
.Offset(1) = .Offset(0)
.Offset(1, 1) = Now
.Offset(1, 2) = "Grabación"
End With
End Sub

son 'solo ideas' y NO son 'perfectas' [mucho menos... 'infalibles'] :( [p.e.]
- el inputbox 'muestra' lo que se escribe :( => 'solucion': un formulario con un textbox y la propiedad 'PasswordChar' <- si se 'cancela' la accion de 'guardar'... :(( =>hay que 'truquear' el evento para que NO 'registre' [si se cancela]<= ;)
- si quieres usar claves para los nombres... se necesita una 'tabla' de referencias [quizas en la misma hoja 'veryhidden'] ;)
- ¿que pasa si...
el usuario 'cancela' la 'peticion' de entrar una clave o nombre???
se abre el libro SIN 'permiso' de usar macros???
quisieras 'rastrear' en que celda/s [y hoja/s] se hacen modificaciones???
??????????? etc. o sea... ¿que es lo que 'realmente' necesitas?

saludos,
hector.

Preguntas similares