sexta-feira, novembro 19, 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 Specialist; Consultoria e Desenvolvimento de Soluções e Softwares em Excel/VBA, Bancos de dados Access, Firebird, Oracle, Interação com SAP/R3 e Treinamentos 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 desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari

atualizar, excel, excelmax, ivair ferrari
topo, excelmax, excel, ivair ferrari