Controle de etapas de projetos em Excel e VBA

Controle de etapas de projetos em Excel e VBA

Demonstrar uma planilha de controle de etapas de projetos em Excel e VBA que utiliza as funções MAIOR, INDIRETO, EXT.TEXTO, LIN, PROCURAR e código VBA.

Conforme o PMBOK:

Um projeto (AO 1945: projecto) é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. Os projetos e as operações diferem, principalmente, no fato de que os projetos são temporários e exclusivos, enquanto as operações são contínuas e repetitivas.

Os projetos são normalmente autorizados como resultado de uma ou mais considerações estratégicas. Estas podem ser uma demanda de mercado, necessidade organizacional, solicitação de um cliente, avanço tecnológico ou requisito legal.

As principais características dos projetos são:

  • temporários, possuem um início e um fim definidos.
  • planejados, executado e controlado.
  • entregam produtos, serviços ou resultados exclusivos.
  • desenvolvidos em etapas e continuam por incremento com uma elaboração progressiva.
  • realizados por pessoas.
  • com recursos limitados.

Nesta planilha Excel é disponibilizada e explicada a criação das fórmulas e procedimentos VBA utilizados na sua criação.

Entendendo a planilha

Apesar de o Guia do Excel não ter por finalidade explicar profundamente os assuntos para os quais as suas planilhas se propões é importante sempre dar uma introdução e um embasamento sobre os campos que compões as planilhas, desta forma segue um pequeno resumo do que são os campos constantes nesta planilha Excel.

Na planilha Excel foram criados os seguintes campos:

  • Etapa: Sequência dos marcos e tarefas projetadas.
  • Marco / Etapa: Marco são eventos importantes dentro do projeto, conforme o site Gestão de projeto. Etapas são as sequências de atividades que devem ser realizadas para que um marco seja alcançado.
  • Critic.: O quão crítico é ésta atividade para o projeto, seja pelo atraso nas próximas atividades ou ainda pelo custo mais apertado da mesma.
  • Tarefas: São a sequência de passos que devem ser realizados dentro da etapa para que esta seja concluída.
  • Responsável: Pessoa que fica responsável pela conclusão da tarefa.
  • Previsão: Data prevista para a conclusão
  • Conclusão: Data efetiva da conclusão.

Entendendo a fórmula

Por si só esta função do Excel já daria um artigo, escolhi colocá-la dentro de uma planilha com uma utilidade para demonstrar a sua utilização.

Desta forma vamos entender a função que cria itens enumerados sequencialmente para as etapas do projeto:

Olhando agora a função Excel por partes nós temos:

  1. MAIOR($A$7:INDIRETO(“A”&LIN()-1);1) -> A função MAIOR do Excel realiza a verificação do maior valor em uma lista de valores. Mas como precisamos do maior valor de uma lista que começa na célula $A$7 e vai até a linha imediatamente anterior a esta foi utilizada a concatenação de $A$7:INDIRETO(“A”&LIN()-1) aonde temos a função LIN() que identifica o número da linha atual da qual é subtraído 1 para conseguirmos então a linha anterior a atual e a função INDIRETO que realiza o retorno de um endereço criado através de texto fixo ou variável como é este caso. O número 1 no final desta parte da função Excel determina que seja retornado o maior número desta sequência de dados Excel.
  2. &”.”& -> Faz a união da primeira parte da fórmula que traz o número do marco.
  3. SE(ÉNÚM(INDIRETO(“A”&LIN()-1));”1”; -> Identifica através do uso da função condicional SE e da função ÉNÚM aonde é identificado se a linha imediatamente anterior a atual é um número e se for será retornado 1 para a função. Isto serve para a criação da primeira etapa do projeto, já que somente os Marcos são numéricos.
  4. EXT.TEXTO(INDIRETO(“A”&LIN()-1);PROCURAR(“.”;INDIRETO(“A”&LIN()-1))+1;10)+1) -> Caso não seja um marco o valor da linha imediatamente anterior é então aplicada no Excel esta função que utiliza a função EXT.TEXTO para retirar um número exato de caracteres da sequência anterior e somar o valor de 1 para gerar sua sequência e ainda utiliza a função PROCURAR do Excel para localizar aonde está localizado o valor após o ponto.

VBA Excel da planilha

Esta planilha também utiliza funções VBA para criar automaticamente os marcos do projeto e também suas etapas.

INCLUIR MARCO: Incluirá automaticamente o próximo Marco do projeto, deve estar na linha em que se deseja incluir o Marco.

INCLUIR ETAPA: Incluirá automaticamente a próxima etapa do Marco, é necessário que esteja selecionada a célula da linha em que se deseja incluir a etapa;

EXCLUIR LINHA: Exclui Marco ou Etapa da linha que estiver selecionada, uma de cada vez.

Para tanto foi criado o seguinte código VBA:

Inserir etapas:

Sub lsIncluirLinha()
    ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown
    ActiveCell.Offset(, -ActiveCell.Column + 1).Select

    ActiveCell.FormulaR1C1 = _
        "=LARGE(R7C1:INDIRECT(""A""&ROW()-1),1)&"".""&IF(ISNUMBER(INDIRECT(""A""&ROW()-1)) " & _
        ",""1"",MID(INDIRECT(""A""&ROW()-1),FIND(""."",INDIRECT(""A""&ROW()-1))+1,10)+1)"

    ActiveCell.Resize(, 7).Select

    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Bold = False
    End With

    ActiveCell.Offset(0, 1).Range("A1").Select
End Sub

Excluir linhas

Sub lsExcluirLinha()
    ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
    Selection.Delete Shift:=xlUp

    ActiveCell.Offset(, -ActiveCell.Column + 1).Select
    ActiveCell.Resize(, 15).Select

    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub

Inserir Marco

Sub lsInsereUC()
    ActiveCell.Offset(, -ActiveCell.Column + 1).Select
    ActiveCell.FormulaR1C1 = "=LARGE(R1C1:R[-1]C,1)+1"
    Selection.HorizontalAlignment = xlCenter
    ActiveCell.Resize(, 7).Select

    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With

    Selection.Font.Bold = True
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0.249977111117893
        .PatternTintAndShade = 0
    End With
    ActiveCell.Offset(0, 1).Range("A1").Select
End Sub

Download

Realize o download do arquivo deste exemplo e da vídeo-aula acima neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Baixe a planilha

Planilha de Gerenciamento de Projetos Excel

Como controlar as atividades da sua equipe? Esta planilha de gerenciamento de apontamentos e atividades em Excel permite que você tenha uma visão clara das atividades da equipe em qualquer momento com o quadro Kanban e consiga realizar o gerenciamento das atividades com os relatórios.

Clique neste link para ver detalhes: https://www.guiadoexcel.com.br/planilha-de-apontamentos-e-atividades-excel/


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel