none
If "Janeiro 2018" <> Sheets(1).Name Then "Oculta todas as planilhas"!!!!! RRS feed

  • Pergunta

  • Boa Pessoal!!!

    Tenho pesquisado muuuuito por uma solução em segurança de planilhas, e antes que eu conte minha história, vou logo fazer a pergunta para quem não tiver tanto cabelo na cabeça "como eu" para me escutar! kkkkkkkk

    é o seguinte....

    Quero fazer o que no Titulo quer dizer! ou seja.... Comparar SE Variável com o valor String = "Janeiro 2018", se é Diferente "<>" ao nome da ABA alocada no Sheets(1), Se for.... Oculta todas as planilhas... segue um exemplo do que já tentei abaixo!!!!!

    Private Sub Worksheet_Activate()
    Dim nj2018 As String
    Dim nf2018 As String
    nj2018 = "Janeiro 2018"
    nf2018 = "Fevereiro 2018"

    If nj2018 <> Sheets(1).Name Then
    Application.ScreenUpdating = False
    Worksheets("Alerta").Visible = True
    Worksheets("Janeiro 2018").Visible = xlVeryHidden
    Worksheets("Fevereiro 2018").Visible = xlVeryHidden
    Worksheets("Março 2018").Visible = xlVeryHidden
    Worksheets("Abril 2018").Visible = xlVeryHidden
    Worksheets("Maio 2018").Visible = xlVeryHidden
    Worksheets("Junho 2018").Visible = xlVeryHidden
    Worksheets("Julho 2018").Visible = xlVeryHidden
    Worksheets("Agosto 2018").Visible = xlVeryHidden
    Worksheets("Setembro 2018").Visible = xlVeryHidden
    Worksheets("Outubro 2018").Visible = xlVeryHidden
    Worksheets("Novembro 2018").Visible = xlVeryHidden
    Worksheets("Dezembro 2018").Visible = xlVeryHidden
    Worksheets("Valor Anual").Visible = xlVeryHidden
    Worksheets("Reset").Visible = xlVeryHidden
    Application.ScreenUpdating = True

    End If
    End Sub

     

    Mas não vai!!! e a minha trajetória é a seguinte.

    Meu cliente possui o AD-RMS instalado e protegendo uma planilha de ser COPIADA, Bloqueando Print Screen e de "Salvar como".... Porém, o usuário com essas limitações de permissão, precisa copiar uma célula! Mas já desisti de procurar uma solução por parte do RMS.

    Hoje, deixei liberado o usuário a copiar os conteúdos das planilhas e com permissão a execução de MACROS para tentar alguma alternativa aqui, e através do VBA, queria algumas dessas alternativas ou aquela que não consta aqui e que funcione.

    Ou seja.

    Via VBA uma delas

    1). Desabilitar o ADRMS elevando com um usuário administrador, fazer a cópia, e proteger novamente a planilha, recolocando na proteção RMS.

    2). Eu já possuo um código funcional! Onde na aba Janeiro, desabilite a cópia, tanto pelo teclado quanto pelo mouse, também se tentar copiar as abas desprotegidas numa nova planilha vai dar errado! Não copia! Também, se abrir a planilha e a macro não estiver habilitada, todas as abas são ocultadas, enfim! Essas são algumas medidas de segurança que pude colocar dando tantas voltas para que o usuário limitado possa copiar uma célula numa aba permitida! E se nessa condição do "Título do poste" for possível, daí, eu evitaria que o usuário tenta-se fazer alguma malandragem para poder quebrar a macro, por exemplo, mudando a aba de posição Sheets(1) para sheets(2), onde estaria programado as permissões de cópia e poder assim quebrar a aplicação dessas permissões...etc!

    É isso! Alguém tem alguma ideia!??



    • Editado Edibuck terça-feira, 12 de dezembro de 2017 20:37
    terça-feira, 12 de dezembro de 2017 20:35

Respostas

  • Amigo tenta usar o StrComp:

    StrComp(nj2018, Sheets(1).Name)

    Se as strings forem iguais irá retornar 0.

    Abs.

    • Marcado como Resposta Edibuck sábado, 16 de dezembro de 2017 01:38
    quarta-feira, 13 de dezembro de 2017 11:36

Todas as Respostas

  • Amigo tenta usar o StrComp:

    StrComp(nj2018, Sheets(1).Name)

    Se as strings forem iguais irá retornar 0.

    Abs.

    • Marcado como Resposta Edibuck sábado, 16 de dezembro de 2017 01:38
    quarta-feira, 13 de dezembro de 2017 11:36
  • E ae Diogenes, vlw cara, resolveu!  Obrigado mesmo! Eu só fico indignado como agente tem que dar voltas pra conseguir proteger uma planilha... meu... tenho que pensar em todas as possibilidades só pra que o cara não copie outras abas... meu... é osso! vlw!

    sábado, 16 de dezembro de 2017 01:38
  • Diogenes, Boa tarde!

    Deixa eu te perguntar uma coisa... ao invés de eu usar o nome das ABAS onde o usuário pode alterar o nome e quebrar o código do VBA, tem como agente usar no código o nome (Name) ao invés do "Janeiro 2018" onde qualquer um pode alterar?

    segunda-feira, 18 de dezembro de 2017 14:42
  • Desculpe amigo, mas não entendi sua pergunta.

    Abs.

    segunda-feira, 18 de dezembro de 2017 15:12
  • Se entendi bem, o que você deseja é utilizar o "CodeName" das abas, visíveis pelo VBE. Neste caso basta trocar ".Name" por ".CodeName".

    Abraço.


    Filipe Magno

    quarta-feira, 27 de dezembro de 2017 14:50