macro Excel faz uma pausa usando um temporizador, eu quero usar um botão para reiniciá-lo

0

Como posso reiniciar minha macro usando um evento de clique, substituindo meu método de timer atual?

Preciso atualizar manualmente os marcadores de gráfico antes de criar um PDF para impressão. Eu incluí um temporizador para pausar a macro, permitindo-me uma certa quantidade de tempo para fazer minhas alterações antes que ela apareça uma caixa de mensagem e eu sou obrigado a começar a próxima parte da minha macro.

É bastante imprevisível: alguns rótulos de gráfico exigem mais manipulação.

... e surpreendentemente estressante.

sub PauseMacro
MsgBox "15s to change the labels positions of the pie charts"
t1 = Now
While Now < t1 + TimeSerial(0, 0, 15)
    DoEvents
Wend
MsgBox "Continuing with updating countries macro"
End Sub

(Esta parte útil do código veio como resposta neste fórum. Não é possível encontrar o tópico original).

O ideal seria um botão de caixa de mensagem que espera por mim (ou outros usuários que herdarão essa tarefa) clicar em "Continuar" assim que fizermos as alterações nos marcadores.

Infelizmente, não consigo descobrir como interagir com o gráfico do Excel enquanto um formulário está aberto.

Qualquer ponteiro é bem-vindo. Michael.

    
por RocketGoal 16.09.2016 / 16:32

1 resposta

0

Encontrado Here on StackOverflow, por Siddharth Roteiro
Leia o link primeiro, depois volte aqui para mais detalhes específicos.

Minhas Dicas: Torne o formulário muito simples e básico, faça com que pareça com o familiar msgbox que todos estão acostumados. A única coisa que você terá que incluir é um botão continuar no formulário.

Você ainda precisará de algum tipo de loop, porque o carregamento de um formulário não impedirá a execução do código. Eu usaria o evento onload de formulários para codificar o timer / loop.

Além disso, eu não sei o seu processo ... mas outra coisa que eu acabei de pensar ... Você poderia evitar todas as coisas do formulário se você quisesse criar uma planilha e nomear "Continuar" E sempre que todas as edições manuais são feitas, basta clicar na folha chamada continuar e ele irá inicializá-lo fora do loop que está sendo executado, aguardando a folha chamada "Continue" estar ativa. Uma vez ativo, exclua a planilha e retome o código. Esta é provavelmente a maneira mais rápida de fazer o que você quer, é feia ... mas a maioria das soluções alternativas são lol.

    
por 22.09.2016 / 15:52