Discussione: Grafico da VBA
Visualizza messaggio singolo
Vecchio 29-11-2017, 20.07.15   #2
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Grafico da VBA

Questa macro sembra funzionare meglio , un avolta capito che l'origine è il foglio1 e la destinazione del grafico è il foglio5 :

Quota:
Sub Test() ' crea grafico
Dim LastRow As Long
Dim Rng1 As Range
Dim rng2 As Range
Dim ShName As String

With ActiveSheet
LastRow = .Range("K" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("K2:K" & LastRow & ", L1:L" & LastRow)
'Set rng2 = .Range("L2:L" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.SetSourceData Source:=Rng1
With .SeriesCollection.NewSeries
'.Values = rng2
.AxisGroup = 2
End With
.Location Where:=xlLocationAsObject, Name:=ShName
End With
'copia grafico1 a Storico_CSV
Sheets("Grafico1").Select ' grafico di origine
ActiveSheet.Unprotect
ActiveChart.Legend.Select
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Sheets("Storico_CSV").Select
Range("A5").Select
ActiveSheet.Paste
ActiveSheet.ChartObjects("Grafico 5").Activate ' diventa "grafico 5" dopo copia sul foglio Storico_CSV
ActiveSheet.Shapes("Grafico 5").ScaleWidth 0.9865924553, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Grafico 5").ScaleHeight 0.9701706491, msoFalse, _
msoScaleFromBottomRight
ActiveWindow.SmallScroll Down:=12
ActiveSheet.ChartObjects("Grafico 5").Activate
ActiveSheet.Shapes("Grafico 5").ScaleWidth 0.9833852544, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Grafico 5").ScaleHeight 0.7638077647, msoFalse, _
msoScaleFromTopLeft
ActiveWindow.ScrollRow = 1
ActiveSheet.Protect
End Sub
Files allegati
Tipo file: rar Screenshot 2017-11-29 18.28.21.rar (112,4 Kb, 1 visite)
Gianca53 non è collegato   Rispondi citando