Search code examples
excelvbafor-loopblockcells

Apply block cells to multiple cells depending on value


Im trying to apply a value block/unblock control for multiple cells but unlucky, any ideas? I really apreciate your help!

Dim Copyrange1 As String
Dim Copyrange2 As String
Dim Copyrange3 As String
Dim Copyrange4 As String
Dim Copyrange5 As String




Startrow = 14
Lastrow = 61


For n = Startrow To Lastrow
        Let Copyrange1 = "k" & Startrow
        Let Copyrange2 = "h" & Startrow
        Let Copyrange3 = "i" & Startrow
        Let Copyrange4 = "l" & Startrow
        Let Copyrange5 = "m" & Startrow


        If Range(Copyrange1).Value = "LLEGA AL ODF DESTINO" Then

            ActiveSheet.Unprotect "extend"
            Range(Copyrange2).Locked = False
            Range(Copyrange3).Locked = False
            ActiveSheet.Protect "extend"

            ActiveSheet.Unprotect "extend"
            Range(Copyrange4).Locked = False
            Range(Copyrange5).Locked = False
            ActiveSheet.Protect "extend"

         Else

            ActiveSheet.Unprotect "extend"

            Range(Copyrange2).Locked = True

            Range(Copyrange3).Locked = True
            ActiveSheet.Protect "extend"

            ActiveSheet.Unprotect "extend"
            Range(Copyrange4).Locked = True
            Range(Copyrange5).Locked = True
            ActiveSheet.Protect "extend"

         End If
 Next

And the code works whit a singe Range selection, like Range("k14"), but im trying to do this for a 60 rows.


Solution

  • Let Copyrange1 = "k" & Startrow
    Let Copyrange2 = "h" & Startrow
    Let Copyrange3 = "i" & Startrow
    Let Copyrange4 = "l" & Startrow
    Let Copyrange5 = "m" & Startrow
    

    You are only working with the Startrow. Change the Startrow inside the for-loop to n.