none
Excel. Como criar um código no VBA para que a planilha abra somente com as macros? RRS feed

  • Pergunta

  • Vi esse comentário seu (Felipe Costa Gualberto), num site, e serve exatamente pra minha situação. Porém já tentei implementar em uma planilha mas sempre dá um erro: Erro em tempo de execução '1004' o método 'visible do objeto worksheet falhou.  Você pode me ajudar? Obrigado.

    Eu quando pretendo que habilitem as macros faço o seguinte:

    1-Crio uma folha de rosto onde explicitamente meto um texto bem visivel a informar para ligar as macros, que irá ser escondido pelo evento open do livro, ou seja só irá mostrar esse texto se as macros estiverem inativas.

    2-Escondo todas as outras folha com a propriedade veryhiden, só é possível usando VBA, e claro, só é possível mostrá-las com VBA.

    3-Uso os eventos do livro: BeforeSave e AfterSave para ao guardar o livro as folhas fiquem sempre escondidas

    Private Sub Workbook_Open()
        'colocar aqui o procedimento para login
        
        Rosto.Visible = xlSheetHidden
        Folha1.Visible = xlSheetVisible
    End Sub
    
    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
        Rosto.Visible = xlSheetHidden
        Folha1.Visible = xlSheetVisible
        Me.Saved = True
    End Sub
    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Rosto.Visible = xlSheetVisible
        Folha1.Visible = xlSheetVeryHidden
    End Sub

    quinta-feira, 1 de fevereiro de 2018 03:40

Todas as Respostas

  • Olá Paulo,

    No Excel é sempre obrigatório deixar uma planilha visível, o que você pode fazer é criar uma folha em branco só com a mensagem para ele ativar a Macro, e é essencial colocar senha no Projeto e Habilitar a opção Bloquear projeto para exibição.

    Espero que ajude!

    Márcio Diniz

    Linkedin Marcio Diniz

    sexta-feira, 2 de fevereiro de 2018 01:07
  • Ok, Márcio 

    O problema é que não consigo fazer este código (acima) funcionar no Excel 2007, sempre aparece uma linha em amarelo (em "workbook_BeforeSave" na linha Rosto.Visible = xlSheetVisible).

    Obrigado.

    terça-feira, 6 de fevereiro de 2018 08:43
  • O Excel 2007 não tem o evento AfterSave (esse evento apareceu só a partir do Excel 2010).

    Não sei se isso é a causa do seu problema, mas o fato de não disparar um evento que você precisa disparar, pode ter atrapalhado a estrutura da visibilidade das planilhas, não?


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    quarta-feira, 14 de fevereiro de 2018 17:20
    Moderador