Visual Basic para Aplicaciones - Sub para bloquar celdas

Life is soft - evento anual de software empresarial
   
Vista:

Sub para bloquar celdas

Publicado por Luis (3 intervenciones) el 13/01/2018 05:19:09
Buenas,

Amigos ocupo un sub para bloquear una celda en excel, por ejemplo, si la celda A1=0 entonces la celda B queda desbloqueada, si A1<>0 entonces la celda B1 queda bloqueada, y asi hasta la celda A5000,


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

Sub para bloquar celdas

Publicado por Antoni Masana (120 intervenciones) el 15/01/2018 10:10:45
Esta linea desbloquean / bloquean la celda

1
Selection.Locked = False/True

Y esta muestra / oculta la formula

1
Selection.FormulaHidden = False / True

Pero solo tienen efecto cuando la hoja es bloqueada ¿Lo está?

La macro seria asi pero faltan cosas

1
2
3
4
5
6
7
8
9
10
11
Sub Macro1()
    Dim a As Integer
 
    For a = 1 To 5000
        If Range("A" & a) = 0 Then
           Range("B" & a).Locked = False   ' --- Desbloquear
        Els
           Range("B" & a).Locked = True    ' --- Bloquear
        End If
    Next
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sub para bloquar celdas

Publicado por Luis (3 intervenciones) el 15/01/2018 16:09:30
Correcto, la hoja va a estar bloqueada!

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Sub para bloquar celdas

Publicado por Antoni Masana (120 intervenciones) el 16/01/2018 08:15:16
Entonces debes desbloquear la hoja antes del FOR y bloquearla al finalizar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Macro1()
    Dim a As Integer
 
    ActiveSheet.Unprotect "Patata"
    For a = 1 To 5000
        If Range("A" & a) = 0 Then
           Range("B" & a).Locked = False   ' --- Desbloquear
        Els
           Range("B" & a).Locked = True    ' --- Bloquear
        End If
    Next
    ActiveSheet.Protect "Patata"    DrawingObjects:=True, _
                                    Contents:=True, _
                                    Scenarios:=True
End Sub

En el ejemplo la clave es Patata y las opciones que tienen que estar a true o false a la hora de proteger lo dejo a tu gusto, estas son las que me salen por defecto.

Para saber más has GRABAR MACRO y protege la hoja con las opciones que quieras.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sub para bloquar celdas

Publicado por Luis (3 intervenciones) el 16/01/2018 14:14:50
Excelente, muchas gracias por la ayuda!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar