Je suis sortie un graphique Excel en powerpoint et j'ai besoin d'ajouter une nouvelle série de données au graphique, j'ai enregistré la macro pour voir comment pour le faire, ce qui nécessite une gamme à une collection de série, mais pas de chance.ajouter de nouvelles séries de données à un objet graphique excel existant dans powerpoint en utilisant vba 2010 - incompatibilité de type
Voici l'exemple de travail complet en utilisant l'accès 2010 vba, dans lequel, à la fin j'essaie d'ajouter une nouvelle série de données:
Option Compare Database
Public Sub CreateChart()
Dim myChart As Chart
Dim gChartData As ChartData
Dim gWorkBook As Excel.Workbook
Dim gWorkSheet As Excel.Worksheet
Dim pptApp As Object
Dim pptobj As Object
Set pptApp = CreateObject("Powerpoint.Application")
Set pptobj = pptApp.Presentation.Add
pptobj.Slides.Add 1, ppLayoutBlank
' Create the chart and set a reference to the chart data.
Set myChart = pptobj.Slides(1).Shapes.AddChart.Chart
Set gChartData = myChart.ChartData
' Set the Workbook and Worksheet references.
Set gWorkBook = gChartData.Workbook
Set gWorkSheet = gWorkBook.Worksheets(1)
' Add the data to the workbook.
gWorkSheet.ListObjects("Table1").Resize gWorkSheet.Range("A1:B5")
gWorkSheet.Range("Table1[[#Headers],[Series 1]]").Value = "Items"
gWorkSheet.Range("a2").Value = "Coffee"
gWorkSheet.Range("a3").Value = "Soda"
gWorkSheet.Range("a4").Value = "Tea"
gWorkSheet.Range("a5").Value = "Water"
gWorkSheet.Range("b2").Value = "1000"
gWorkSheet.Range("b3").Value = "2500"
gWorkSheet.Range("b4").Value = "4000"
gWorkSheet.Range("b5").Value = "3000"
' Apply styles to the chart.
With myChart
.ChartStyle = 4
.ApplyLayout 4
.ClearToMatchStyle
End With
' Add the axis title.
With myChart.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Units"
End With
'Add a new data series - TYPE MISMATCH ERROR!!!
myChart.SeriesCollection.NewSeries
myChart.SeriesCollection(2).Name = "New_Series"
myChart.SeriesCollection(2).Values = gWorkSheet.Range("C2:C5") 'Range that is in the worksheet
'myChart.ApplyDataLabels
' Clean up the references.
Set gWorkSheet = Nothing
' gWorkBook.Application.Quit
Set gWorkBook = Nothing
Set gChartData = Nothing
Set myChart = Nothing
End Sub
Cet exemple est le lien suivant: https://msdn.microsoft.com/en-us/library/office/ff973127(v=office.14).aspx
En Pour exécuter ce code, vous devez importer: Visual Basic pour Applications, Bibliothèque d'objets Microsoft Access, OLE Automation, Objet Moteur de base de données d'accès Microsoft Office, Bibliothèque d'objets Microsoft Office, Bibliothèque d'objets Microsoft Powerpoint et Bibliothèque d'objets Microsoft Excel. (La bibliothèque d'objets Powerpoint doit d'abord être importée, puis Microsoft Excel Object Library ou il y a des problèmes de référence)
Avez-vous une idée de l'ajout d'une nouvelle série de données ou de ce qui pourrait ne pas fonctionner avec le code?
Merci beaucoup d'avance.
Merci beaucoup l'homme !!! cela a fonctionné, hier, j'ai essayé d'utiliser gworksheet.Range (..), Value mais ne fonctionnait pas, je ne savais pas que value2 était la clé, merci! – sahilu