Notifications
Clear all

Desproteger, Atualizar Dados e Proteger novamente.

3 Posts
3 Usuários
0 Reactions
716 Visualizações
(@gersinpi)
Posts: 0
New Member
Topic starter
 

Preciso de uma macro que consiga desbloquear todas as abas da pasta de trabalho, lembrando que todos tem uma mesma senha, mas tem que ter mesmo essas senha, atualizar os dados através do recurso de banco de dados e após isso proteger de novo com a mesma senha.

Tentei fazer mas não consegui bloquear novamente com uma senha.

 
Postado : 23/12/2014 10:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não entendi o que quiz dizer com "atualizar os dados através do recurso de banco"
mas vamos lá:
Rotina para desproteger todas as folhas/sheets de um workbook/Arquivo

Sub DesProtege()
Dim varSheet As Variant, NN As String

'Anota nome planilha inicial
NN = ActiveSheet.Name

Application.ScreenUpdating = False
    For Each varSheet In Sheets
        Worksheets(varSheet.Name).Activate
        ActiveSheet.Unprotect Password:="SuaSenha" 'Substitua o termo SuaSenha pela senha que escolher
    Next
'Retorna a planilha inicial
Worksheets(NN).Activate
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Rotina para Proteger

Sub Proteger()
Dim varSheet As Variant, NN As String

'Anota nome planilha inicial
NN = ActiveSheet.Name

Application.ScreenUpdating = False
    For Each varSheet In Sheets
        Worksheets(varSheet.Name).Activate
        'Verifique se deve acrescentar ou excluir propriedades        
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlUnlockedCells
        ActiveSheet.Protect Password:="SuaSenha" 'Substitua o termo SuaSenha pela senha que escolher
    Next
'Retorna a planilha inicial
Worksheets(NN).Activate
Range("E2").Select
Application.ScreenUpdating = True
End Sub

Rotina básica para execução

Sub Atualiza()
'Desproteje todas as sheets
Call DesProtege
'Insira ou chame sua rotina de atualização
'Exemplo:
'Call SelecionaMes
'Call SelecionaDia
'Protege todas as sheets
Call Proteger
End Sub
 
Postado : 23/12/2014 12:07 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

gersinpi,

Boa Tarde!

Use:

Sub DesprotegeEProtege
     Dim Wks As WorkSheet
     
     ForEach Wks In WorkSheets
              ActiveSheet.Unprotect Password:="123456"
              'Aqui execute a sua macro que atualiza os seus dados
      Next

     'Volta a Proteger
     ForEach Wks In WorkSheets
              ActiveSheet.Protect Password:="123456"
              'Aqui execute a sua macro que atualiza os seus dados
      Next
End Sub
 
Postado : 23/12/2014 12:11 pm