VBA Excel Basics - Bloqueando o usuário


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 Range
    
    Let Application.Cursor = xlWait
    Let Application.Interactive = False
    Let Application.ScreenUpdating = False
    
    ' Simulando uma ação.
    For Each cel In [a1:iv999]
        cel.Select
    Next
    
    ' Restaura as configurações padrão
    Let Application.Interactive = True
    Let Application.ScreenUpdating = True
    Let Application.Cursor = xlDefault
    
    [a1].Select
End Sub


Tags: VBA, Excel, Basics, workbook, user, block, interactive, ScreenUpdating, DisplayAlerts, application

Nenhum comentário:

Postar um comentário

diHITT - Notícias