Exportando dados para Excel com Project VBA

Ambientes organizacionais estão, cada vez mais, exigindo eficiência, eficácia e agilidade na realização de suas tarefas operacionais. Como sabemos, projeto é um conjunto de atividades temporárias, realizado por pessoas com o objetivo de produzir um produto, serviço ou resultado exclusivo. Porém, diariamente, lidamos em projetos com atividades temporárias que podem ser do tipo operacionais e destinadas, por exemplo, a reporte de resultados para a alta administração da organização. Essas tarefas podem ser adicionadas no cronograma do projeto como do tipo recorrente, pois ocorre com uma determinada frequência.

A automatização de tarefas dessa natureza torna-se cada vez mais necessária, em virtude da necessidade de agilizar as entregas. Isso pode ser feito por meio da criação de macros construídas através de linguagens de programação. Um exemplo de linguagem é a Visual Basic, desenvolvida para ser utilizada também conjuntamente com aplicativos do pacote Microsoft Office como Word e Excel, além do Microsoft Project, mais conhecida como Project VBA.

Este artigo tem por objetivo demonstrar um estudo de caso no qual um Gerente de Projeto necessita exportar dados do seu arquivo de projeto (.mpp) para um novo arquivo de planilha do Excel (.xlsx). Essa planilha será posteriormente encaminhada para a alta administração, para que a mesma possa acompanhar o andamento do projeto. Para automatizar essa tarefa devemos seguir os passos apresentados abaixo:

CRIANDO UMA MACRO –  PROJECT VBA

  • Abrir o arquivo do cronograma do projeto. Nesse estudo de caso utilizamos o Cronograma – Projeto Montar um Blog.mpp;
Cronograma - Projeto Montar um Blog

Cronograma – Projeto Montar um Blog

  • Abrir a interface de desenvolvimento do Visual Basic no Project: digitar ALT + F11;
  • Clicar no arquivo ThisProject (Cronograma – Projeto Montar um Blog.mpp) localizado na janela Project Explorer;
Project Explorer

Project Explorer

  • Importar a biblioteca de funções do Excel. Clique em Tools >> References… e selecione a opção “Microsoft Excel 15.0 Object Library”. Em seguida, clique em OK.
  • Digitar as instruções abaixo na janela de código (à direita);
Sub ExportarPlanilha()
    ‘Define as variáveis
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim t As Task
    Dim r As Resource
    Dim nrPlan As Integer
    Dim flName As String
    Dim lin As Integer
    Dim msg As Integer
    Dim col As Integer
    Dim count As Integer
 
    ‘Inicializa as variáveis
    nrPlan = InputBox(“Digite o número da planilha que deseja exportar:” + vbCrLf + vbCrLf + _
    “1 – Gráfico de Gantt” + vbCrLf + _
    “2 – Planilha de Recursos”, “0”)
    flName = InputBox(“Digite o nome do arquivo a ser gravado:”, “EXPORTAR PLANILHA”, “Planilha1”)
    Set xlApp = New Excel.Application
    Workbooks.Add.SaveAs (“C:\TEMP\” + flName + “.xlsx”)
    Set xlBook = xlApp.Workbooks.Open(“C:\TEMP\” + flName + “.xlsx”)
    Set xlSheet = xlBook.Worksheets(1)
    lin = 2
 
    ‘Adiciona as colunas na planilha
    ‘1 – Gráfico de Gantt
    If nrPlan = 1 Then
Cells(1, 1).Value = “ID”
Cells(1, 2).Value = “% Concluída”
Cells(1, 3).Value = “Nome da tarefa”
Cells(1, 4).Value = “Duração”
Cells(1, 5).Value = “Início”
Cells(1, 6).Value = “Fim”
Cells(1, 7).Value = “Predecessoras”
Cells(1, 8).Value = “Nome de Recursos”
          count = 8
    ‘2 – Planilha de Recursos
    ElseIf nrPlan = 2 Then
Cells(1, 1).Value = “ID”
Cells(1, 2).Value = “Nome do recurso”
Cells(1, 3).Value = “Tipo”
Cells(1, 4).Value = “Iniciais”
Cells(1, 5).Value = “Unid. máximas”
Cells(1, 6).Value = “Taxa padrão”
Cells(1, 7).Value = “Taxa h. extra”
Cells(1, 8).Value = “Custo/uso”
Cells(1, 9).Value = “Acumular”
Cells(1, 10).Value = “Calendário”
          count = 10
    End If
 
    ‘Formata o cabeçalho
    For col = 1 To count
Cells(1, col).Font.Size = 12
Cells(1, col).Font.Bold = True
Cells(1, col).Interior.ColorIndex = 50
Cells(1, col).Borders(xlEdgeBottom).LineStyle = xlContinuous
Cells(1, col).Borders(xlEdgeLeft).LineStyle = xlContinuous
Cells(1, col).Borders(xlEdgeRight).LineStyle = xlContinuous
Cells(1, col).Borders(xlEdgeTop).LineStyle = xlContinuous
    Next
    Cells.Columns.AutoFit
 
    ‘Adiciona as linhas na planilha
    ‘1 – Gráfico de Gantt
    If nrPlan = 1 Then
        For Each t In ActiveProject.Tasks
  Cells(lin, 1).Value = t.ID
  Cells(lin, 2).Value = t.PercentComplete
  Cells(lin, 3).Value = t.Name
  Cells(lin, 4).Value = t.Duration
  Cells(lin, 5).Value = t.Start
  Cells(lin, 6).Value = t.Finish
  Cells(lin, 7).Value = t.Predecessors
  Cells(lin, 8).Value = t.ResourceNames
            lin = lin + 1
        Next t
    ‘2 – Planilha de Recursos
    ElseIf nrPlan = 2 Then
        For Each r In ActiveProject.Resources
    Cells(lin, 1).Value = r.ID
    Cells(lin, 2).Value = r.Name
            If (r.Type = 0) Then
Cells(lin, 3).Value = “Trabalho”
            ElseIf (r.Type = 1) Then
Cells(lin, 3).Value = “Material”
            ElseIf (r.Type = 2) Then
Cells(lin, 3).Value = “Custo”
            End If
    Cells(lin, 4).Value = r.Initials
            If (r.MaxUnits <> “”) Then
Cells(lin, 5).Value = CStr(r.MaxUnits * 100) + “%”
            End If
    Cells(lin, 6).Value = r.StandardRate
    Cells(lin, 7).Value = r.OvertimeRate
    Cells(lin, 8).Value = r.CostPerUse
            If (r.AccrueAt = 1) Then
Cells(lin, 9).Value = “Início”
            ElseIf (r.AccrueAt = 2) Then
Cells(lin, 9).Value = “Fim”
            ElseIf (r.AccrueAt = 3) Then
Cells(lin, 9).Value = “Rateado”
            End If
    Cells(lin, 10).Value = r.BaseCalendar
            lin = lin + 1
        Next r
    End If
   
    xlBook.Save
    xlBook.Close
    Workbooks.Close
    msg = MsgBox(“Exportação concluída com sucesso!”, vbOKOnly, “EXPORTAR PLANILHA”)
    xlApp.Visible = True
    xlApp.Workbooks.Open (“C:\TEMP\” + flName + “.xlsx”)
End Sub
  • Digitar Ctrl + S para salvar o projeto.
  • Criar a pasta TEMP no drive C:

EXECUTANDO UMA MACRO

  • Na guia DESENVOLVEDOR, localizada na Faixa de Opções do Microsoft Project, clique no botão “Exibir Macros”. Caso essa guia não esteja disponível, é possível habilitá-la. Para isso assista à vídeo-aula Personalizando a faixa de opções do curso Microsoft Project 2013 desse site e você verá como isso é feito.
  • Selecione a opção “Este Projeto” na combo que lista os locais de macros;
  • Selecione a macro “ExportarPlanilha” na lista exibida e clique em “Executar”.
  • Em seguida defina qual planilha deseja exportar, escolha um nome para o arquivo .xlsx e aguarde o processamento das informações. Ao final será exibida uma mensagem informando a conclusão do processo e posteriormente a planilha com os dados exportados.

Número da Planilha

Nome do arquivo

Exportação concluída

Planilha Exportada

Planilha Exportada

Anúncios

Sobre danielettinger

Bacharel em Ciência da Computação pela Universidade Federal de Sergipe (UFS) e Pós-Graduado em Gestão de Projetos de Software pela Faculdade de Administração e Negócios de Sergipe (FANESE). É certificado CAPM® pelo PMI, ITIL® v3 Foundation pelo EXIN e COBIT® 5 Foundation pela APMG. Possui experiência de 5 anos nas áreas de Análise e Desenvolvimento de Sistemas do setor público e privado. Atualmente trabalha no Banco do Estado de Sergipe (BANESE), onde já desenvolveu atividades de análise de processos e gerenciamento de projetos no Escritório de Gerenciamento de Demandas e Projetos e Grupo de Processos, pertencentes à Área de Governança de TI. Dentre elas, destacam-se a gestão do projeto de implantação do PMO de TI e suporte no gerenciamento de projetos de TI. Nos dias de hoje, atua como gerente de projetos do PMO Corporativo do BANESE. Ministra aulas de Sistema de Gerenciamento de Projetos em cursos de MBA da FANESE. Participou como voluntário em eventos do PMI ministrando curso de Gestão do Tempo em Projetos. É proprietário e articulista do site “Gestão de Projetos Ágeis” www.danielettinger.com, onde divulga trabalhos pessoais na área de Gerenciamento de Projetos e Metodologias Ágeis como artigos, vídeo-aulas, pesquisas, eventos, templates, tutoriais e dicas fomentando o interesse e o desenvolvimento dessas áreas.

Publicado em 22/07/2014, em Gerenciamento de Projetos e marcado como , , , . Adicione o link aos favoritos. 2 Comentários.

  1. ESTA DANDO ERRO

    • Prezado leitor, por favor seja mais específico, pois você pode ter esquecido de executar algum passo do procedimento descrito no artigo. O procedimento foi executado e validado.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s