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:
- 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.
- &”.”& -> Faz a união da primeira parte da fórmula que traz o número do marco.
- 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.
- 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 planilhaPlanilha 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/