Ho una serie di VALORI in riga che vengono aggiunti riga dopo riga, giorno per giorno.
Ho creato 4 Macro con 4 Pulsanti per la creazione di 4 Grafici sullo stesso foglio dove ci sono anche i Dati.
Queste macro sono le stesse, solo che cambia il riferimento delle celle che contengono i valori, ecco la macro per il primo grafico:
- Codice: Seleziona tutto
Sub Grafico_1()
Application.ScreenUpdating = False
Dim ch As ChartObject
Set ch = ActiveSheet.ChartObjects.Add(150, 20, 400, 250)
ch.Chart.ChartWizard Source:=ActiveSheet.Range("B10:F10"), _
gallery:=xlLine, Title:="Proposte\Contatti"
A = ActiveSheet.[A10].Address
B = ActiveSheet.[A10].End(xlDown).Address
L = ActiveSheet.[B10].Address
M = ActiveSheet.[B10].End(xlDown).Address
N = ActiveSheet.[C10].Address
O = ActiveSheet.[C10].End(xlDown).Address
P = ActiveSheet.[D10].Address
Q = ActiveSheet.[D10].End(xlDown).Address
R = ActiveSheet.[E10].Address
S = ActiveSheet.[E10].End(xlDown).Address
T = ActiveSheet.[F10].Address
U = ActiveSheet.[F10].End(xlDown).Address
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range(A, B)
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range(L, M)
ActiveChart.SeriesCollection(1).MarkerStyle = xlNone
ActiveChart.SeriesCollection(1).Name = "Totale"
ActiveChart.SeriesCollection(2).Values = ActiveSheet.Range(N, O)
ActiveChart.SeriesCollection(2).MarkerStyle = xlNone
ActiveChart.SeriesCollection(2).Name = "Agenzia"
ActiveChart.SeriesCollection(3).Values = ActiveSheet.Range(P, Q)
ActiveChart.SeriesCollection(3).MarkerStyle = xlNone
ActiveChart.SeriesCollection(3).Name = "Arenzano"
ActiveChart.SeriesCollection(4).Values = ActiveSheet.Range(R, S)
ActiveChart.SeriesCollection(4).MarkerStyle = xlNone
ActiveChart.SeriesCollection(4).Name = "Serra"
ActiveChart.SeriesCollection(5).Values = ActiveSheet.Range(T, U)
ActiveChart.SeriesCollection(5).MarkerStyle = xlNone
ActiveChart.SeriesCollection(5).Name = "Voltri"
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.TickLabels.Orientation = xlUpward
.TickLabels.Font.Size = 6
.MinimumScale = ActiveSheet.Range(A)
.MaximumScale = ActiveSheet.Range(B)
.MajorUnit = 1
.MajorUnitScale = xlDays
.MinorUnitIsAuto = True
.Crosses = xlAutomatic
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
ActiveChart.Deselect
Application.ScreenUpdating = True
End Sub
Le altre tre macro sono uguali ma attribuiscono celle diverse alle variabili ( a,b,c.. Etc.. )
Le macro funzionano quando non sono presenti altri grafici già generati dalle macro sul foglio. Quindi, mi spiego meglio, ipotizziamo di voler visualizzare il grafico 1, basta cliccare il pulsante apposito ma per vedere il grafico due, o cancello il grafico uno e poi avvio la macro che genera il grafico due, oppure, se ho già generato un qualsiasi grafico, il grafico due viene generato senza valori sull'asse delle x come potete vedere in foto.
A destra è il primo file generato e a sinistra il secondo. Ricordo che se avessi cancellato il file a destra ( proposte\Contatti) prima di generare quello a sinistra ( vendite proposte ), allora avrei avuto il grafico di sinistra correttamente sviluppato.
La soluzione che ho provato ad adottare è la seguente, prima le altre tre macro utilizzavano la stessa colonna come riferimento dell'asse delle x, ora collego le variabili "a e b" a tre colonne diverse con gli stessi valori della colonna A ma il problema continua a sussistere, non capisco perchè, potete aiutarmi ? Grazie mille !
http://imageshack.com/a/img538/3701/34vdOh.png
[img][IMG]http://imagizer.imageshack.us/v2/xq90/538/34vdOh.png[/img][/img]