VBA Excel - Ordenando os dados de um gráfico - Graph data table sorting via vba









Consultancy in Excel, Access, VBA & PowerPoint projects

Sim, quanto mais criamos Dashboards, mais estes evoluem. Ao evoluir nossos Dashboards requerem certos tratamentos e cuidados para melhorarem a performance e a apresentação.

O que segue, é uma das muitas dúvidas que caem por aqui, em nosso Blog.

Como posso ordenar a série de dados que demonstro no meu gráfico cada vez que os respectivos dados são atualizados?

Sub RankTable()
    
    Dim chtTemp As Chart
    Dim vntData() As Variant
    Dim objSeries As Series
    Dim lngIndex As Long
    Dim rngSort As Range
    Dim lngRow As Long
    
    Set chtTemp = ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Chart
    ReDim vntData(1 To chtTemp.SeriesCollection.Count, 1 To 2)
    
    lngIndex = 1
    For Each objSeries In chtTemp.SeriesCollection
        vntData(lngIndex, 1) = objSeries.Name
        vntData(lngIndex, 2) = Application.WorksheetFunction.Index(objSeries.Values, 1, objSeries.Points.Count)
        lngIndex = lngIndex + 1
    Next

    Set rngSort = Range("J1").Resize(UBound(vntData) - LBound(vntData) + 1, 2)
    With rngSort
        .Value = vntData
        .Sort .Cells(1, 2), xlDescending, , , , , , xlNo
        vntData = .Value
    End With
    
    For lngRow = rngSort.Rows.Count To 1 Step -1
        chtTemp.SeriesCollection(vntData(lngRow, 1)).PlotOrder = lngRow
    Next
End Sub



Sim acrescente este código a um módulo, ajuste as referências a planilha e fonte de dados e boa diversão!



Tags: Excel, Order, Sort, VBA, Andy Pope,





Nenhum comentário:

Postar um comentário

diHITT - Notícias