Agrupamento Automático de Dados com VBA

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

Baixe a planilha