Desativar alerta ao excluir manualmente uma planilha

0

Existe uma maneira no VBA de desabilitar o alerta que aparece ao deletar MANUALMENTE uma planilha (clique com o botão direito do mouse e exclua)? Eu vi Application.DisplayAlerts = False , no entanto, isso parece funcionar apenas para mim ao excluir uma planilha usando o VBA ( Sheets("Sheet1").delete ). Estou tentando desativar o alerta para a pasta de trabalho inteira quando você clica com o botão direito do mouse em uma planilha e clica em excluir.

Como pano de fundo para a pergunta, estou tentando eliminar a necessidade de confirmar a exclusão de uma planilha ao apresentar a pasta de trabalho em reuniões. Ao percorrer as planilhas, geralmente clico duas vezes em tabelas dinâmicas para exibir detalhes, e gostaria de eliminar o alerta pop-up quando eu excluir a planilha gerada. A desativação do alerta precisaria ocorrer no VBA, já que ele precisa ser ativado e desativado automaticamente ao entrar ou sair da visualização da apresentação.

Qualquer ajuda seria apreciada! Obrigado.

    
por Eric S 30.04.2018 / 23:32

2 respostas

0

NÃO existe nenhum comando ou opção ou método que possa interromper as "mensagens de alerta / aviso do Excel".

Até mesmo o "Application.DisplayAlerts = False" não funciona quando usado através da janela Immediate no VBE. A única maneira é usar o script VBA.

Para que o código escrito abaixo possa ser usado como Módulo para a Planilha que você deseja excluir sem mensagem de confirmação.

Option Explicit

Sub Delete_without_warning()

 Dim i As Long

Application.DisplayAlerts = False

For i = 1 To Worksheets.Count
If Worksheets(i).Name Like "Sheet5" Then Worksheets(i).Delete
Next i

Application.DisplayAlerts = True

End Sub

Observação: se você quiser excluir mais de uma folha, use o método de caractere curinga & substitua a linha de comando 6 por isso:

se Planilhas (i) .Nome Como "Dados *" Em seguida, Planilhas (i) .Delete

O Excel excluirá todas as planilhas sem aviso. O nome começa com Dados .

    
por 01.05.2018 / 11:21
0

Se novas folhas forem criadas apenas clicando duas vezes em tabelas dinâmicas, essa pode ser uma solução adequada

Colocado em ThisWorkbook , o código abaixo excluirá todas as novas folhas depois de passar para outra planilha

Option Explicit

'Place this code in ThisWorkbook module

'Expects that all new sheets are generated by double-clicking a pivot table

Private pivotWs As Worksheet

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Set pivotWs = Sh
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Not pivotWs Is Nothing Then
        If Sh.Name = pivotWs.Name Then
            Application.DisplayAlerts = False
            pivotWs.Delete
            Set pivotWs = Nothing
            Application.DisplayAlerts = True
        End If
    End If
End Sub
    
por 03.05.2018 / 00:41