Numa das postagens mencionada anteriormente (Macro: Gerar um relatório em determinada hora II) foi colocada a seguinte situação:
Imagine que você precisasse rodar uma determinada macro para gerar um relatório, fazer um backup, ou qualquer outro procedimento num determinado horário sem estar presente. Precisaríamos programar o Excel para que ele executasse tal procedimento na hora desejada.
Uma macro simples, pode ser rodada em qualquer horário e na hora especificada, o processo será estartado.
Na figura ao lado, vemos o exemplo de um simples lista de dados (colunas 'ID', 'UF' e 'QTDADE'). Nosso objetivo, é copiar todos os dados nas colunas a direita (que contém os mesmos nomes (cabeçalhos) em um horário a frente que vamos determinar.
Quando clicamos em 'Agendar', uma macro é iniciada.
A figura ao lado, mostra que será solicitada a hora que o processo será iniciado. Note que a figura menciona o formato que esta hora deve ser digita (hh:mm:ss). Em seguida, clicamos em 'OK'. A hora digitada deve ser maior do que a hora atual (podendo ser apenas alguns segundos (ss) após a hora (hh:mm:ss) atual).
A macro não fará nada até que a hora atual (do computador) seja igual a hora digitada.
Quando a hora do computador for igual a hora digitada, a macro será iniciada.
Na figura ao lado percebemos que, a macro foi executada e os mesmos dados das 03 colunas a esquerda foram colados nas colunas (destacadas em vermelho) a direita.
A baixo, vemos algumas figuras com os códigos (macros) que compõe o processo.
A figura abaixo, contém a macro que inicia o processo solicitando qual será o horário da execução da segunda macro. Digitamos a hora no formato já mencionado (hh:mm:ss) e clicamos em 'OK'. Lembre-se de que a hora digitada deve ser maior do que a hora atual do computador.
Por exemplo: se a hora do computador for '16:20:35', podemos digitar qualquer hora acima disso (dando uma folga para podermos clicar em 'OK'): '16:21:00' (com isso, a segunda macro será executada 25 segundos após clicarmos em 'OK'.
Se desejarmos que a segunda macro seja executada algumas horas após clicarmos em 'OK', não poderemos fechar o Excel (por exemplo, se digitarmos '21:00:00').
A macro acima, executa a macro 'Agenda' (que está abaixo), quando a hora atual do computador for igual a 'TempoI
A macro ao lado, limpa os dados que são copiados com a macro acima.
Espero que as explicações e figuras tenham deixado claro o exemplo. Para ajudar, segue um link abaixo para que o exemplo possa ser baixado.
Em caso de dúvidas, favor postar comentário.
--
Postado por Ivair Claudio Ferrari no
ExcelMax® em 11/19/2010 07:44:00 PM