Notifications
Clear all

Abrir e fechar uma UserForm para mensagens automaticamente

3 Posts
1 Usuários
0 Reactions
3,169 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá amigos do fórum!
Este é meu primeiro tópico no fóum!!!

Tenho uma workbook com diversas sheets e que sempre que crio uma cópia do arquivo preciso executar uma rotina de "limpeza" das varias células preenchidas das sheets e por uma questão de estética, criei uma userform que aparece ao executar a macro que efetua a rotina de limpeza com a seguinte mensagem "Efetuando ajustes no relatório, aguarde...", porém ao terminar de executar a rotina tenho que clicar no userform para que este seja fechado.

Gostaria de saber se existe uma maneira de fazer com que o userform seja fechado automaticamente assim que a rotina de limpeza das sheets seja concluída, tentei usar o comando UserForm1.Hide mas não funcionou... :?:

segue um exemplo do código que estou usando:

Sub limpar_planilhas()

UserForm1.Show
Application.ScreenUpdating = False
Application.StatusBar = "Efetuando ajustes no relatório, aguarde..."

Sheets("Plan2").Select
Range("C6:G13").Select
Selection.ClearContents
Sheets("Plan3").Select
Range("F15").Select
Selection.ClearContents
Range("A24:D25").Select
Selection.ClearContents
Range("I28:J29").Select
Selection.ClearContents
Sheets("Plan1").Select
Range("B4:D7").Select
Selection.ClearContents
Range("A1").Select

Application.StatusBar = False
Application.ScreenUpdating = True

UserForm1.Hide

End Sub

Desde já agradeço!!!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2011 3:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tiago, na realidade, sua rotina só é executada após fechar o formulário, para Exibir o Form executar a rotina e apos fechar automaticamente, utilize a rotina abaixo :

Sub limpar_planilhas2()
Dim i As Integer

Application.ScreenUpdating = False
Application.StatusBar = "Efetuando ajustes no relatório, aguarde..."
   
    With UserForm1
        .Show vbModeless
        .Label1.Caption = "Efetuando ajustes no relatório, aguarde..."
    
        For i = 1 To 1

            Sheets("Plan2").Range("C6:G13").ClearContents
 
            With Sheets("Plan3")
                .Range("F15").ClearContents
                .Range("A24:D25").ClearContents
                .Range("I28:J29").ClearContents
            End With
 
            Sheets("Plan1").Range("B4:D7").ClearContents
    
            Range("A1").Select

        
            Application.Wait (Now() + TimeSerial(0, 0, 1))
        Next i
        
        .Hide
    End With
    
 Application.StatusBar = False
 Application.ScreenUpdating = True
       
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2011 5:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

:D EXCELente tacada Mauro...

Resolvel direitinho, consegui excutar a rotina e fechar o form automaticamente, tbm achei muito interessante o uso do bloco Whit que reduz bastante a sintaxe do código, vou pesquisar mais sobre esse assunto.

Valew!!! ;)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/06/2011 5:48 am