Atualmente trabalhando em um script vba que cria gráficos automaticamente. Eu gostaria de adicionar uma tabela de dados que é feita usando: .HasDataTable = True
No entanto, gostaria de mostrar os valores das séries como porcentagens. Atualmente, o valor é definido como um Double contendo todos os valores, mas não a formatação correta.
OusodeFormat()ouFormatPercent()forneceráosvalorescorretos,masretornaráemumaString.Issofuncionaparaatabeladedados,masnãoparaoprópriográfico,jáquenãoreconhecemaisosvalores.
Minhaperguntaseresumeaseépossívelmostrarosvalorescomoporcentagensnatabeladedadosenográfico?SemoVBA,éfeitofacilmenteformatandoosdadosnasprópriascélulas.Oproblemaéque,paraformatação,umaStringéretornada,masparaográfico,IntegersouDoublessãonecessários.
Qualquerajudaébem-vindae,porfavor,deixe-mesaberseaperguntanãoéclara.
Abaixoestápartedocódigo.SeeudiminuiroRatiocomoStringeusarFormatPercent(),obtenhoaformataçãosolicitada,mas,emseguida,osvaloresemRatioarnãosãomaisduplicados,porissonãoforneceográficonecessário.
DimRatio()AsDoubleDimlabels()AsStringReDimRatio(1ToHeight)ReDimlabels(1ToHeight)ForEachColumnInsArraylabels(i)=Sheets(DataSheetName).Cells(LabelsRow,Column)Ratio(i)=Math.Round(Sheets(DataSheetName).Cells(LabelsRow+3,Column),2)i=i+1NextColumnSetmyChtObj=Sheets(DrawSheetName).ChartObjects.Add(Left:=Left,Width:=Width,Top:=Top,Height:=HeightGraph)DimsrsNew1AsSeries'AddthechartWithmyChtObj.Chart.ChartArea.Fill.Visible=False.ChartArea.Border.LineStyle=xlNone.PlotArea.Format.Fill.Solid.PlotArea.Format.Fill.Transparency=1.HasTitle=True.ChartTitle.text=Title.HasLegend=False.Axes(xlValue).TickLabels.NumberFormat="0%"
.Axes(xlCategory, xlPrimary).HasTitle = False
'add data table
.HasDataTable = True
' Make Line chart
.ChartType = xlLine
' Add series
Set srsNew1 = .SeriesCollection.NewSeries
With srsNew1
.Values = Ratio
.XValues = labels
.Name = "Ratio"
.Interior.Color = clr3 'RGB(194, 84, 57)
End With
End With
Em adição ao acima. A imagem abaixo pode ilustrar melhor o que eu quero.