O objeto Application do MS Excel fornece algumas formas que limitam a interação do usuário com a planilha que está usando. Isso será bem útil quando desejar impedir que os usuários interrompam alguma processo da sua aplicação MS Excel enquanto este executa algum processo demorado.
Explicando:
Defina a propriedade DisplayAlerts como False, escondendo as caixas de diálogo padrão do MS Excel enquanto o código for executado.Configure a propriedade Interactive como False para bloquear completamente os usuários do MS Excel.Otimize a propriedade ScreenUpdating como False, ocultando as alterações executadas via código. Um dos benefícios da definição de ScreenUpdating como False é que o código anterior é executado mais rapidamente, pois o MS Excel não precisa atualizar a tela ou rolar a planilha quando células estiverem selecionadas.
Cada abordagem acima requer que se inclua um código no final do procedimento para retornar a configuração ao seus padrão original, caso contrário poderá bloquear um usuário permanentemente.
Segue:
Sub UserBlock()Dim cel As RangeLet Application.Cursor = xlWaitLet Application.Interactive = FalseLet Application.ScreenUpdating = False' Simulando uma ação.For Each cel In [a1:iv999]cel.SelectNext' Restaura as configurações padrãoLet Application.Interactive = TrueLet Application.ScreenUpdating = TrueLet Application.Cursor = xlDefault[a1].SelectEnd Sub
Tags: VBA, Excel, Basics, workbook, fechar, close, sem salvar, not save,