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