Bom dia.
Tenho uma planilha protegida, e para poder digitar dados em determinadas celulas, usei a rotina abaixo para desbloquear, sem problemas. No exemplo usei uma For Next com Union para desbloquear as celulas de A1 ate A110.
Sub desbloquear1()
Dim i As Integer
Dim n As Integer
Dim Todos As Range
i = 1
n = 110
For i = 1 To n
If Todos Is Nothing Then
Set Todos = Cells(i, 1)
Else
Set Todos = Union(Todos, Cells(i, 1))
End If
Next i
ActiveSheet.Unprotect
Todos.Locked = False
ActiveSheet.Protect
End Sub
Porem o que desejo desbloquear, nao sao celulas continuas, entao renomeei as celulas com nome inicial de "Ticar" & 1 ate 110 e coloquei um contador no For Next de 1 a 110 como mostra abaixo
Sub desbloquear2()
Dim i As Integer
Dim n As Integer
Dim Todos As Range
i = 1
n = 110
For i = 1 To n
If Todos Is Nothing Then
Set Todos = Range("Ticar" & i)
Else
Set Todos = Union(Todos, Range("Ticar" & i))
End If
Next i
ActiveSheet.Unprotect
Todos.Locked = False
ActiveSheet.Protect
End Sub
..... e parou na linha de codigo :
Todos.Locked = False
Notei tambem que se colocar o n ate 17, nao da problema, mas se colocar acima de 17 a rotina para.
Alguem saberia porque?
Nao queria usar o Select...selection..., mas se mudar o final para :
ActiveSheet.Unprotect
Todos.Select
Selection.Locked=False
Activesheet.Protect
....dai funciona, nao sei o porque. Alguem sabe o porque acontece isso?
Agradeco desde ja um retorno.
Tadao