Esportazione di grafico in Excel tramite VBA

di il
2 risposte

Esportazione di grafico in Excel tramite VBA

Buongiorno a tutti,

l'ultima volta che ho chiesto consiglio qui, ho risolto il mio problema in poche ora, quindi ci provo di nuovo e spero che sarete così gentili da darmi una mano anche questa volta.

Sempre sull'applicativo Access che sto piano piano sviluppando e migliorando, ho una maschera con alcuni grafici che si aggiornano al variare dei valori selezionati nelle caselle combinate della maschera. Banalmente i grafici sono collegati alle query, a loro volta collegate alle caselle combinate.

Avrei bisogno ora di creare un pulsante che mi esporti questi grafici in Excel. Conosco il comando per esportare il risultato di una query, e funziona molto bene in un'altra maschera. In questo caso però vorrei proprio il grafico, ancor meglio con la medesima formattazione che ha in Access.

Potresti aiutarmi?

Grazie mille come sempre.

2 Risposte

  • Re: Esportazione di grafico in Excel tramite VBA

    Guarda quello che chiedi è impossibile... completamente fuori da ogni possibilità e logica.
    Quello che puoi e dovresti fare, è crearti un TEMPLATE in Excel con già i Grafici PreFormattati, poi esporti la Query nell'area che corrisponde all'origine.
  • Re: Esportazione di grafico in Excel tramite VBA

    Concordo con Alex sulla creazione di un template in Excel, vedi questo codice che crea un template in Excel , esporta dei dati e crea un grafico.
    
    Const xlDataLabelsShowPercent = 3
    
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add()
    
    Set objWorksheet = objWorkbook.Worksheets(1)
    
    
    objWorksheet.Cells(1,1) = "Operating System"
    objWorksheet.Cells(2,1) = "Windows Server 2003"
    objWorksheet.Cells(3,1) = "Windows XP"
    objWorksheet.Cells(4,1) = "Windows 2000"
    objWorksheet.Cells(5,1) = "Windows NT 4.0"
    objWorksheet.Cells(6,1) = "Other"
    
    objWorksheet.Cells(1,2) = "Number of Computers"
    objWorksheet.Cells(2,2) = 145
    objWorksheet.Cells(3,2) = 487
    objWorksheet.Cells(4,2) = 211
    objWorksheet.Cells(5,2) = 41
    objWorksheet.Cells(6,2) = 56
    
    Set objRange = objWorksheet.UsedRange
    objRange.Select
    
    Set colCharts = objExcel.Charts
    colCharts.Add()
    
    Set objChart = colCharts(1)
    objChart.Activate
    
    objChart.ChartType = 70
    objChart.Elevation = 30
    
    objChart.Rotation = 80
    
    objChart.ApplyDataLabels xlDataLabelsShowPercent
    
    objChart.PlotArea.Fill.Visible = False
    objChart.PlotArea.Border.LineStyle = -4142
    
    objChart.SeriesCollection(1).DataLabels.Font.Size = 14
    objChart.SeriesCollection(1).DataLabels.Font.ColorIndex = 2
    
    objChart.ChartArea.Fill.ForeColor.SchemeColor = 49
    objChart.ChartArea.Fill.BackColor.SchemeColor = 23
    objChart.ChartArea.Fill.TwoColorGradient 1,1
    
    objChart.ChartTitle.Font.Size = 24
    objChart.ChartTitle.Font.ColorIndex = 2
    
    objChart.Legend.Shadow = True
    
    for i = 0 to 300
    Wscript.Sleep 200
    objChart.Rotation = objChart.Rotation + 1
    next
    
    
Devi accedere o registrarti per scrivere nel forum
2 risposte