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 ChartDim vntData() As VariantDim objSeries As SeriesDim lngIndex As LongDim rngSort As RangeDim lngRow As LongSet chtTemp = ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).ChartReDim vntData(1 To chtTemp.SeriesCollection.Count, 1 To 2)lngIndex = 1For Each objSeries In chtTemp.SeriesCollectionvntData(lngIndex, 1) = objSeries.NamevntData(lngIndex, 2) = Application.WorksheetFunction.Index(objSeries.Values, 1, objSeries.Points.Count)lngIndex = lngIndex + 1NextSet rngSort = Range("J1").Resize(UBound(vntData) - LBound(vntData) + 1, 2)With rngSort.Value = vntData.Sort .Cells(1, 2), xlDescending, , , , , , xlNovntData = .ValueEnd WithFor lngRow = rngSort.Rows.Count To 1 Step -1chtTemp.SeriesCollection(vntData(lngRow, 1)).PlotOrder = lngRowNextEnd 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,