Création d'un excel chart

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - Modifié le 12 déc. 2018 à 19:10
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 13 déc. 2018 à 00:20
Bonjour,
J'essaie de créer un excel pie3d chart via le vb.net

Public Sub ShowChart(ByVal mylist As List(Of Classdayhag))
        Dim celltable As excel.Range
        Dim indexcol As Integer
        Dim indexrow As Integer
        Try

            With xlworksheet
                celltable = .Range("A1", "B" & (mylist.Count - 1))
                indexcol = 1
                indexrow = 1
                For Each item As Classdayhag In mylist
                    .Cells(indexrow, indexcol) = item.dayname
                    .Cells(indexrow, indexcol + 1) = item.count
                    indexrow += 1
                Next
                celltable.Select()
                Dim mychart As New excel.Chart
                With mychart
                    .Shapes.AddChart.Select()
                    .ChartType = excel.XlChartType.xl3DPie
                    .SetSourceData(Source:=celltable)
                    .ApplyLayout(6)
                End With
            End With

            objexcel.Visible = True
            RaiseEvent isshown()
            objexcel = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            objexcel = Nothing
        End Try
    End Sub


j'obtiens l'erreur à la ligne .Shapes.AddChart.Select()
Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ChartClass' to interface type 'Microsoft.Office.Interop.Excel._Chart

merci d'avance

1 réponse

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
13 déc. 2018 à 00:20
j'ai réussi

 Public Sub ShowChart(ByVal mylist As List(Of Classdayhag), ByVal title As String)

        'create chart

        Dim xlCharts As excel.ChartObjects
        Dim myChart As excel.ChartObject
        Dim celltable As excel.Range
        Dim indexcol As Integer
        Dim indexrow As Integer

        Try
            xlCharts = CType(xlworksheet.ChartObjects, excel.ChartObjects)
            myChart = xlCharts.Add(10, 80, 400, 400)
            With xlworksheet
                celltable = .Range("A1", "B" & (mylist.Count))


                indexcol = 1
                indexrow = 1
                For Each item As Classdayhag In mylist
                    .Cells(indexrow, indexcol) = item.dayname
                    .Cells(indexrow, indexcol + 1) = item.count
                    indexrow += 1
                Next
                celltable.Select()


                With myChart
                    .Chart.ChartType = excel.XlChartType.xl3DPie
                    .Chart.HasTitle = True
                    .Chart.ChartTitle.Text = title
                    .Chart.ChartTitle.Font.Name = "Arial"
                    .Chart.ChartTitle.Font.Size = 12
                    .Chart.ChartTitle.Font.Bold = True
                    .Chart.SetSourceData(Source:=celltable)
                    .Chart.ApplyLayout(6)
                
                End With
            End With

            objexcel.Visible = True
            RaiseEvent isshown()
            objexcel = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            objexcel = Nothing
        End Try

    End Sub
0
Rejoignez-nous