Excel planilha vba navegar digitacao restricao

Seg, 24 de Fevereiro de 2003 10:11 Expedito Marcondes
Imprimir

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)

 

Tags:
Última atualização em Dom, 30 de Outubro de 2011 10:33