Ciao Lorenzo,
vorrei sapere se è possibile e come usare delle formule nella finestra di dialogo Seleziona dati ->Modifica serie -> Valori serie
di un grafico in modo da potere nel caso di
=DatiPisa!$W$8:$W$464
far dipendere gli estremi $W$8 e $W$464 della colonna dei dati da rappresentare dal contenuto di due celle diverse dagli estremi della colonna che contiene i dati ovvero vorrei qualcosa del tipo
=DatiPisa!$W$(contenuto di C1):$W$(contenuto di C2)
in modo da estendere i grafici alla bisogna ma anche da zoommare nei grafici agendo in modo opportuno sugli estremi.
Ho visto come fare con i nomi ma nel mio caso ne dovrei creare troppi e non mi pare che le tabelle facciano al caso mio e cmq non vorrei usarle.
Non è possibile utilizzare una funzione del foglio di lavoro in una formula del grafico: è necessario modificare la formula manualmente o sfruttare VBA.
Per aggiornare automaticamente il grafico in risposta a una modifica dell'indirizzo nella (diciamo) cella A15, prova qualcosa del genere:
- Fai clic dx sulla linguetta del foglio di interesse
- Seleziona l'opzione
Visualizza Codice dal****menu contestuale risultante
- Incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, rngTemp As Range
Dim myChart As Chart
Dim arrSplit As Variant
Dim sFormula As String
Dim oldStr As String, oldStr2 As String
Dim newStr As String, newStr2 As String
Dim sStr As String
Const sDati_Grafico As String = "A15" '<<=== Modifica
Set Rng = Intersect(Me.Range(sDati_Grafico), Target)
If Not Rng Is Nothing Then
Set myChart = Me.ChartObjects(1).Chart
sFormula = myChart.SeriesCollection(1).Formula
arrSplit = Split(sFormula, ",")
On Error GoTo XIT
newStr = Range(Rng.Value).Address
newStr2 = Range(Rng.Value).Offset(1).Address
On Error GoTo XIT
With Application
.EnableEvents = False
.Undo
End With
oldStr = Range(Rng.Value).Address
Set rngTemp = Me.Range(oldStr)
If rngTemp Is Nothing Then
GoTo XIT
End If
oldStr2 = Range(Rng.Value).Offset(1).Address
Rng.Value = newStr
sFormula = Replace(sFormula, oldStr, newStr)
sFormula = Replace(sFormula, oldStr2, newStr2)
myChart.SeriesCollection(1).Formula = sFormula
End If
XIT:
Rng.Value = newStr
Application.EnableEvents = True
End Sub
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel.
- Salva il file con l'estensione xlsm.
Potresti scaricare il mio file di prova Lorenzo20200510.xlsm
===
Regards,
Norman
