Como Gravar Macro no Excel

COMO GRAVAR MACRO NO EXCEL

Suponha que você receba um arquivo texto com as informações das vendas diariamente, e tenha que gerar um relatório no Excel com estas informações.

Com a gravação de macros você poderá fazer com que automaticamente todas as ações necessárias para gerar o relatório sejam executadas.

Neste artigo, faremos uma macro para gerar um relatório a partir de um arquivo texto, o que é razoavelmente simples, mas você aprenderá também a abrir o código gravado e fazer pelo menos uma alteração altamente pertinente, para o sucesso da macro.

Gravar a macro:

  • Primeiro baixe o arquivo texto que utilizaremos no exemplo, download.
  • Abra o arquivo texto no Excel, clicando sobre ele e pressionando CTRL+SHIFT+ENTER, o arquivo será aberto linha por linha no Excel, sem abrir o assistente de importação.
Arquivo Texto
Arquivo Texto – Clique para ampliar
  • Agora clique na aba Desenvolvedor e clique no botão Gravar Macro, nesta tela coloque o Nome da Macro: que serve para identificar a mesma, na tecla de atalho digite uma letra de sua preferência.
  • No campo Armazenar Macro em, selecione Pasta de trabalho pessoal de macros, para que fique disponível em qualquer planilha, caso você escolha outra opção esta macro não será global, ficando limitada a planilha.
Gravar Macro
Gravar Macro – Clique para ampliar
  • Clique em OK.
  • A partir deste momento tudo o que estiver sendo feito será gravado pelo Excel, por isso você deve tomar cuidado.
  • Para saber que está sendo gravado note o campo que mudou de Gravar Macro para Parar Gravação na barra.

Formatando o relatório:

  • Clique na coluna A e depois em Dados->Texto para colunas.
  • Na tela que segue, clique em Delimitado, Avançar, marque o delimitador Vírgula, depois no botão Avançar e em seguida Concluir.
Arquivo separado em colunas
Arquivo separado em colunas
  • Formate o cabeçalho como negrito.
  • Na última linha digite Total na célula A12, na célula F12 digite =CONT.VALORES(F2:F11) e na célula G12 digite SOMA(G2:G11).
Relatório Pronto
Relatório Pronto
  • Na guia Desenvolvedor, clique em Parar Gravação.

Analisando o Código VBA e Melhorando:

  • Caso seja a primeira vez que você tenha gravado macros na Pasta de Trabalho Pessoal de Macros, será necessário que você feche o Excel, e quando ele solicitar salvar alterações você clique em Sim.
  • Abra o Excel novamente, clique na aba Desenvolvedor e no botão Visual Basic.
  • Na guia projeto selecione o projeto VBAProject (PERSONAL.XLSB), clique na pasta Módulos e selecione o Módulo1.
  • A parte de código abrirá o conteúdo do Módulo1, localize a Sub Relatorio_Vendas().
  • Localize o código aonde se inicia a gravação dos totais e inclua o código abaixo:
    ‘<alteração>
    ‘Cria a variável iTotalLinhas, seleciona a última célula, passa a quantidade de linhas total para + 1
    ‘para o TotalLinhas
    Dim iTotalLinhas As Integer
    Selection.End(xlDown).Select
    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1
    ‘</alteração>
  • O código acima localiza a última célula preenchida, de modo que se a quantidade de registros do arquivo texto mude, a linha Total seja sempre a última.
  • Agora é necessário localizar no código abaixo das linhas incluídas, as células que se remetem á linha 12, pois esta foi a última incluída.
  • Altere o código conforme abaixo:
    '
    'Altera para pegar sempre a última linha
    Range("A" & iTotalLinhas).Select
    ActiveCell.FormulaR1C1 = "Total"
    Range("G" & iTotalLinhas).Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
    Range("F" & iTotalLinhas).Select
    ActiveCell.FormulaR1C1 = "=COUNTA(R[-10]C:R[-1]C)"
    Range("A" & iTotalLinhas & ":G" & iTotalLinhas).Select
    Range("G" & iTotalLinhas).Activate
    Selection.Font.Bold = True
    Range("G2:G" & iTotalLinhas).Select
    Selection.Style = "Comma"
    Range("A1").Select
    '
  • Este código acima irá variar conforme a forma com que a macro foi gravada.

O resultado final destas alterações é uma macro que irá realizar a abertura dos dados, formatação e totalização automaticamente sempre que as teclas de atalho forem pressionadas, ou a que a macro for acionada manualmente.

Faça o download do código fonte e do arquivo texto para análise e testes.

É isso pessoal, enviem dúvidas e sugestões ao blog.

Rieper

See this post in english: http://think-excel.com/text-import-wizard-excel-macro-separate-text-file-using-excel-macro/


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel