- 09 Mai 2018 às 08:53
#32856
Pessoal, bom dia!
ME AJUDEM, POR FAVOR!
Eu fiz a macro abaixo para contar quantas vezes um projeto aparece numa tabela, quantos documentos estão atrasados, concluídos , a quantidade de documentos em um mesmo projeto e jogar numa planilha de resumo. A minha macro está dando erro porque gera somente uma linha na planilha de resumo e eu queria uma linha por projeto com as contagens que ela precisa fazer.
Segue macro abaixo:
Sub Resumo()
Worksheets("Resumo").Range("$E$22:$AB$150").ClearContents
Dim PROJETO, UNIDADE As String
Dim CONTDOC, NUMELINHAS, ATRASADOS, DATA_ATUAL, DATADOC, CONCLUIDOS, HORAS, PERC_CONC As Long
Dim A, B As Integer
Worksheets("Engenharia").Select
DATA_ATUAL = Worksheets("Engenharia").Range("F7")
Range("N10").Select
NUMELINHAS = Range(Selection, Selection.End(xlDown)).Rows.COUNT
PROJETO = Worksheets("Engenharia").Range("E10").Value
UNIDADE = Worksheets("Engenharia").Range("F10").Value
PERC_CONC = Worksheets("Engenharia").Range("T10").Value
CONTDOC = 0
ATRASADOS = 0
CONCLUIDOS = 0
HORAS = 0
For B = 10 To 9 + NUMELINHAS Step 1
For A = 10 To 9 + NUMELINHAS Step 1
DATADOC = Worksheets("Engenharia").Range("S" & A).Value
If PROJETO = Worksheets("Engenharia").Range("E" & A).Value Then
CONTDOC = CONTDOC + 1
HORAS = Worksheets("Engenharia").Range("X" & A).Value + HORAS
If DATADOC < DATA_ATUAL Then
ATRASADOS = ATRASADOS + 1
End If
If PERC_CONC = Worksheets("Engenharia").Range("S6") Then
CONCLUIDOS = CONCLUIDOS + 1
End If
End If
Next A
Worksheets("Resumo").Range("E" & B + 12) = PROJETO
Worksheets("Resumo").Range("J" & B + 12) = UNIDADE
Worksheets("Resumo").Range("L" & B + 12) = CONTDOC
Worksheets("Resumo").Range("O" & B + 12) = ATRASADOS
Worksheets("Resumo").Range("W" & B + 12) = CONCLUIDOS
Worksheets("Resumo").Range("Z" & B + 12) = HORAS
CONTDOC = 0
ATRASADOS = 0
CONCLUIDOS = 0
HORAS = 0
PROJETO = Worksheets("Engenharia").Range("B" & B)
Next B
End Sub
ME AJUDEM, POR FAVOR!
Eu fiz a macro abaixo para contar quantas vezes um projeto aparece numa tabela, quantos documentos estão atrasados, concluídos , a quantidade de documentos em um mesmo projeto e jogar numa planilha de resumo. A minha macro está dando erro porque gera somente uma linha na planilha de resumo e eu queria uma linha por projeto com as contagens que ela precisa fazer.
Segue macro abaixo:
Sub Resumo()
Worksheets("Resumo").Range("$E$22:$AB$150").ClearContents
Dim PROJETO, UNIDADE As String
Dim CONTDOC, NUMELINHAS, ATRASADOS, DATA_ATUAL, DATADOC, CONCLUIDOS, HORAS, PERC_CONC As Long
Dim A, B As Integer
Worksheets("Engenharia").Select
DATA_ATUAL = Worksheets("Engenharia").Range("F7")
Range("N10").Select
NUMELINHAS = Range(Selection, Selection.End(xlDown)).Rows.COUNT
PROJETO = Worksheets("Engenharia").Range("E10").Value
UNIDADE = Worksheets("Engenharia").Range("F10").Value
PERC_CONC = Worksheets("Engenharia").Range("T10").Value
CONTDOC = 0
ATRASADOS = 0
CONCLUIDOS = 0
HORAS = 0
For B = 10 To 9 + NUMELINHAS Step 1
For A = 10 To 9 + NUMELINHAS Step 1
DATADOC = Worksheets("Engenharia").Range("S" & A).Value
If PROJETO = Worksheets("Engenharia").Range("E" & A).Value Then
CONTDOC = CONTDOC + 1
HORAS = Worksheets("Engenharia").Range("X" & A).Value + HORAS
If DATADOC < DATA_ATUAL Then
ATRASADOS = ATRASADOS + 1
End If
If PERC_CONC = Worksheets("Engenharia").Range("S6") Then
CONCLUIDOS = CONCLUIDOS + 1
End If
End If
Next A
Worksheets("Resumo").Range("E" & B + 12) = PROJETO
Worksheets("Resumo").Range("J" & B + 12) = UNIDADE
Worksheets("Resumo").Range("L" & B + 12) = CONTDOC
Worksheets("Resumo").Range("O" & B + 12) = ATRASADOS
Worksheets("Resumo").Range("W" & B + 12) = CONCLUIDOS
Worksheets("Resumo").Range("Z" & B + 12) = HORAS
CONTDOC = 0
ATRASADOS = 0
CONCLUIDOS = 0
HORAS = 0
PROJETO = Worksheets("Engenharia").Range("B" & B)
Next B
End Sub