Bloquear rango

24/09/2005 - 12:07 por chy | Informe spam
Hola a todos,

estoy tratando de bloquear un rango en una hoja, el rango se
bloquearía al escibir un usuario sus iniciales en una celda.

Ej. última fila de datos introducidos Fila22 (se meten 2 celdas con
datos, A y B) en la columna "C" iria el comprobado de esos datos por
otro usuario escribiendo sus iniciales p.ej. "AGP" de forma que se
bloquearía esa fila, si esas iniciales y el usuario de red son
concordantes, es decir abría que asignar previamente las
equivalencias: AMP - AGARCIA; BGH - BGOMEZ o hacer unas sentecias IF
Then.

Alguíen me puede ayudar.

Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/09/2005 - 02:10 | Informe spam
hola, carlos !

estoy tratando de bloquear un rango en una hoja, el rango se bloquearia al escibir un usuario sus iniciales en una celda.
Ej. ultima fila de datos introducidos Fila22 (se meten 2 celdas con datos, A y B)
en la columna "C" iria el comprobado de esos datos por otro usuario escribiendo sus iniciales p.ej. "AGP"
de forma que se bloquearia esa fila, si esas iniciales y el usuario de red son concordantes
es decir abría que asignar previamente las equivalencias: AMP - AGARCIA; BGH - BGOMEZ
o hacer unas sentecias IF Then.



1) tendras que encontrar la forma de '...asignar previamente las equivalencias: AMP - AGARCIA; BGH - BGOMEZ...' :-(
2) tambien tendras que encontrar la forma de 'validar' si OTRO usuario SI PUEDE hacer uso de las celdas 'bloqueadas' :-(
3) [por lo pronto] te paso al final la forma de 'encontrar' el nombre del usuario que loggeo en la sesion de windows...

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

con una llamada a las API's de windows... podras 'hablarle' al usuario loggeado en windows
[y si quieres... tambien al que esta 'registrado' en la aplicacion] :))
copia las siguientes lineas...
en un modulo de codigo 'normal' ==' para que el modulo sea 'exclusivo' del codigo NO-disponible al usuario :) '
Option Private Module
' una variable publica para 'almacenar' al usuario loggeado '
Public UsuarioDeSesion As String
' la llamada a las API's '
Declare Function NombreDelUsuario Lib "AdvAPI32.dll" Alias "GetUserNameA" _
(ByVal Almacen As String, Largo As Long) As Long
' la funcion que 'devuelve' el nombre del usuario en la sesion _
esta funcion la podras llamar siempre [si por alguna razon 'se borra' la variable] :( '
Function InicioDeSesion() As String
Dim Nombre As String * 100, Largo As Long
Largo = 100
NombreDelUsuario Nombre, Largo
UsuarioDeSesion = Left(Nombre, Largo - 1)
End Function
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
InicioDeSesion
End Sub
en OTRO modulo de codigo 'normal' ==Sub Nombres()
MsgBox "Aplicacion registrada por: " & Application.UserName & vbCr & _
"Sesion iniciada por... Hola, " & UsuarioDeSesion
End Sub
Respuesta Responder a este mensaje
#2 chy
25/09/2005 - 13:23 | Informe spam
Gracias Héctro, por tu respuesta.

Ahora voy a por lo de bloquear las celdas, utilizo este código donde
rng es un rango variable definido dentro de la hoja que va creciendo en
función de las nuevas filas que se vayan incorporando a la hoja.

"rng"ÞSREF(Hoja1!$A$1;0;0;CONTARA(Hoja1!$A:$A);CONTARA(Hoja1!$1:$1))

Estoy intentando bloquear el rango cada vez que se mete "a" en la
columna "F" que chequee el valor introducido en la columna F una vez
chequeado, bloqueo todo el rango. Y asi en cada nueva linea que se
introduzca.
-
Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range


If Target.Address = "$F$1" Then
If Target.Value = "a" Then
Range("rng").Locked = True
ActiveSheet.Protect Password:="clave"
ElseIf Target.Value = "b" Then
ActiveSheet.Unprotect Password:="clave"
Range("rng").Locked = False
End If
End If
End Sub
-

Gracias un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida