Bloquear celdas excel 2013 según condición

He creado un libro de excel 2013 con diversas hojas en las que algunas celdas arrastran el contenido de la anterior hoja. Necesito poder bloquear las celdas de estas hojas que tengan contenido arrastrado de las anteriores. Por ejemplo, las casillas B40 a B50 de la hoja01 están desbloqueadas y permiten escribir en ellas. En la hoja02 estas mismas casillas están también desbloqueadas y arrastran (mediante la siguiente fórmula =SI('Hoja01'!B40="";"";'Hoja01'! B40)) el contenido introducido en las mismas celdas en la hoja01 y mi intención es que aquellas que, en esta hoja02, no tengan contenido sigan desbloqueadas a fín de poder insertar datos en estas y las que si lo tengan se bloqueen y no puedan modificarse. Aclaro que las hojas están protejidas por contraseña.

1

1 Respuesta

4.675 pts. la gente que no logra conseguir sus sueños suele...

Voy a intentar ayudarte aunque va a ser muy limitado ya que no poseo Office 2013.

Sobre la fórmula te comento que no hace falta el si, en la hoja 2 puedes poner =Hoja01! B40 directamente, si B40 de la hoja01 esta vacía no va a generar error, es el mismo resultado. La hoja02 las podes tener siempre protegidas ya que al ser una fórmula lo que tienes en esa hoja, el dato se actualiza según los valores de la hoja01, así que no hay ningún inconveniente. Todo esto que te comento, esta basado en 2007 y no creo que haya sido modificado en 2013. Pruébalo.

Hola Paulo.

Ante todo gracias por tu interés en ayudarme a solventar mi duda.

Respecto a la modificación de la fórmula para leer los datos si tienes razón y no es necesario condicionarla. Referente al bloqueo directo de las celdas, no me sirve la solución de bloquear directamente las celdas en la hoja02 ya que necesito tener la posibilidad de introducir datos en estas celdas en la hoja 02 si llegan vacías de contenido desde la hoja01. Es solo en el caso de que estas celdas en la hoja02 lleguen con contenido introducido en la hoja01 cuando quiero que queden bloqueadas para mantener ese contenido sin posibilidad de ser modificado en la hoja02.

En espera de tu respuesta, si la conoces, gracias de nuevo!

Te paso una solución, debe de haber una forma más simple, pero le estoy dando vueltas y no doy con otra respuesta, al menos por ahora. Mi solución seria:

Paso 1: ingresa en el VBA Editor e ingresa en la hoja01 el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("b40").Value = "" Then
Call bloquea
Else
Call desbloquea
End If
Sheets("hoja01").Select
End Sub

paso 2: ingresa un modulo nuevo y pegale el siguiente codigo:

Sub bloquea()
Sheets("hoja02").Select
Range("b40").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub desbloquea()
Sheets("hoja02").Select
Range("b40").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
End Sub

Al modificar B40 de la hoja uno llamara a la función bloquear/desbloquear según lo que ocurra en tu hoja. Con respecto a la fórmula, en este caso si te conviene utilizar el condicional SI, ya que si en la hoja01 esta vacía va a entregar un valor 0 en la hoja02.

Espero que al menos sirva para solucionar provisionalmente tu consulta, seguramente hay soluciones más sencillas, pero las que intento me esta dando error.

Hola Paulo,

En primer lugar reiterarte mi agradecimiento por dedicar tu tiempo a intentar solventar mi duda.

No me funciona la solución que me planteas. lo he probado y nada...

Te recuerdo que las hojas están protegidas por contraseña.

Podría mandarte a una dirección de correo la hoja para que puedas ver como la tengo planteada y valorar con más conocimiento la posible solución?

Agradeciéndote de nuevo tu atención.

Un saludo!

Envialo a [email protected] recuerda que te voy a estar respondiendo en formato 2007 ya que la version 2013 no la tengo.

Hola paulo,

Te mando correo a la cuenta que me apuntas.

Saludos,

Te envíe el adjunto. Revisa mis comentarios dentro de "ThisWorkbook".

Abrazo.

[quote]

Si te fue útil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas