sexta-feira, 19 de novembro de 2010

Macro: Gerar um relatório em determinada hora II

Gerar um relatório em determinada hora



hora, macro, relatórioNuma 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.

agendar, relatório, excel, vba

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.


Excel, agendar,macro, vba,excel
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.

Tabela, Agendar Relatório, Excel, vba   
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').

macro,código, geral relatório

macro,excel, vba, relatório

A macro acima, executa a macro 'Agenda' (que está abaixo), quando a hora atual do computador for igual a 'TempoI'.
  
Macro,vba, relatório,excel










macro, limpar, relatório,excel 

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 em comentários.

Abraço! Professor Ivair.

Sobre o autor: Ivair Claudio Ferrari é Certificado: Microsoft Office Excel 2007 Specialist; CEO ExcelMax® Soluções, Consultoria e Desenvolvimento de Soluções e Softwares baseados em Excel/VBA e Treinamentos Excel e VBA In-Company. YouTube | Facebook | LinkedIn | Twitter | Google Plus

Um comentário :

  1. Cara que doidera ... excelente ... Quero tentar aplicar isso em outro exemplos. Se não conseguir, peço ajuda.

    Valeu .............

    ResponderExcluir

Seja um participante deste Site !!!
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

"... O ExcelMax Soluções apresenta dicas sobre criação de softwares, macros, funções, gráficos e muito mais ! (Excel e VBA + Access + FireBird + SAP) ... Confira e compartilhe com seus amigos ..."

atualizar, excel, excelmax
excelmax, excel