Saberexcel - o site de quem precisa aprender sobre Macros Microsoft Excel VBA.
Esses macros do Aplicativo Microsoft Excel VBA, oculta e ou torna visivel as planilhas selecionadas, ao selecionar determinada folha de planilha,
será automaticamente protegida por um número aleatório de sete digitos, protegendo e desprotegendo para navegação, limitando a área de digitação, isto é selecionará somente as células desbloqueadas. Espero que o exemplo possam lhes ser útil. Fiquem com Deus, Expedito Marcondes
'- - - - - - - - - - - - - - - - - - - - - - - - - -
'Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções
' http://www.microsoftexcel.com.br
' [email protected]
'- - - - - - - - - - - - - - - - - - - - - - - - - -
Private Sub Workbook_Open()
'será executado na abertura
Dim Plans As Worksheet ' definindo variavel do tipo Objeto Worksheet
Dim vSenha As String ' definir senha como string
'senha gerada aleatoriamente na planilha Saberexcel'
'observe que sempre uso o nome da folha de código da folha de planilha,
'isso porque se o usuário mudar o nome na aba da folha de planilha não retorna erro
vSenha = CStr(Saber100.[A1])
'Tornar visível a planilha Principal
Worksheets("Principal").Visible = xlSheetVisible
'fazemos um loop for next (para todas) folhas de planiha neste livro
For Each Plans In ThisWorkbook.Worksheets
'todas planihas serão ocultas exceto a planilha -(Principal(xlVeryHidden))
If Plans.Name <> "Principal" Then Plans.Visible = xlVeryHidden
' Desprotegendo o conjunto de folhas de planilhas
Plans.Unprotect (vSenha)
Next Plans
'Na célula A1 da planilha Saberexcel, será inserido pelo código abaixo
'um numero aleatorio de sete digitos utilizado como senha
Saber100.[A1] = CLng(Rnd * (9999999 - 100000) + 1000000) 'gerando um senha aleatoria com sete digitos.
'Redefinir a variável senha
vSenha = CStr(Saber100.[A1])
For Each Plans In ThisWorkbook.Worksheets
'Proteger a planilha Plans
Plans.Protect (vSenha)
'observem que existem células desbloqueadas, somente estas poderão ser selecionadas
Plans.EnableSelection = xlUnlockedCells
Next Plans
End Sub
'- - - - - - - - - - - - - - - - - - - - - - - - - -
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'executa quando a planilha for desativada
'definindo a variável vSenha como texto
Dim vSenha As String
'atribuindo a variável senha o valor gerado aleatoriamente na planilha(Saberexcel(A))
vSenha = CStr(Saber100.[A1])
With Plans
'Proteger a planilha utilizando a variável Senha como password
.Protect (vSenha)
'Apenas as células desbloqueadas poderão ser selecionadas
.EnableSelection = xlUnlockedCells
End With
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sht As Object)
'executa quando a planilha for desativada
'definir a variável vSenha
Dim vSenha As String
'A senha nas planilhas serão atribuidas com o valor aleatorio gerdo na planilha Saberexcel(A1)
'como texto(string)
vSenha = CStr(Saber100.[A1]) 'aqui será a senha aleatorio gerada planilha Saberexcel
With Sht
'Ocultar a planilha
.Visible = xlVeryHidden
'Protegendo a planilha usando o número aleatorio na planilha (Saberexcel.A1)
.Protect (vSenha)
End With
End Sub
'- - - - - - - - - - - - - - - - - - - - - - - - - -
'caso precise gerar uma senha aleatória - numeros aleatorios com sete digitos.
Sub gerando_numero_aleatorio_sete_digitos()
Saber100.[A1] = CLng(Rnd * (9999999 - 100000) + 1000000)
[d5].Value = Saber100.[A1]
End Sub
'- - - - - - - - - - - - - - - - - - - - - - - - - -
'caso voce precise visualizar as folhas de planilhas.
Sub deproteger_visualizar()
Dim vSenha
vSenha = CStr(Saber100.[A1]) 'valor atribuido inserido na celula(A1).
'todas as planilhas diferentes de 'Principal serão ocultas(xlVeryHidden)
For Each Plans In ThisWorkbook.Worksheets
If Plans.Name <> "Principal" Then Plans.Visible = xlVeryHidden
'Desproteger a planilha Plans
Plans.Unprotect (vSenha)
Plans.Visible = True
Next Plans
End Sub
'- - - - - - - - - - - - - - - - - - - - - - - - - -
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções.
'- - - - - - - - - - - - - - - - - - - - - - - - - -
baixe o exemplo de planiha contendo os macros acima:
Excel planilha vba navegar digitacao restricao (114.49 KB)