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
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Sub para bloquar celdas

Publicado por Antoni Masana (498 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
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Sub para bloquar celdas

Publicado por Antoni Masana (498 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