Contraseñas distintas para columnas

20/10/2006 - 17:43 por CARLOS CARNERO | Informe spam
Muy buenas a todos: Tengo una hoja de cálculo, en la cuál me es
imprescindible que ciertas columnas en las que tengo formulas tengan
distinta contraseña a las columnas que tienen sólo texto:
1. ¿Es posible hacerlo en Excel-office 97 cuando no es compartido?
2. Lo mismo, pero ¿cuando es compartido?

Gracias,

Carlos Carnero Gálvez

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/10/2006 - 22:17 | Informe spam
hola, Carlos !

... una hoja de calculo... me es imprescindible que ciertas columnas en las que tengo formulas
tengan distinta contrase#a a las columnas que tienen solo texto:


1. Es posible... en Excel-office 97 cuando no es compartido?
2. Lo mismo, pero cuando es compartido?

suponiendo que las 'ciertas columnas' [clave1] son A, C y E [1, 3 y 5]
y que las otras 'ciertas columnas' [clave2] son G y H [7 y 8] -???-

copia/pega las siguientes lineas en el modulo de codigo de 'esa' hoja...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a:a,c:c,e:e,g:h")) Is Nothing Then
Application.EnableEvents = False
ActiveCell.Select
Application.EnableEvents = True
End If
If Intersect(ActiveCell, Range("a:a,c:c,e:e,g:h")) Is Nothing Then Exit Sub
Dim Clave As String
Select Case ActiveCell.Column
Case 1, 3, 5: Clave = "Clave 1"
Case 7, 8: Clave = "cLaVe 2"
End Select
If InputBox("Codigo de acceso...", "REQUERIDO !!!") <> Clave Then [b1].Select
End Sub

notas: [espero que] debera funcionar tanto con libros compartidos como 'individuales' -?-
[definitivamente] va a resultar todo un 'engorro' eso de andar pidiendo 'permiso' para seleccionar 'esas' celdas :-((
[por que ?] -> es necesario EVITAR una seleccion de mas de una celda [podrian quedar las 'prohibidas' intercaladas] :))
si la clave es 'erronea'... el codigo manda a seleccionar una celda 'NO prohibida' :D
si no queres 'ver' los caracteres de la clave cuando de introducen... deberas proveer un formulario de usuario ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 CARLOS CARNERO
21/10/2006 - 00:50 | Informe spam
Ante todo muchas gracias Héctor por tu amable atención: Observo que
en cuanto al código de acceso REQUERIDO, sólo funciona con número y
no con texto ¿Estoy en lo cierto?, y por citar las columnas que deseo
dar en este caso al usuario 1, es desde la columna "B" hasta la "J",
mientras que al usuario 2 (el administrador, donde contienen las
formulas) las columnas "A" y "K".

Entonces cuando requiero ingresar a las columnas "B" hasta la "J", me
pide esta clave por cada columna. ¿Existe algún modo, dado a que son
correlativas ó secuenciales se pueda acceder desde una sola
operación?

Esta es la sintaxis que aplique de acuerdo a tu ejemplo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target,
Range("b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,a:h")) Is Nothing Then
Application.EnableEvents = False
ActiveCell.Select
Application.EnableEvents = True
End If
If Intersect(ActiveCell,
Range("b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,a:h")) Is Nothing Then Exit
Sub
Dim Clave As String
Select Case ActiveCell.Column
Case 2, 3, 4, 5, 6, 7, 8, 9, 10: Clave = "1234"
Case 1, 11: Clave = "9876"
End Select
If InputBox("Codigo de acceso...", "REQUERIDO !!!") <> Clave Then
[b1].Select
End Sub

Saludos y una vez más, muy agradecido.

Carlos Carnero Gálvez
Respuesta Responder a este mensaje
#3 Héctor Miguel
21/10/2006 - 02:07 | Informe spam
hola, Carlos !

__ 1 __
... en cuanto al codigo de acceso REQUERIDO, solo funciona con numero y no con texto Estoy en lo cierto?



1) no se si te refieres a la 'clave' que se solicita por codigo -?- [de ser asi]...
en el ejemplo expuse 'textos'... en las modificaciones usas 'numeros'... [tu que opinas ?] :D
de ser algo diferente al supuesto anterior... comentas algun detalle adiiconal ?

__ 2 __
... las columnas... en este caso al usuario 1, es desde la columna "B" hasta la "J"
... al usuario 2 (el administrador, donde contienen las formulas) las columnas "A" y "K".



2) en este caso, puedes modificar los 'Cases' [del Select Case ActiveCell.Column] +/- de la siguiente forma:
para columnas B:J -> Case 2 To 10 [puedes 'simplificar' la modificacion] ;)
para columnas A, K -> Case 1, 11 [tal como lo has modificado] ;)

__ 3 __
... cuando requiero ingresar a las columnas "B" hasta la "J", me pide esta clave por cada columna.
... algun modo, dado a que son correlativas o secuenciales se pueda acceder desde una sola operacion?



3) el ejemplo ha sido [unicamente] usando el evento '_selectionchange' [cuando el usuario cambia la seleccion de celdas/rangos]
dependiendo de algunos otros detalles, pudiera ser necesario cambiarlo al evento '_change' [cuando se modifican celdas/rangos]
[incluso, podria necesitarse combinar ambos -y posiblemente otros-] -?-
para que se trate de 'una sola operacion' [de solictar claves-por-usuario]... se necesita conocer: como/cuando/donde/por que/...
[de acuerdo a lo anterior: al cambiar la celda activa ?... al modificar sus datos ?... 'ambas dos a la par que juntas' ? :))
[en realidad, se trata de un 'juego de logica' para encontrar/determinar las variables y su 'permanencia'] :D

__ 4 __
Esta es la sintaxis que aplique de acuerdo a tu ejemplo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,a:h")) Is Nothing Then
Application.EnableEvents = False
ActiveCell.Select
Application.EnableEvents = True
End If
If Intersect(ActiveCell, Range("b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,a:h")) Is Nothing Then Exit Sub
Dim Clave As String
Select Case ActiveCell.Column
Case 2, 3, 4, 5, 6, 7, 8, 9, 10: Clave = "1234"
Case 1, 11: Clave = "9876"
End Select
If InputBox("Codigo de acceso...", "REQUERIDO !!!") <> Clave Then [b1].Select
End Sub



4) si se trata de un rango de celdas/columnas consecutivas [independientemente de una clave para unas u otras]...
puedes especificarlo como uno solo en el 'Intrsect' -> If Not Intersect(Target, Range("a:h")) Is Nothing Then
[otra]... si revisas la linea 4 de las 'notas'... dice que hay que 'mandar' la seleccion a una celda 'NO prohibida' <= OJO
en la modificacion la estas mandando a la celda 'B1' [la misma que en el ejemplo] pero... la columna 'B'... ES 'especial' :))

si cualquier duda [o requieres ayuda 'especifica']... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 CARLOS CARNERO
23/10/2006 - 19:03 | Informe spam
Hola Héctor un gusto en saludarte y una vez más agradecerte por tu
atención:

En cuanto a la clave del codigo de acceso REQUERIDO, si funciona con
numero y con texto, lo que pasa que esta hoja tiene un autofiltro
protegido y me parece que por ahí se estaba cruzando:

Esta hoja tiene la siguiente característica: Es una base de datos de
organización de archivos y que tiene un autofiltro protegido y en la
columna "A" tiene la fórmula DESREF (que días antes gentilmente me
habías proporcionado) y una simple " = " en la columna "J" (en
referencia a la "A", que es un comodín para entrelazar otras hojas).
Lo que pasa es que yo necesito que otro usuario ingrese información
sólo desde la columna "B" hasta la "J" dando click a un icono para
insertar y/o eliminar fila(s) (que incluso la macro copia la fila que
le antecede) pero que no pueda modificar ni la "A", ni la "K".

Este es el intento que estoy haciendo:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target,
Range("b:b,c:c,d:d,e:e,f:f,g:g,h:h,i:i,j:j,a:h")) Is Nothing Then
Application.EnableEvents = False
ActiveCell.Select
Application.EnableEvents = True
End If
If Intersect(ActiveCell, Range(a:h")) Is Nothing Then Exit Sub
Dim Clave As String
Select Case ActiveCell.Column
Case 2, to 10: Clave = "1234"
Case 1, 11: Clave = "9876"
End Select
If InputBox("Codigo de acceso...", "REQUERIDO !!!") <> Clave Then
[b1].Select
End Sub

Pero me sale esta ventana de error:

"Error de compilación, error de sintaxis"

y luego me traslada a esta sintaxis

Sub Imagen22_AlHacerClic()
Application.ScreenUpdating = False
If TypeName(Selection) <> "Range" Then Exit Sub
If Mayusc Then Selection.EntireRow.Delete: Exit Sub
Selection.EntireRow.Insert
Selection.Offset(-1).Resize(1).EntireRow.Copy _
Cells(Selection.Row, 1).Resize(Selection.Rows.Count)
Cells(Selection.Row, 2).Resize(Selection.Rows.Count, 8).ClearContents
ActiveSheet.Protect PassWord:="1234", UserInterfaceOnly:=True
ActiveSheet.EnableAutoFilter = True

End Sub


Esta es la parte sombreada (pero esto es vital para que copie la fila
que le antecede):

"Selection.Offset(-1).Resize(1).EntireRow.Copy _
Cells(Selection.Row, 1).Resize(Selection.Rows.Count)"

Muchas gracias,

Carlos Carnero Gálvez
P.D. Si es posible que te pueda enviar el archivo: mi correo es

Respuesta Responder a este mensaje
#5 CARLOS CARNERO
23/10/2006 - 19:09 | Informe spam
Me olvidaba: lo que deseo evitar es el hecho de estar en celdas
activas, para que no pida contraseñas cada vez que me traslado de una
celda a otra. La ventana debe activarse sólo al inicio para que se
habilite el acceso a las columnas de la "B" hasta la "J" y cuando el
administrador requiera hacer alguna modificación en las columnas "A" y
"J".

Gracias y saludos,

Carlos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida