Project 2010 – Filtrar por Tarefas de Resumo (Summary Tasks)

A principal característica da visualização de tarefas no MS-Project é sua visualização na forma de árvore, onde as tarefas são organizadas dentro de grupos em vários níveis hierárquicos e o usuário pode expandir ou recolher os grupos conforme o nível de detalhe que queira analisar num dado momento.

Em projetos simples, é aceitável que o usuário ajuste sua visualização apenas clicando nos botões +/- do lado esquerdo da árvore de tarefas. Em projetos mais complexos, porém, com muitas tarefas e hierarquias, fica inviável fazer este ajuste manualmente. Para isto, o Project traz na guia Exibição > Dados os comandos de Estrutura de Tópicos e de Filtro. O primeiro serve para recolher todas as tarefas até um determinado nível hierárquico (1 a 9), enquanto o último serve para filtrar as linhas de tarefa conforme o critério escolhido pelo usuário (com base no status, data, número, entre outros).

Uma das opções de filtro é a Tarefas de resumo (na versão em inglês chama-se Summary tasks), e faz o recolhimento de todas as subtarefas, deixando visíveis apenas as linhas agrupadoras. As duas figuras a seguir mostram um projeto sem filtro e com filtro de Tarefas de resumo:

Há uma diferença importante entre o Project 2007 (e anteriores) e o Project 2010 no que diz respeito a aplicação deste filtro: no Project 2007, o filtro apenas recolhia os itens de detalhe, ou seja, o usuário podia clicar no botão +/- para expandi-los novamente. Já no Project 2010, ele realmente aplica o filtro, ou seja, remove da visualização as linhas de detalhe, de forma que nem clicando no botão +/- elas podem ser exibidas.

Embora houvesse quem não gostasse do funcionamento antigo (afinal um filtro deve de fato remover as linhas da visualização), a ausência de uma opção “Tarefas de resumo” no comando Estrutura de tópicos deixou os usuários habituados a organizar a tela com filtros sem uma opção equivalente.

Assim, para suprir esta deficiência, é possível usar uma rotina no VBA que percorra as tarefas e recolha o último nível de detalhe. Para isto, abra o projeto e tecle ALT+F11 para abrir a janela do VBA. Dê um duplo-clique no item ThisProject(NomeDoProjeto) para abrir o módulo do projeto e cole o seguinte código:


Option Explicit

Sub SummaryNodes()
Dim prj As Project
Dim tsk As Task
Dim tskParent As Task

On Error GoTo ErrHandler

'Define o projeto
Set prj = ThisProject

'Percorre as tarefas do projeto
For Each tsk In prj.Tasks
    'Se for uma tarefa-sumário:
    If tsk.Summary = True Then
        'Oculta as tarefas abaixo
        tsk.OutlineHideSubTasks
        'Exibe as tarefas da tarefa-pai
        Set tskParent = tsk.OutlineParent
        tskParent.OutlineShowSubTasks
    End If
Next tsk

ExitHere:
Exit Sub

ErrHandler:
MsgBox Err.Description & vbCrLf & Err.Number & vbCrLf & Err.Source, vbCritical, "ThisProject-SummaryNodes"
Resume ExitHere
Resume
End Sub

Salve o projeto.

Para executar a macro, na guia Exibição clique no botão Macros (é o último botão), selecione o item Exibir Macros e execute a macro SummaryNodes que você acabou de criar.

Também é possível criar um botão só para esta macro na Faixa de Opções. Para isto, clique em Arquivo > Opções > Personalizar Faixa de Opções. Na combo Escolher comandos em, selecione a opção Macros. A macro SummaryNodes aparecerá listada para que você a associe a um novo grupo e botão da Faixa de Opções.

Note que esta macro foi customizada para ter um comportamento um pouco diferente do filtro Summary Tasks antigo: além de listar tarefas agrupadoras, ela lista também tarefas comuns que estejam no mesmo nível de tarefas agrupadoras.

Conclusão

Tanto o MS-Project como os demais aplicativos da Microsoft que suportam VBA têm um grande poder de customização e automatização, ajudando-nos a ganhar produtividade nas atividades diárias, a cobrir lacunas das funcionalidades existentes, a criar novas funcionalidades e até a resolver problemas ou bugs.

Esse post foi publicado em Project, VBA e marcado , , . Guardar link permanente.

12 respostas para Project 2010 – Filtrar por Tarefas de Resumo (Summary Tasks)

  1. Roberto disse:

    Luiz, muito bom seu post sobre este assunto.

    Tenho uma situação com 3 projetos, criei um campo (número 1), onde quero colocar um farol nestes projetos (somente na tarefa resumo). Para fazer o acompanhamento destes 3 projetos criei um outro projeto e “linkei” este 3 projetos iniciais. Mas este projeto “Resumo” não traz o que está no campo (Número 1) quando altero o projeto 1,2 ou 3. Isso é um bug ou estou fazendo algo incorreto?

  2. Sabrina Nascimento disse:

    Colei o código mas aparece a seguinte mensagem ” a variável do objeto do bloco ‘with’ não foi definida 91

    • Luiz Cláudio disse:

      Oi Sabrina,

      poste seu código e diga qual linha deu erro, por favor.

    • Luiz Cláudio disse:

      Oi Sabrina,

      a linha 29 já é a linha de tratamento de erro, então o erro de fato ocorreu em outra linha, a qual levou a execução da linha 29. O ideal seria colocar um ponto de interrupção na primeira linha do código e ir depurando linha a linha (com F8) até chegar ao local do erro.

      Esta mensagem de erro que você comentou ocorre quando um objeto não é instanciado. Você está executando o código dentro do próprio Project, ou é a partir de outra aplicação do Office (ex. Excel, Access) que está manipulando um arquivo externo do Project?

      Veja também se há algum erro de compilação, clicando no menu Depurar > Compilar.

      • Sabrina Nascimento disse:

        Olá Luiz,

        Vou tentar novamente, obrigada pela atenção.

      • Sabrina Nascimento disse:

        Estou executando o código dentro do próprio project. O mesmo erro apareceu novamente. depurei o código e parece que o erro se deu na linha 30.

  3. Sabrina Nascimento disse:

    Esse procedimento funciona para o ms project 2013

Deixe uma resposta

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