Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

Extrair dados do Excel.

Neste tutorial criaremos uma macro que irá Extrair dados do Excel e adicioná-los a um documento do Word.

Temos a seguinte planilha do Excel, mostrada na imagem abaixo, contendo o número de alunos de cada série. Nosso objetivo é transportar esses dados para o Word apenas com um clique, sem precisar digitar ou copiar e colar.

Planilha do Excel

Anote o endereço com o nome completo e extensão do arquivo Excel. Neste exemplo a nossa planilha está no endereço:

C:\Users\DICHO\Documents\Número de alunos por série.xlsx

Local do Arquivo

Agora vamos abrir um novo documento Word e na Guia Desenvolvedor, no Grupo Código clique em Visual Basic ou use o atalho ALT + F11.

Guia Desenvolvedor

No ambiente de desenvolvimento do VBA clique no menu Inserir e depois clique em Módulo.

Inserir Módulo

Em seguida clique no menu Ferramentas e em seguida clique em Referências...

Referências

Em Referências disponíveis desça com a barra de rolagem e selecione Microsoft Excel 14.0 Object Library depois clique no botão OK.

Referências - Project

Na Janela de Código criaremos a macro e daremos o nome de dadosexcel, portanto adicione o seguinte Código:

Sub dadosexcel()
Dim objExcel As New Excel.Application
Dim wb As Excel.Workbook

'Define qual planilha do excel será extraído os dados
Set wb = objExcel.Workbooks.Open("C:\Users\DICHO\Documents\Número de alunos por série.xlsx")

'Extrai os dados das células da planilha especeficada e insere no Word
With Selection
.TypeText wb.Sheets("Plan1").Cells(1, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(1, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(2, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(2, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(3, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(3, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(4, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(4, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(5, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(5, 2) & vbCrLf
End With
wb.Close
Set wb = Nothing

'Seleciona e converte o texto em tabela
Selection.WholeStory
Application.DefaultTableSeparator = ":"
Selection.ConvertToTable Separator:=wdSeparateByDefaultListSeparator, _
NumColumns:=2, NumRows:=5, AutoFitBehavior:=wdAutoFitFixed
With Selection.Tables(1)
.Style = "Tabela com grade"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
End With

'Aplica alinhamento centralizado à tabela
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub


Veja como deverá ficar na Janela de Código:

Macro para extrair dados do Excel

Feito isso vamos fechar o Editor do Visual Basic para voltar ao Microsoft Word.

Cliqueno menu Arquivo e em Fechar e voltar para o Microsoft Word.

Fechar o Visual Basic

Clique na Guia Desenvolvedor e no Grupo Código clique em Macros.

Macros

Selecione a macro dadosexcel e clique em Executar.

Executar macro

Veja o resultado:

Tabela no Word com dados do Excel

Consideração Final:

Existem outras formas de Extrair dados do Excel utilizando o VBA que estaremos mostrando em outros tutoriais, por exemplo, usando Indicadores.

Observe que no final de algumas linha de código adicionamos ":" (dois pontos) para servir de separador na hora de converter o texto em tabela.



Gostou? Se quiser aprender mais eu tenho um e-Book sobre VBA do Word que você pode se interessar.
Confira aqui




Formação Pacote Office



eBook Word 2010 VBA

Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados