Descrizione di cosa fa la macro seguente : mi da la possibilità di restringere l'asse del tempo e modificare anche la scala dei valori su un grafico inserito nel foglio e che contiene molti dati, per capirci oltre 20000 per ogni serie rappresentata, dandomi la possibilità di zoomare il periodo che più interessa studiare in modo tale da avere una visuale limpida su un determinato periodo che va da A a B , come noterete ciò è possibile inserendo le coordinate nelle apposite celle descritte nella macro.
Il problema: quando inserisco le coordinate riguardanti prezzo e scala e premo il tasto invio tutto funziona correttamente per quanto riguarda il grafico denominato chart 1 , mentre non avviene nessun aggiornamento per quanto riguarda il grafico denominato chart 2
premetto che i nomi dei grafici sulla loro relativa scheda di Layout è corretto e rispecchiano quelli specificati nella macro , la macro non restituisce nessun errore , però esegue correttamente le istruzioni inserite nelle apposite celle ma solo per il Chart 1
i grafici nel foglio (stesso foglio )di lavoro sono due disposti uno accanto all' altro vedere immagine alla fine del post , se notate sul grafico inferiore lo zoom non avviene e mostra il range intero dal 1974 al 2048 mentre avrebbe dovuto restringersi come il primo.
vorrei se possibile si aggiornassero entrambi a seconda delle istruzioni inserite nelle celle di riferimento
GRAZIE MILLE PER LA VOSTRA ATTENZIONE
oggetto = worksheet ------------ routine = Change
- Codice: Seleziona tutto
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
' Chart 1
' Asse Orizzontale del Tempo
Case "$E$2"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlCategory, xlPrimary) _
.MaximumScale = Target.Value
Case "$E$3"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlCategory, xlPrimary) _
.MinimumScale = Target.Value
Case "$E$4"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlCategory, xlPrimary) _
.MajorUnit = Target.Value
' Asse Verticale di sinistra scala numerica
Case "$F$2"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlValue, xlPrimary) _
.MaximumScale = Target.Value
Case "$F$3"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlValue, xlPrimary). _
MinimumScale = Target.Value
Case "$F$4"
ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlValue, xlPrimary) _
.MajorUnit = Target.Value
' Chart 2
' Asse Orizzontale del Tempo
Case "$E$2"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlCategory, xlPrimary) _
.MaximumScale = Target.Value
Case "$E$3"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlCategory, xlPrimary) _
.MinimumScale = Target.Value
Case "$E$4"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlCategory, xlPrimary) _
.MajorUnit = Target.Value
' Asse Verticale di sinistra scala numerica
Case "$F$2"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlValue, xlPrimary) _
.MaximumScale = Target.Value
Case "$F$3"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlValue, xlPrimary). _
MinimumScale = Target.Value
Case "$F$4"
ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlValue, xlPrimary) _
.MajorUnit = Target.Value
Case Else
End Select
End Sub