Objetivo: Demonstrar a utilização de um código VBA para o agrupamento automático de dados.
O procedimento de agrupamento de dados do Excel é uma ferramenta excelente para organização e apresentação de dados.
Só que esta função somente permite que você faça agrupamentos manuais, de forma que inviabiliza o agrupamento de uma lista muito extensa sem utilizar a função do Excel de subtotais.
Neste código VBA ele faz o mesmo agrupamento, só que sem criar os resumos dos subtotais, e também pode ser configurado o nome do agrupamento.
Sub lsAgruparDados()
On Error Resume Next
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
Dim lConteudo As Long
Dim lInicio As Long
Dim lFinal As Long
lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
lContador = 2
lInicio = 2
While lContador <= lUltimaLinhaAtiva
If Cells(lContador, 1).Value Cells(lInicio, 1).Value Then
Range("A" & lContador).Rows.EntireRow.Insert
Range("A" & lContador).Value = "Grupo " & Cells(lContador - 1, 1).Value
Range("A" & CStr(lInicio) & ":A" & CStr(lContador - 1)).Rows.Group
lInicio = lContador + 1
End If
If lUltimaLinhaAtiva = lContador Then
lFinal = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
Range("A" & lFinal + 1).Value = "Grupo " & Cells(lFinal - 1, 1).Value
Range("A" & CStr(lInicio) & ":A" & CStr(lFinal)).Rows.Group
End If
lContador = lContador + 1
Wend
End Sub
Abraço
Marcos Rieper
Avalie este post



