Exportar um cronograma do Microsoft Project para o Excel por VBA



A possibilidade de exportar determinado arquivo para outro programa, permite diversas interações. Convenhamos que com o Excel, existem inúmeras possibilidades de se analisar as informações. A realização deste trabalho de análise pelo Excel é realizado por  tabelas dinâmicas, gráficos visuais, filtros e outros recursos. O Microsoft Project oferece controle absoluto do cronograma. Porém onde ele não conseguir atender em termos de análise, os dados do projeto precisam ser levados a outros programas, como por exemplo, o Excel. 

Para realizar a exportação das informações de um projeto do Microsoft Project para o Microsoft Excel, as etapas são bem simples e começa pelo processo de criação de Macros. As macros são desenvolvidas na linguagem Visual Basic Application também conhecida pela sigla VBA.

Vamos aos passos:

1 - Abra um novo arquivo no Excel e o salve dentro da pasta Temp do Windows. Geralmente este diretório fica dentro de C:\Windows\Temp.



2 - Abra o Microsoft Project 2010 e utilize o caminho Exibição - Macros -  Gravar Macros.



2 - Informe os dados da Macro e clique em OK.



3 - Abra o Microsoft Project 2010 e utilize o caminho Exibição - Macros -  Parar Gravação.



4 - Abra o Microsoft Project 2010 e utilize o caminho Exibição - Macros -  Exibir Macros.



5 - Agora faça a edição da Macro e para isso selecione a Macro1 criada e vá em Editar.




6 - Clique no menu Ferramentas - Referências e habilite a opção: Microsoft Excel 12.0 Object Library se for a versão do Project 2010 e Microsoft Excel 14.0 Object Library se for a versão do Project 2013 e clique em OK.



7 - Se esta referência não for habilitada o seguinte erro é mostrado na tela.


8 - Insira o seguinte código.

Sub Macro1()
' Macro Macro1
' Macro gravada em Sáb 18/10/14 por Administrator.

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim proj As Project
Dim t As Task
Set pj = ActiveProject
Set xlApp = New Excel.Application
xlApp.Visible = True
AppActivate "Microsoft Excel"
Set xlBook = xlApp.Workbook.Open("C:\Temp\Pasta1.xlsx")
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Cells(1, 1).Value = "Project Name"
xlSheet.Cells(1, 2).Value = pj.Name
xlSheet.Cells(2, 1).Value = "Project Title"
xlSheet.Cells(2, 2).Value = pj.Title
xlSheet.Cells(4, 1).Value = "Task ID"
xlSheet.Cells(4, 2).Value = "Task Name"
xlSheet.Cells(4, 3).Value = "Task Start"
xlSheet.Cells(4, 4).Value = "Task Finish"
For Each t In pj.Task
xlSheet.Cells(t.ID + 4, 1).Value = t.ID
xlSheet.Cells(t.ID + 4, 2).Value = t.Name
xlSheet.Cells(t.ID + 4, 3).Value = t.Start
xlSheet.Cells(t.ID + 4, 4).Value = t.Finish
Next t

End Sub

Exemplo:





9 - Para testar linha a linha o código da Macro, pressione a tecla F8 ou simplesmente, execute a macro. Agora retorne a C:\Windows\Temp abra o arquivo Pasta1.xlsx e verifique se as informações do projeto presente no MS-Project foram carregadas com êxito.



Dedido este tutorial ao amigo Andrew Simpson que me ajudou com esta solução.

Reference: Export a schedule for the 2010 Project for Excel VBA.

2 comentários:

  1. Hezequias fiz esse procedimento e apresenta o a seguinte msg Erro de tempo de execução 5

    ResponderExcluir
    Respostas
    1. Olá Marco. Tudo bem? Refiz todo o artigo descrevendo ele um pouco mais. Execute novamente o procedimento e veja se resolve o seu problema.

      Excluir