En este grupo En todos

Foro de Excel



Bloquear celdas si se cumple una condicion

Dav
Ecuador, Ecuador
Escrito por Dav
el 12/03/2009

Hola a todos, necesito ayuda.

Quiero saber como podria bloquear una fila entera si es que una celda cumple una condicion.

Por ejemplo quisiera poder bloquear toda la fila $A$2:$FZ$2 si la celda A1 esta vacia. Y desbloquear la fila si la celda A1 tiene algun contenido.

Muchas gracias por su ayuda

-DANIEL-

Escrito por Héctor Miguel Orozco Díaz
el 13/03/2009

Hola,!

- selecciona el rango cuyas celdas quieras condicionar al contenido de A1
- usa (menu:) datos / validacion
- DESmarca la casilla de "omitir blancos"
- selecciona "personalizada" (en el desplegable de permitir...)
- introduce la siguiente formula (OJO: es direccion absoluta) =largo($a$1)
- acepta/termina

(solo podras introducir datos si la celda A1 NO esta vacia)

saludos,
hector.

Dav
Ecuador, Ecuador
Escrito por Dav
el 13/03/2009
Muchas gracias Hector,

Si habia pensado en esto, lo que pasa es que el rango seleccionado ya tiene una validacion que despliega una lista.

Saludos

-DANIEL-
Escrito por Héctor Miguel Orozco Díaz
el 13/03/2009
hola, Daniel!

siempre sirve de mucho conocer mas detalles de la situacion que se ha de resolver :))

prueba usando la misma regla de validacion por lista (pero) con una formula +/- asi:

=si(largo($a$1),<aqui el origen de tu lista>,$$1)

solo comprueba si mi separador de argumentos (coma) es el mismo en tu sistema

si cualquier duda (o informacion adicional)... , comentas?
saludos,
hector.
Dav
Ecuador, Ecuador
Escrito por Dav
el 14/03/2009
hola hector,

gracias por tu ayuda, pero sabes que la formula que me diste no funciono! De todas formas ya resolvi lo que necesitaba...

lo hice con un codigo de VisualBasic

Private Sub Worksheet_Activate()
"
"Bloquea toda la tabla
ActiveSheet. Unprotect
Range("B2:FZ201"). Select
Selection. Locked = True
ActiveSheet. Protect
"
"Desbloquea cada fila si es que la primera columna de la misma no esta vacia
If Range("A2"). Value <> "" Then
ActiveSheet. Unprotect
Range("B2:FZ2"). Select
Selection. Locked = False
ActiveSheet. Protect
End If
End Sub

Saludos

-DANIEL-
Escrito por Héctor Miguel Orozco Díaz
el 14/03/2009
hola, daniel!

hay todavia algunos detalles que no has expuesto en esta consulta (p.e.)
- no es claro si la celda A1 esta dentro del bloqueo/proteccion de la hoja o es "libre" -?-
- tampoco has comentado cual es el origen de tus listas en la validacion de datos -?-
- (probablemente haya otros que -de momento- solo tu conoces?)

al escribir la formula de la propuesta anterior, "me comi" una letra, debes cambiar
de: =si(largo($a$1),<aqui el origen de tu lista>,$$1)
por: =si(largo($a$1),<aqui el origen de tu lista>,$a$1)

solo comprueba si mi separador de argumentos (coma) es el mismo en tu sistema
(y la formula la comprobe antes de emitirla como propuesta) ;)

con relacion al codigo que terminaste por usar, solo una pregunta:
- que sucede si al activar la hoja con la celda A1 no vacia y desbloqueado ese rango, se llega a eliminar el dato que contenga esa celda-control (A1)?... , seguira "lirbe" el rango, no?

saludos,
hector.
Alonso Alonso
Ingeniería industrial universidad naci...
Escrito por Alonso Alonso
el 24/06/2010

Perfecto! , se cumplio mi objetivo
lo hice con la formula de validación


gracias!

Cacho Rodríguez
Ing. electrónica u.n.r.
Escrito por Cacho Rodríguez
el 24/06/2010

Gracias por avisar, Alonso.