Pergunte aqui
1

Fechar Caixa de Diálogo após execução de macro

perguntadas 2018-04-03 14:19:34 +0200

imagem do gravatar de liban

updated 2018-04-08 20:56:12 +0200

imagem do gravatar de Grafeno

Galera, criei uma caixa de diálogo com botões que executam macros, mas não consigo fechar a caixa de diálogo após a execução das macros. Como posso fazer isso?

Obrigado


Bom dia Grafeno,

Obrigado pela disposição em ajudar, sou iniciante e estou penando um pouco.

Já estou com a variável declarada, mas ele está retornando este erro quando tento abrir a caixa de diálogo

Descrição da imagem

Como proceder?

Abraços

----------- EDIT

Segue o código (o erro persiste)

REM  *****  BASIC  *****

  Dim oPRESCPROT As Object

Sub ABRIRPROT

    DialogLibraries.LoadLibrary("Standard")
    'Usando a variável declarada no começo do módulo'
    oPRESCPROT = CreateUnoDialog( DialogLibraries.Standard.getByName("PRESCPROT") )

    oPRESCPROT.Execute()
    oPRESCPROT.Dispose()
End Sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

0

respondidas 2018-04-04 01:55:10 +0200

imagem do gravatar de Grafeno

updated 2018-06-10 04:40:41 +0200

Boa noite,


Você não disse como carregou o diálogo para executar as macros, então vou detalhar o processo.

Para fechar , primeiro precisa ter uma variável declarada no começo do módulo:

REM  *****  BASIC  *****

'Varíavel para o diálogo'
Dim oDialogo AS Object

Ela deve ser usada para carrega o diálogo (exemplo):

Sub CarregarDialogo
    DialogLibraries.LoadLibrary("Standard")
    'Usando a variável declarada no começo do módulo'
    oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("NOME_DO_SEU_DIÁLOGO") )

    oDialogo.Execute()
    oDialogo.Dispose()
End Sub

Então você poderá usar o método para fechar em qualquer macro associada a um botão:

Sub FecharDialogo()
   oDialogo.EndExecute()
End Sub


Atte,

Exemplo de uso

Descrição da imagem

editar assinalar como ofensivo Excluir Link mais

Comentários

@liban, você colocou o nome do seu diálogo no código? Editei minha resposta, agora veja se no lugar de "NOME_DO_SEU_DIÁLOGO" está o nome exato do seu. Se não for isso, por favor, edite sua pergunta e cole o seu código.

imagem do gravatar de GrafenoGrafeno ( 2018-04-04 23:57:45 +0200 )editar

@Grafeno o erro persiste. Editei exatamente como está o código.

Obrigado

imagem do gravatar de libanliban ( 2018-04-06 03:38:09 +0200 )editar

@liban, colei seu código em um .ods novo, criei um diálogo chamado "PRESCPROT" e ele funcionou perfeitamente. Veja este arquivo e diga se ele funciona com vc.

imagem do gravatar de GrafenoGrafeno ( 2018-04-07 03:38:22 +0200 )editar
1

@Grafeno, realmente funcionou seu arquivo com meu código. Consegui resolver salvando uma cópia do documento, e abriu normalmente, mas não consigo entender o motivo. De qualquer forma, o problema foi solucionado.

Muito obrigado pela paciência e apoio, Grande abraço!

imagem do gravatar de libanliban ( 2018-04-07 23:01:16 +0200 )editar
0

respondidas 2018-06-05 04:22:09 +0200

imagem do gravatar de Ronaldo Elias

updated 2018-06-05 04:24:42 +0200

Você também pode criar uma caixa de mensagem de aviso antes de fechar uma caixa de diálogo. Veja:

Function FecharDialogo()
    On Error Goto Sair
        Dim FecharDialg as Integer
            FecharDialg = MsgBox("Deseja SAIR do Formulário?",1,"Sair Formulário")
                If (FecharDialg = 1) Then
                    dlg.endExecute()
                Else
                End If
    On Error Goto 0
    Exit Function
    Sair:
    MsgBox "Linha " & Str(Erl) & ": " & Error$, 176, "Erro: Falta de Parâmetro"
    On Error Goto 0
End Function
editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-04-03 14:19:34 +0200

Lidas: 137 vezes

Última atualização: Jun 10