Gere relatórios automaticamente no excel

Uma das principais características do Microsoft Excel é a capacidade de gerar relatórios. Você pode criar planilhas interativas para facilitar a entrada de dados de outros usuários em uma pasta de trabalho e também pode gerar relatórios automaticamente. Ambas as funções requerem algum conhecimento de Visual Basic. A seguir estão as etapas para executar ambas as tarefas.

Degraus

Método 1 de 2: Criando uma planilha interativa

Imagem intitulada Automatize relatórios no Excel Etapa 1
1. Decida o layout da sua planilha. A planilha deve ser organizada de forma que outros usuários possam encontrar rapidamente os campos para inserção de dados.
  • Você pode orientar sua planilha horizontalmente ou verticalmente. A maioria dos usuários achará um layout vertical mais fácil de trabalhar, especialmente se você quiser que eles possam imprimir a planilha.
Imagem intitulada Automatize relatórios no Excel Etapa 2
2. Criar cabeçalhos para a planilha. Coloque um título acima de cada coluna, bem como na célula à esquerda de cada célula da coluna onde você deseja colocar os campos de entrada.
Imagem intitulada Automatize relatórios no Excel Etapa 3
3. Pressione simultaneamente as teclas Alt e F11. Isso abrirá o editor do Microsoft Visual Basic.
Imagem intitulada Automatize relatórios no Excel Etapa 4
4. Clique duas vezes em "Esta pasta de trabalho" na janela "Projeto-Projeto VBA" canto superior esquerdo. Isto irá abrir uma janela de codificação na janela principal do editor.
Imagem intitulada Automatize relatórios no Excel Etapa 5
5. Selecionar "Procedimento" via Inserir no Menu Principal. A caixa de diálogo Inserir procedimento é aberta.
Imagem intitulada Automatize relatórios no Excel Etapa 6
6. Insira um nome para o procedimento no campo Nome. Dê ao procedimento um nome significativo, como "Despesas totais" se sua planilha interativa for usada para rastrear despesas de viagem. Clique em OK para fechar a caixa de diálogo.
  • O nome do seu procedimento não pode conter espaços, mas você pode usar um hífen ( _ ) em vez de um espaço.
  • Quando a caixa de diálogo `Inserir procedimento` for fechada, você verá uma linha `Public Sub` seguida do nome do procedimento. Abaixo da linha você verá um espaço e as palavras `End Sub`.
    Imagem intitulada Automatize relatórios no Excel Etapa 7
    7. Digite o código para cada campo de entrada na planilha. Você vai escrever duas linhas de código para cada entrada.
  • A primeira linha de código é `Range("nome da célula").Selecione`, onde "nome da célula" a célula deve representar onde o campo de entrada será colocado. Esta é a célula imediatamente à direita de um rótulo de texto; se houver um rótulo de texto na célula A2, um campo de entrada será colocado na célula B2, portanto (Range("B2").Selecione). Certifique-se de que as aspas estejam em torno do nome da célula, mas não em todo o bloco de código.
  • A segunda linha de código se parece com `ActiveCell.Valor=Caixa de Entrada("Prompt de entrada")`, verdadeiro "Prompt de entrada" é o texto mostrado ao usuário para indicar que tipo de dados inserir. Por exemplo, se o custo das refeições deve ser inserido na célula de entrada, você substitui "Prompt de entrada" de "Insira o total de todas as refeições, incluindo gorjetas." (Coloque as aspas ao redor do texto de entrada, mas não ao redor de todo o comando).
    Imagem intitulada Automatize relatórios no Excel Etapa 8
    8. Insira o código para cada campo de cálculo. Novamente você usa as mesmas duas linhas acima, mas desta vez ActiveCell.Valor é uma função de cálculo, como SUM, em vez da função InputBox usada para exibir a mensagem de entrada.
    Imagem intitulada Automatize relatórios no Excel Etapa 9
    9. Adicione uma linha de código para salvar sua planilha interativa. O código é `ActiveWorkbook.Salvar como nome do arquivo:="nome do arquivo.xls" `, através do qual "nome do arquivo" é o nome da sua planilha interativa. (Coloque aspas ao redor "nome do arquivo.xls", mas não em torno do exemplo completo).
    Se você tiver o Excel 2007 ou posterior, poderá usar a saída `.xls` substituído por `.xlsx`, mas se alguns dos usuários de sua planilha interativa estiverem usando o Excel 2003 ou anterior, eles não poderão usar a planilha sem um plug-in.
    Imagem intitulada Automatize relatórios no Excel Etapa 10
    10. Pressione Alt e Q ao mesmo tempo. Fecha o editor do Visual Basic.
    Imagem intitulada Automatize relatórios no Excel Etapa 11
    11. Pressione Alt e F8 ao mesmo tempo. Isso abrirá a janela Macro.
    Imagem intitulada Automatize relatórios no Excel Etapa 12
    12. Clique no nome do seu procedimento na lista Macro. Se este for o único procedimento na lista, ele será selecionado automaticamente.
    Imagem intitulada Automatize relatórios no Excel Etapa 13
    13. Clique no botão Opções. Ser-lhe-á agora pedido que escolha um carácter para criar uma combinação de teclas com a tecla Ctrl. Escolha uma letra significativa ainda não usada como atalho, como um `i` para `entrada`.
    Imagem intitulada Automatize relatórios no Excel Etapa 14
    14. Clique em `OK` para fechar a janela de opções de macro. Agora você pode distribuir sua planilha interativa para usuários em potencial. Depois de abri-lo, eles podem usar o atalho de teclado para habilitar a entrada de dados e seguir as notificações que você criou para entrada de dados.

    Método 2 de 2: Geração automática de relatórios

    Imagem intitulada Automatize relatórios no Excel Etapa 15
    1. Transforme seu relatório em uma tabela dinâmica. As tabelas dinâmicas são projetadas para criar visões gerais de dados para que você possa comparar números e identificar tendências. Sua Tabela Dinâmica deve estar vinculada a dados em outros lugares da planilha ou importada de um banco de dados.
    Imagem intitulada Automatize relatórios no Excel Etapa 16
    2. Escreva um script do Visual Basic para abrir e fechar o relatório. O script deve executar as funções abaixo. Cada função é descrita seguida do código a ser implementado entre colchetes. Ao escrever o código do programa real, escreva isso em um único bloco, substitua os nomes dos exemplos pelos seus próprios nomes e não inclua os colchetes que cercam o exemplo inteiro.
  • Abra a planilha no modo somente leitura. [DIM XLApSet XLApp=CriarObjeto("Excel.aplicativo")xlapp.visible=falsexlapp.pastas de trabalho.abra \ excelloc nome do arquivo.xls,3,]
  • Atualize os dados e salve o relatório (neste exemplo como PDF com um carimbo de data). [Truexlapp.pasta de trabalho ativa.RefreshAllxlapp.pasta de trabalho ativa.ExportAsFixedFormat xlTypePDF, \pdflocreportname_ & DataPart("aaaa,agora()) & "-" & direito("0" & DataPart("m",Agora()),2) & "-" direito("0" & DataPart("d",Agora()),2) & ".pdf"] Seu documento de saída está em um formato diferente, substitua `.pdf` então através do final apropriado para esse formato.
  • Feche a planilha sem salvá-la e feche o Excel. [xlQualidadePadrãoxlapp.pasta de trabalho ativa.fechar Falsexlapp.Sair]
  • Uso `.xlsx` em vez de `.xls` como a saída do nome da planilha, se sua planilha for salva no formato baseado em XML do Excel 2007 e posterior.
    Imagem intitulada Automatize relatórios no Excel Etapa 17
    3. Escreva um script em lote no Bloco de Notas (e salve-o mais tarde como `.bat`) para iniciar o script Visual Basic. Isso é necessário para que o script do Visual Basic seja executado automaticamente. Sem o script em lote, o script VB precisa ser executado manualmente.
    Se o seu script estiver neste formato, substitua a pasta e o nome do arquivo especificados pelos seus, omitindo os colchetes: [cscript /nologo \filelocscript.vbs]
    Imagem intitulada Automatize relatórios no Excel Etapa 18
  • 4. Escreva um script em lote para verificar se o arquivo de saída existe quando criado. O script deve descrever as funções abaixo. Cada função é seguida por um código a ser implementado entre colchetes. Quando você for escrever o código real, faça-o em um bloco e substitua os nomes dos exemplos pelos seus próprios nomes, sem os colchetes.
  • Verifique se o arquivo de saída existe. [para /f "tokens=2-4 delims=/ " %%a em (`date /t`) defina rreport=reportname_%%c-%%a-%%b.pdf)] Se o arquivo de saída não for um PDF, substitua ".pdf" então pela extensão certa.
  • Se o arquivo/relatório de saída existir, envie-o por e-mail para as pessoas que precisam dele. [Se existir \pdfloc%rreport% ( sendemail -f [email protected] -t destinatário@destinatáriodomínio.com -u Relatório agendado -m O relatório %%report% está anexado. -a pdfloc%rreport% -s yourserver:port -xu username -xp password)]
  • Se o arquivo/relatório de saída não existir no local específico, faça com que o procedimento envie uma mensagem informando que o envio falhou. [ Else ( sendemail -f remetente@dominio remetente.com -t remetente@dominio remetente.com -u O relatório não foi executado -m arquivo %rreport% não existe em \pdfloc -s yourserver:port -xu username -xp password)]
    Imagem intitulada Automatize relatórios no Excel Etapa 19
  • 5. Verifique se a pasta `Desktop` existe no computador. Você precisa verificar se a pasta Desktop existe para um sistema de 32 bits e de 64 bits. Se você não fizer isso, o Excel e sua planilha terão que ser abertos manualmente.
  • Localização no sistema de 32 bits: c:windowssystem32configsystemprofile
  • Localização no sistema de 64 bits: c:windowssyswow64configsystemprofile
    Imagem intitulada Automatize relatórios no Excel Etapa 20
  • 6. Se necessário, agende uma tarefa para executar os scripts. Os scripts em lote precisam ser executados continuamente em sucessão, independentemente de alguém estar usando o computador ou não. A potência deve ser ajustada o mais alto possível.

    Pontas

    As tarefas agendadas são melhor executadas a partir de um servidor, geralmente de uma conta do sistema com privilégios de administrador. A única desvantagem de executar tarefas de uma conta do sistema é que nenhuma interface de usuário está disponível; mas as tarefas automatizadas geralmente são executadas em segundo plano, sem que o usuário perceba.

    Оцените, пожалуйста статью