Desbloqueo de celda "bloqueada" segun condicion

06/11/2006 - 18:33 por MyVi | Informe spam
Buenas grupo.
Tengo esta problemática que no encuentro solución en ningun otro
ejemplo del foro.

Una hoja de cálculo, (con celdas bloquedas [E7:E56] usando su
correspondiente contraseña para bloquear la hoja), donde me interesa
que al cambiar el valor de (B7:B56) se produzcan 3 condiciones (segun
su valor introducido).

Ampliemos:

Sheet3 protegida con contraseña. Algunas celdas estan, pues bloqueadas
otras no.
If [B7:B56] = "1" o "2" o "3" o VACIA then [E7:E56] = (BLOQUEADA +
VACIA)
if [B7:B56] = "5" then [E7:E56] = (DESBLOQUEADA + "SI")
if [B7:B56] = "6" then [E7:E56] = (DESBLOQUEADA + VACIA)


Creo que estan todos los detalles. Por mucho que leo los foros al
respecto de esto, en ningun caso me queda claro cómo proceder, y
cuando lo intento, en ningún caso me funciona bien ¿será mi gran
cerebro? ;- )


Gracias a todos de antemano.

Victor

Preguntas similare

Leer las respuestas

#16 Tux
09/11/2006 - 16:47 | Informe spam
MyVi escribió:
Vale, mi gozo en un pozo. P.q. hablaré antes de hora.

El caso es que desde hoja 0 funciona muy bien, pero en la mia no va!!!

He limpiado todo el código que habia y he pegado el de la hoja nueva
(que funciona),
solo he cambiado lo de "hoja1" por "sheet3" y nada más, pero me da un
error.

Bueno, más que ponerme a exponer aqui el error que me da y donde, os
paso el susodicho archivo:

http://www.savefile.com/files/240831

Tambien subo el archivo en blanco que ahora me funciona perfectamente
(para que podais comparar).

http://www.savefile.com/files/240846

Bueno, un ultimo detalle:
En la hoja limpia, ciertamente funciona bien (y no sé ver el pq), pero
al borrar el valor de la celda (y de forma automática se quedaba en
"0" no volvian a su estado original, y lo he arreglado.

Lo que no entiendo es p.q. no funciona lo mismo en mi hoja buena.
A ver si vosotros sabeis ver la razón.
La única diferencia que yo le veo es que mi hoja esta en ingles (o
sea, SHEET) en vez.
Estoy por añadir todos los cambios a la hoja nueva y listos (aunque
ahi hay bastante trabajo).

Gracias nuevamente.

Victor




Hola Victor :-)

Vale pues el codigo que te he dado yo esta mañana quitalo osea quita
esto porque no hace nada osea te funcionara igual sin estas lineas de
código (me he trafucado esta mañana :-( :



If Target.Column = 2 Then
If Target = "" Then Target = 0

Else
If Target.Column = 11 Then
If Target = "" Then Target = 0
Else

End If
End If

Vale yo no veo error alguno pero ten cuidado a la hora de poner en esta
linea:

Worksheets("hoja1").Protect Password:="aBc", UserInterfaceOnly:=True

el nombre de la hoja: Me explico:

lo que pongas aqui ("hoja1") tiene que ser el nombre exacto de tu
pestaña en la hoja, no se si me explicado bien, osea has de poner
exactamente como se llame tu hoja.

Bueno prueba ahora a ver ok? :-)





¡Un SAludo!:-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#17 MyVi
09/11/2006 - 18:46 | Informe spam
Creo que ya he descubierto el error (la razon de p.q. me petaba).

Me funciona, al fin!!! Pero el caso es que no he hecho nada más. Asi
que creo que la razon de p.q. me fallaba (cuando me fallaba) era
sencillamente, p.q. tenia 2 hojas abiertas con codigo parecido o
semejante, pero cuando tengo solo una, pues la cosa me funciona bien.

En RESUMEN:

El documento de excel, protegido con contraseña, tiene algunas celdas
desbloqueadas para poder introducir datos. Las celdas protegidas
muestran calculos y demás, y alguna otra cambian su condición de
bloqueda o desbloqueada (y vicerversa) segun los parámetros
siguientes:

IF B7 = "1x.xxx" or "2x.xxx" or "3x.xxx" or EMPTY THEN E7 = BLOQUEADO &
EMPTY
IF B7 = "5x.xxx" THEN E7 = BLOQUEADO & "SI"
IF B7 = "4x.xxx" or "6x.xxx" THEN E7 = DESBLOQUEADO & EMPTY

Estas celdas editables, además, por causa de los cálculos, no pueden
estar vacias, y, o tienen un nº o al menos han de contener un "0",
pero nunca vacias. Por ello, parte del código, resuelve esto.

Son 2 códigos basicamente:

1) Se pone en ThisWorkbook. La hoja original se llama "Sheet3" pero se
puede cambiar a la que sea.

Private Sub Workbook_Open() 'proteje y desproteje la hoja
Worksheets("Sheet3").Protect Password:="aBc", UserInterfaceOnly:=True
End Sub


2)Se pone en la hoja directamente (Sheet3)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'impide
seleccionar mas de 1 celda
If Not Intersect(Target, Range("b7:b56,k7:k56")) Is Nothing Then
ActiveCell.Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 2 Then 'celdas NUNCA vacias, sino con un 0
If Target = "" Then Target = 0


Else
If Target.Column = 11 Then
If Target = "" Then Target = 0
Else


End If
End If


If Intersect(Target, Range("b7:b56,k7:k56")) Is Nothing Then Exit
Sub
If IsEmpty(Target) Then Target.Offset(, 3).ClearContents: Exit Sub
With Target.Offset(, 3) 'bloqueda/desbloquea las celdas segun las 3
condiciones
Select Case Left(Target, 1)
Case 1, 2, 3: .Locked = True: .ClearContents
Case 4, 6: .Locked = False: .ClearContents
Case 5: .Locked = True: .Value = "SI"
Case 0: .Locked = True: .ClearContents 'esta condicion deja
celda en estado original

End Select
End With
End Sub


Y ya esta.

Gracias a todos por vuestra ayuda.


Victor
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida