bloquer celdas

13/01/2008 - 00:51 por charly_76 | Informe spam
hola a todos los del foro

alguien sabe si existe alguna manera de que si ciertas celdas cumplen
cierta condicion o cierto valor se bloquee para que ya no la puedan
modificar???


O que por ejemplo si la celda a1 dice "revizada" se bloquee toda la fila??

¿¿¿se puede que sea parte de la fila???
tengo excel 2003
Gracias de antemano...

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
13/01/2008 - 06:18 | Informe spam
hola, charly !

... alguna manera de que si ciertas celdas cumplen cierta condicion o cierto valor se bloquee para que ya no la puedan modificar???
O que por ejemplo si la celda a1 dice "revizada" se bloquee toda la fila??
se puede que sea parte de la fila???



1) necesitaras (re)proteger "la hoja" en el evento '_open' de tu libro...
-> estableciendo en True el argumento UserInterfaceOnly

2) podrias usar los eventos en el modulo de codigo de "la hoja" (p.e. el '_selectionchange') para que...
a) cuando las "ciertas celdas" en la fila de la ActiveCell cumplan con las "ciertas condiciones"
b) el codigo haga un (des/re)bloqueo de... lo que necesites (p.e.).
- "parte de" (o toda ?) la fila
- "ciertas celdas" de otro rango ?

3) (seguramente) necesitaras proveer algun mecanismo "emergente" para (liberar ?) "ciertas celdas" cuando ya estuvieran bloqueadas

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 charly_76
13/01/2008 - 16:33 | Informe spam
hola Hector

gracias por contestar y estoy de acuerdo que eso es lo que necesito!!!!!???
me gustaria que se blokeara toda la fila cuando introduzca una palabra
en a1.pero como se hace ???? lo que me comentas=?

No se hacer macros solo grabarlas y hacerles pequeñas modificaciones
me puedes ayudar???








"Héctor Miguel" escribió:

hola, charly !

> ... alguna manera de que si ciertas celdas cumplen cierta condicion o cierto valor se bloquee para que ya no la puedan modificar???
> O que por ejemplo si la celda a1 dice "revizada" se bloquee toda la fila??
> se puede que sea parte de la fila???

1) necesitaras (re)proteger "la hoja" en el evento '_open' de tu libro...
-> estableciendo en True el argumento UserInterfaceOnly

2) podrias usar los eventos en el modulo de codigo de "la hoja" (p.e. el '_selectionchange') para que...
a) cuando las "ciertas celdas" en la fila de la ActiveCell cumplan con las "ciertas condiciones"
b) el codigo haga un (des/re)bloqueo de... lo que necesites (p.e.).
- "parte de" (o toda ?) la fila
- "ciertas celdas" de otro rango ?

3) (seguramente) necesitaras proveer algun mecanismo "emergente" para (liberar ?) "ciertas celdas" cuando ya estuvieran bloqueadas

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
14/01/2008 - 06:13 | Informe spam
hola, charly !

me gustaria que se blokeara toda la fila cuando introduzca una palabra en a1 pero como se hace lo que me comentas ?
No se hacer macros solo grabarlas y hacerles pequenas modificaciones ...



el inconveniente en tu cunsulta es que utilizas terminos como "ciertas celdas" y que se cumplan "ciertas condiciones"
lo que resulta en que se deberan hacer algunas suposiciones... -> "inciertas" que... (mas segura que probabemente):
poco o nada podran estar cercanas a "la realidad" que necesitas resolver o pudieran traer otro tipo de "complicaciones" (para ti)

para que tus macros puedan actuar sobre hojas protegidas, usa algo +/- como lo siguiente en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub

si suponemos que deseas des/re/proteger las celdas A2 y A3 dependiendo de si esta vacia (o no) la celda A1...
copia pega lo siguiente en el modulo de codigo de la hoja que protegiste en el evento '_open' del libro (la hoja1 ?)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1]) Is Nothing Then Exit Sub
[a2:a3].Locked = Not IsEmpty([a1])
' Me.EnableSelection = xlUnlockedCells
End Sub

como te decia:
- ejemplos ?... (hay mas que suficientes)
- alguno que se apegue a tu realidad ?... (cual es "realmente" la situacion que necesitas resolver ?)

por eso acostumbro decir al final de una consulta... "a medias, ambigua, incompleta, ...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
> ... alguna manera de que si ciertas celdas cumplen cierta condicion o cierto valor se bloquee para que ya no la puedan modificar???
> O que por ejemplo si la celda a1 dice "revizada" se bloquee toda la fila??
> se puede que sea parte de la fila???

1) necesitaras (re)proteger "la hoja" en el evento '_open' de tu libro...
-> estableciendo en True el argumento UserInterfaceOnly

2) podrias usar los eventos en el modulo de codigo de "la hoja" (p.e. el '_selectionchange') para que...
a) cuando las "ciertas celdas" en la fila de la ActiveCell cumplan con las "ciertas condiciones"
b) el codigo haga un (des/re)bloqueo de... lo que necesites (p.e.).
- "parte de" (o toda ?) la fila
- "ciertas celdas" de otro rango ?

3) (seguramente) necesitaras proveer algun mecanismo "emergente" para (liberar ?) "ciertas celdas" cuando ya estuvieran bloqueadas
Respuesta Responder a este mensaje
#4 charly_76
14/01/2008 - 21:51 | Informe spam
HECTOR NUEVAMENTE GRACIAS

TIENES RAZON
MI SITUACION ES LA SIGUIENTE:
TENGO UNA LISTA DONDE SE INGRESAN DATOS A CADA FILA,
DE "A1" HASTA "A5000"
LO QUE YO QUISIERA ES QUE CUANDO SE HAYAN INGREZADO TODOS
LOS DATOS EN LA FILA "1" YO LA PUEDA MARCAR/PONER UNA PALABRA
EN UNA DE SUS CELDAS POR EJEMPLO EN LA ULTIMA DE LA FILA QUE
SERIA "H1".. INDICANDO CON UNA PALABRA QUE YA ESTA REVIZADA
Y YA NO SE PUEDA MODIFICAR
QUE SOLO SE PUEDAN INGRESAR DATOS EN EL RESTO DE LAS DEMAS FILAS
LAS CUALES SE BLOQUEARIAN CUANDO LES PUSIERA SU RESPECTIVA MARCA
EN LA COLUMNA H COMO SUCEDIO CON LA FILA 1
POR EJEMPLO MARCAR "H2" PARA BOQUEAR LA FILA 2 "H3" PARA LA FILA 3 Y ASI
SUCESIVAMENTE

OJALA ME HAYA EXPLICADO BIEN
MODIFIQUE LA MACRO QUE ME MANDASTE
PERO SOLO LOGRE HACER QUE FUNCIONARA
CON LA FILA 1 NO SE COMO HACER QUE HAGA
LO MISMO CON LAS OTRAS FILAS

"Héctor Miguel" escribió:

hola, charly !

> me gustaria que se blokeara toda la fila cuando introduzca una palabra en a1 pero como se hace lo que me comentas ?
> No se hacer macros solo grabarlas y hacerles pequenas modificaciones ...

el inconveniente en tu cunsulta es que utilizas terminos como "ciertas celdas" y que se cumplan "ciertas condiciones"
lo que resulta en que se deberan hacer algunas suposiciones... -> "inciertas" que... (mas segura que probabemente):
poco o nada podran estar cercanas a "la realidad" que necesitas resolver o pudieran traer otro tipo de "complicaciones" (para ti)

para que tus macros puedan actuar sobre hojas protegidas, usa algo +/- como lo siguiente en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub

si suponemos que deseas des/re/proteger las celdas A2 y A3 dependiendo de si esta vacia (o no) la celda A1...
copia pega lo siguiente en el modulo de codigo de la hoja que protegiste en el evento '_open' del libro (la hoja1 ?)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1]) Is Nothing Then Exit Sub
[a2:a3].Locked = Not IsEmpty([a1])
' Me.EnableSelection = xlUnlockedCells
End Sub

como te decia:
- ejemplos ?... (hay mas que suficientes)
- alguno que se apegue a tu realidad ?... (cual es "realmente" la situacion que necesitas resolver ?)

por eso acostumbro decir al final de una consulta... "a medias, ambigua, incompleta, ...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
>> > ... alguna manera de que si ciertas celdas cumplen cierta condicion o cierto valor se bloquee para que ya no la puedan modificar???
>> > O que por ejemplo si la celda a1 dice "revizada" se bloquee toda la fila??
>> > se puede que sea parte de la fila???
>>
>> 1) necesitaras (re)proteger "la hoja" en el evento '_open' de tu libro...
>> -> estableciendo en True el argumento UserInterfaceOnly
>>
>> 2) podrias usar los eventos en el modulo de codigo de "la hoja" (p.e. el '_selectionchange') para que...
>> a) cuando las "ciertas celdas" en la fila de la ActiveCell cumplan con las "ciertas condiciones"
>> b) el codigo haga un (des/re)bloqueo de... lo que necesites (p.e.).
>> - "parte de" (o toda ?) la fila
>> - "ciertas celdas" de otro rango ?
>>
>> 3) (seguramente) necesitaras proveer algun mecanismo "emergente" para (liberar ?) "ciertas celdas" cuando ya estuvieran bloqueadas



Respuesta Responder a este mensaje
#5 Héctor Miguel
16/01/2008 - 06:15 | Informe spam
hola, charly !

... SE INGRESAN DATOS A CADA FILA, DE "A1" HASTA "A5000"
... QUISIERA... CUANDO SE HAYAN INGREZADO TODOS LOS DATOS EN LA FILA "1"
... LA PUEDA MARCAR/PONER UNA PALABRA... POR EJEMPLO EN... "H1"
.. INDICANDO CON UNA PALABRA QUE YA ESTA REVIZADA Y YA NO SE PUEDA MODIFICAR
QUE SOLO SE PUEDAN INGRESAR DATOS EN EL RESTO DE LAS DEMAS FILAS
LAS CUALES SE BLOQUEARIAN CUANDO LES PUSIERA SU RESPECTIVA MARCA EN LA COLUMNA H ...



suponiendo que se trata de la "hoja1", que inicialmente estan desbloqueadas las columnas A:H (h inclusive)
que protgiste la hoja con la clave "xyz", y se bloqueran las filas de cuya columna pongas REVIZADO
(asi... con mayusculas y con Z) -???-

copia/pega las siguientes lineas:

1) en el modulo de codigo de esa hoja (la hoja 1 ?)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Locked Or Target.Column <> 8 Then Exit Sub
If Target = "REVIZADO" Then Target.EntireRow.Locked = True
End Sub

2) en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "xyz", 1, 1, 1, 1
End Sub

3) selecciona algun punto de insercion dentro del procedimiento '_open' y pulsa la tecla {F5}

4) regresa a la hoja, introduce la palabra (REVIZADO) en alguna fila en su columna H y...

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida