Gerar um relatório em determinada hora
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 uma 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 é mencionado o formato em que esta hora deve ser digitada (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.
Abaixo, vemos algumas figuras com os códigos (macros) que compõe o processo.
A primeira figura 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'. É importante lembrar 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.
- Link: Macro_Agenda_Execução
Em caso de dúvidas, favor postar em comentários.
Abraço! Professor Ivair.
Abraço! Professor Ivair.
Cara que doidera ... excelente ... Quero tentar aplicar isso em outro exemplos. Se não conseguir, peço ajuda.
ResponderExcluirValeu .............