Desproteger celdas de forma dinámica, en función de la referencia de otra c

15/04/2011 - 11:28 por cataliza2 | Informe spam
¡ Hola ! Soy nuevo en este foro y hace poquito que he empezado con esto de las macros, así que pido ayuda y paciencia conmigo, aunque no me considero torpe.

Os cuento, tengo una hoja excel llamada "Modelo" en la que quiero hacer lo siguiente:

Tengo una celda desprotegida (C139), que tiene una validación por lista con dos campos [Atlas; Otro].

Y una celda protegida (C141) que por defecto estará protegida y que contiene una fórmula. Lo que quiero que suceda es lo siguiente: Cuando seleccione "Atlas" de la lista, quiero que la celda se mantenga protegida. Sin embargo, cuando escoja "Otro" de la lista, quiero que se desproteja la celda (C141) y que me permita escribir en ella.

El password para desbloquear sería "tecnico".

Además y si es posible, me gustaría que si, después de haber desprotegido (C141) al haber escogido en "Otro" y haber escrito sobre ella, si vuelvo a escoger "Atlas" en (C139), la celda (C141) vuelva a tener la fórmula que tenía y se vuelva a proteger.

Lo he intentado así, pero sin buenos frutos:

En "This workbook":

Private Sub Workbook_Open()
Worksheets("Modelo").Protect UserInterfaceOnly:=True
End Sub

En el Sheet (Modelo) (En este además tengo parte de una macro que muestra o no una serie filas de la hoja):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$26" Then
Exit Sub
Else
Call OcultarMostrarFilas
End If
If Intersect(Target, [B139]) Is Nothing Then Exit Sub
[B141].Locked = LCase([B139]) <> "Otro"
[B141].Unprotect "tecnico"
End Sub

Tengo la duda, además, de si debería poner el código en el Sheet Modelolo o en un nuevo módulo que deba crear.

Agradecezco por adelantado cualquier ayuda que me pudieran prestar.

Muchas gracias y buen fin de semana,

David
 

Preguntas similares