Controle de etapas de projetos em Excel e VBA

Controle de etapas de projetos em Excel e VBA

Objetivo: Demonstrar uma planilha de controle de etapas de projetos em Excel 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

Abraço

Marcos Rieper

excel vba

SISTEMA DE GESTÃO CONTA AZUL

O Excel é uma plataforma de trabalho muito aberta para servir ao gerenciamento de dados de uma empresa, dado a complexidade e a integração entre as diversas áreas que a compõe. Mas é a melhor para analisar suas informações.

Com a intenção de atender as micro e pequenas empresas a Conta Azul criou um software de gestão aonde você tudo o que você precisa para gerir a sua empresa: Estoque, Vendas, Financeiro e ainda emite Nota Fiscal Eletrônica, tudo isso em um sistema simples de trabalhar, que você acessa pela internet, não há a necessidade de comprar servidores e preocupar-se com backup e atendimento através de 0800.

O preço da ferramenta também chama a atenção, sendo um preço mais do que justo para se ter o controle dos dados e a geração de informações para a análise do seu negócio.

ContaAzul é um software de gestão financeira e fiscal para micro e pequenas empresas. Ele funciona 100% em plataforma web, não necessitando nenhuma instalação ou atualização. Você pode acessar de qualquer lugar e não tem necessidade de comprar nova licença caso troque de computador.

  O Guia do Excel recomenda o Conta Azul no gerenciamento de sua empresa.
Use QR-Code to get this permaking using your Smartphone. QR Code for Controle de etapas de projetos em Excel e VBA

Deixe o seu comentário


 
%d blogueiros gostam disto: