Olá, Wilson.
Veja se ajuda.
Sub ConsolidarDados()
Dim LR As Long, m As Long, c As Long
Range("G2:H" & Cells(Rows.Count, 7).End(3).Row) = ""
LR = Cells(Rows.Count, 3).End(3).Row
For c = 2 To LR
Cells(m + 2, 7) = Cells(c, 3)
If Application.CountIf([C:C], Cells(c, 3)) = 1 Then
Cells(m + 2, 8) = Cells(c, 5)
Else
If Cells(c, 1) = Cells(c + 1, 1) And Cells(c, 4) <> Cells(c + 1, 4) Then
Cells(m + 2, 8) = Cells(c, 5) + Cells(c + 1, 5) & " e " & Cells(c + 2, 5)
Else:
If Cells(c, 5) = Cells(c + 1, 5) Then
Cells(m + 2, 8) = Cells(c, 5) & " e " & Cells(c + 2, 5)
Else: Cells(m + 2, 8) = Cells(c, 5) & ", " & Cells(c + 1, 5) & " e " & Cells(c + 2, 5)
End If
End If
c = c + 2
End If
m = m + 1
Next c
End Sub
obs.
1. o código acima é baseado na máscara dos registros da planilha que você disponibilizou e poderá retornar resultados indesejados se for empregado em planilha com a máscara diferente
2. com base nos seus critérios o resultado para o registro EE ADALGISA DE PAULA DUQUE é 18 e 16 e não 12, 6 e 16 como você colocou no resultado esperado
3. os últimos cinco itens que você colocou no resultado esperado não estão na sua tabela de dados, então não têm utilidade
4. o registro EE CONEGO JOAQUIM MONTEIRO está faltando no seu resultado esperado, por isso não pude conferir
Postado : 04/05/2016 2:02 pm