Desbloqueo de celdas

24/04/2010 - 21:49 por bart | Informe spam
En una hoja EXCEL tengo bloqueadas desde la col/fila N62 hasta la col/fila
R250.Desde la col/fila K62 hasta la col/fila K250, son celdas desbloqueadas.
Si a la celda K62, le entro un valor que empiece por el caracter "C" y el 2º
caracter es "0" se tendrían que desbloquear las celdas N62 HASTA la R62.Si el
valor entrado es distinto a <>C0 tienen que seguir bloquedas las celdas N62
hasta la R62, y así sucesivamente hasta la N250 A R250.Sabe alquien darme una
solución. Estoy trabajando en Excel 2003 y no se mucho de VBA. GRacias de
antemano.

Preguntas similare

Leer las respuestas

#1 Benito Merino
25/04/2010 - 22:25 | Informe spam
On 24 abr, 21:49, bart wrote:
En una hoja EXCEL tengo bloqueadas desde la col/fila N62 hasta la col/fila
R250.Desde la col/fila K62 hasta la col/fila K250, son celdas desbloqueadas.
Si a la celda K62, le entro un valor que empiece por el caracter "C" y el 2º
caracter es "0" se tendrían que desbloquear las celdas N62 HASTA la R62.Si el
valor entrado es distinto a <>C0 tienen que seguir bloquedas las celdas N62
hasta la R62, y así sucesivamente hasta la N250 A R250.Sabe alquien darme una
solución. Estoy trabajando en Excel 2003 y no se mucho de VBA. GRacias de
antemano.



Hola.

Tendremos que hacer un evento, como el que sigue:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 8 And (Target.Row >= 62 Or Target.Row <= 250) And
Target.Value = "C0" Then
ActiveSheet.Unprotect
Target.Resize(1, 11).Locked = False
ActiveSheet.Protect
End If
End Sub

Saludos,

Benito Merino
Barcelona
Respuesta Responder a este mensaje
#2 Héctor Miguel
26/04/2010 - 08:59 | Informe spam
hola, !

hay algunos detalles que dejas a la imaginacion, pero creo podemos empezar
con:

1) abre el editor de vba (alt + F11) y haz un doble clic en el objeto
ThisWorkbook
copia/pega (o escribe) lo siguiente:

Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

2) ahora haz un doble-clic en el objeto Worksheet de "la hoja" de que se trata
copia/pega (o escribe) o siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("k62:k250")) Is Nothing Then Exit Sub
Target.Offset(, 3).Resize(, 5).Locked = Left(Target, 2) <> "C0"
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#3 bart
26/04/2010 - 18:44 | Informe spam
Hola Hector

REctifico sobre el mensaje anterior. Te he comentado que no ha funcionado el
codigo que me enviaste, pero talvez el motivo sea que no he entendido lo
suficiente las instrucciones que mes has comentado.En el apartado 1, me dices
que pulse ALF+F11 t asi lo he hecho. Me he ido al icono examinador de
objetos, me sale una pequeño recuadro para buscar. Le he puesto "this" y
cuando he encontrado "ThisWorkbook" he escrito el codigo de la primera parte
de la hoja.
y he salido de VBA. A continuacion he ido a la hoja "2010A-1" que es el
nombre de la hoja en si,haciendo clik se ha desplegado menu, he elegido
codigo y le he puesto el codigo de la segunda parte de la hoja.He probado si
funcionaba en la hoja 2010A-1, todo el codigo escrito y no hace nada, s decir
al pulsar C0 no se desbloquean las celdas.
Para que tengas mas informacion, si ahora con alt+F11 voy a buscar el
objeto "ThisWorkbook" me sale lo siguiente en resultados de la busqueda en la
columna Biblioteca pone VBAProject, , en la columna clase ThisWorkbook y en
la columa miembro no pone nada.Ademas has quedado 2 filas mas que pone por
orden de columnas: Excel, Workbook, ShowConflictHis por 2 veces.Mas abajo en
otro recuadro, cuyo encabezado es Clases Miembros de Woorkbook, me pase
en una fila Workbook Shhet Selection change y en otra fila Workbooks
ShowConflictHistory. Estoy hecho un lío, con el VBA, YA QUE NO ENTIENDO NADA

sALUDOS, bART

"bart" escribió:

Gracias por la contestacion Hector. He escrito el codigo tal como me has
dicho y no hace absolutamente nada. Me voy a explicar con mas precision. En
una hoja llamada "FICHERO MAESTROS", en la cual en la fila 5, tengo puestos
los titulos de los datos, es decir en la N5 Codigo cliente,M5 Razon social,
L5 Direccion,ect y a partir de las fila 6, voy poniendo los datos. Te pongo
como ejemplo 3 filas de datos.
que vienen despues de la explicacion que te estoy dando.
En otras hojas , estan ubicadas desde la col/fila K62 A K250, para entrar el
codigo de cliente, Si entro el codigo C1, en las proximas filas ya me salen
los datos de Ramon Perez,c/San Antonio,7 Ciudadela y asi sucesivamente. y
estas col/filas donde se visulazan los datos por defecto siempre estan
bloqueadas, con lo cual no puedo modificar ni la razon
soical,direccion,ect.Pero si meto el codigo C0, me visualizara en la fila N
"Clientes varios" pero al mismo tiempo la celda tiene que quedar desbloqueada
y las proximas columnas tambien(es decir hasta la columna R ) y así yo
poder meter los datos especificos de los clientes esporadicos(por decir algo)
Codigo cliente Razon Social Direccion
Poblacion
C0 Clientes varios c/Las Luces,5
Alaior
C1 Ramon Perez c/San Antonio,7
Ciutadella
C2 Pedro Luis c/Pedro Alcantara,23
Mercadal
y asi sucesivamente entrando codigos de cliente y su razon social)

No se si me explicado bien.Hay que modificar el codigo de VBA, me tendrias
que explicar con mas detalle como hacerlo, ya que de VBA estoy muy
tierno.GRacias de antemano



"bart" escribió:

> En una hoja EXCEL tengo bloqueadas desde la col/fila N62 hasta la col/fila
> R250.Desde la col/fila K62 hasta la col/fila K250, son celdas desbloqueadas.
> Si a la celda K62, le entro un valor que empiece por el caracter "C" y el 2º
> caracter es "0" se tendrían que desbloquear las celdas N62 HASTA la R62.Si el
> valor entrado es distinto a <>C0 tienen que seguir bloquedas las celdas N62
> hasta la R62, y así sucesivamente hasta la N250 A R250.Sabe alquien darme una
> solución. Estoy trabajando en Excel 2003 y no se mucho de VBA. GRacias de
> antemano.
Respuesta Responder a este mensaje
#4 Héctor Miguel
29/04/2010 - 06:49 | Informe spam
hola (...), ?????

... encontrado "ThisWorkbook" he escrito el codigo de la primera parte de la hoja
y he salido de VBA...



ANTES de que "salgas" del vba, posiciona el cursor dentro del procedimiento
y pulsa {F5} para que surta efectos el codigo de evento
(o cierra y vuelves a abrir el libro)

... he ido a la hoja "2010A-1"... haciendo clik se ha desplegado menu
he elegido codigo y le he puesto el codigo de la segunda parte de la hoja...



hecho lo anterior ({F5} o cerrar/abrir el libro) esta parte ya debera
funcionar (?)

saludos,
hector.
Respuesta Responder a este mensaje
#5 bart
29/04/2010 - 10:40 | Informe spam
Hola Hector. Creo que lo mejor fuese que te conectaras a mi PC a traves del
programa TEAMVIEWR(no se si lo conoces). Te doy mi numero de telefono.Vivo en
las Islas Baleares(España) y mi numero es 971481566. Me sabe mal, pero estoy
muy verde en VBA y me gustaria que revisases lo que he hecho para ver si me
aclaro.
Saludos de Bart y gracias por todo

"Héctor Miguel" escribió:

hola (...), ?????

> ... encontrado "ThisWorkbook" he escrito el codigo de la primera parte de la hoja
> y he salido de VBA...

ANTES de que "salgas" del vba, posiciona el cursor dentro del procedimiento
y pulsa {F5} para que surta efectos el codigo de evento
(o cierra y vuelves a abrir el libro)

> ... he ido a la hoja "2010A-1"... haciendo clik se ha desplegado menu
> he elegido codigo y le he puesto el codigo de la segunda parte de la hoja...

hecho lo anterior ({F5} o cerrar/abrir el libro) esta parte ya debera
funcionar (?)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida