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.
- 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.
- 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.
- 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).
- 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:
- 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/