Ir para conteúdo
Fórum Script Brasil
  • 0

Não me permite salvar o arquivo


Erika Tímpano

Pergunta

Pessoal,

Depois que eu inseri este código para ocultar as planilhas se o usuário entrar com "desabilitar macros", não consegui mais salvar o arquivo.

Já fiz alguns testes e já sei que o que está impedindo de abrir a janela salvar como, só não sei como revolver.

Alguém pode me ajudar?

Option Explicit

'Nome da planilha que deve ser visualizada em caso de abrir com as macros desativadas - e esconder em caso de macros ativadas
Const PlanilhaMensagem As String = "Sheet1"

'Controle da rotina que esconde as planilhas ao salvar (MacrosAtivas_Salvar)
Private bolEmSave As Boolean

'Planilha ativa - MacrosAtivas_Salvar
Dim wa As Worksheet
Public Sub MacrosAtivas_Open()
'Esconde a planilha de abertura e mostra as demais .....

    Dim w As Worksheet

    'Desabilita a atualização da tela enquanto executa
    Application.ScreenUpdating = False
    'Desabilita a execução de eventos enquanto executa
    Application.EnableEvents = False

    'Loop para mostrar todas todas as planilhas da pasta exceto a planiha de abertura....
    For Each w In ActiveWorkbook.Worksheets
        If w.Name <> PlanilhaMensagem Then
             w.Visible = xlSheetVisible
        End If
    Next

    'Esconde a planilha de abertura....
    'Utilizando "xlSheetVeryHidden" desabilita-se a possibilidade de reexibir a planilha pela interface do Excel
    ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVeryHidden

    'Habilita atualização da tela
    Application.ScreenUpdating = True
    'Habilita a execução de eventos
    Application.EnableEvents = True

    'Define o Workbook como salvo pois as alterações de visível/invisível são entendidas como alterações a salvar
    ActiveWorkbook.Saved = True
    dados.Show
    dados.Data.Text = Date
End Sub

Public Sub MacrosAtivas_Salvar(ByRef Cancel As Boolean)
'Esconde todas as planilhas menos a da abertura
    Dim w As Worksheet

    'Se já está executando, sai habilitando salvar a planilha
    If bolEmSave Then
        Cancel = False
        Exit Sub
    End If

    bolEmSave = True
    Cancel = True

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    'Seta a planilha ativa para retornar o foco depois....
    Set wa = ActiveWorkbook.ActiveSheet

    'Esconde todas as planilhas menos a de abertura
    ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVisible
    For Each w In ActiveWorkbook.Worksheets
        If w.Name <> PlanilhaMensagem Then
             w.Visible = xlSheetVeryHidden
        End If
    Next
    
    'Invoca novamente "salvar a pasta"....
    'A execução recursiva é controlada pela variável bolEmSave,impedindo a reexecução contínua dessa rotina
    ActiveWorkbook.Save

    'Inverter a situação... Mostra todas as planilhas exceto a planilha de abertura
    For Each w In ActiveWorkbook.Worksheets
        If w.Name <> PlanilhaMensagem Then
             w.Visible = xlSheetVisible
        End If
    Next

    ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVeryHidden

    'Habilita atualização da tela e de eventos
    Application.ScreenUpdating = True
    Application.EnableEvents = True

    'Retorna o foco para a planilha ativa no momento de salvar
    wa.Activate

    bolEmSave = False

    'Define o Workbook como salvo pois as alterações de visível/invisível são entendidas como alterações a salvar
    ActiveWorkbook.Saved = True

End Sub

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...