Macro per estrarre dati da un grafico in Excel

Riepilogo

In Microsoft Excel è possibile recuperare dati da un grafico anche quando i dati si trova in un foglio di lavoro esterno o in una cartella di lavoro. Ciò è utile nelle situazioni in cui il grafico è stato creato da o collegato a un altro file che non è disponibile o è stato danneggiato in qualche modo. Quando i dati di origine di un grafico vengono persi, i dati possono comunque essere recuperati dal grafico stesso usando una macro microsoft Visual Basic, Applications Edition.

Ulteriori informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

La macro di esempio seguente inserisce i dati di origine del grafico in un foglio di lavoro denominato "ChartData" nella cartella di lavoro attiva, a partire dalla prima colonna e dalla prima riga.

  1. Immettere il codice macro seguente in un foglio del modulo:

    Sub GetChartValues()
       Dim NumberOfRows As Integer
       Dim X As Object
       Counter = 2
    
       ' Calculate the number of rows of data.
       NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
    
       Worksheets("ChartData").Cells(1, 1) = "X Values"
    
       ' Write x-axis values to worksheet.
       With Worksheets("ChartData")
          .Range(.Cells(2, 1), _
          .Cells(NumberOfRows + 1, 1)) = _
          Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
       End With
    
       ' Loop through all series in the chart and write their values to
       ' the worksheet.
       For Each X In ActiveChart.SeriesCollection
          Worksheets("ChartData").Cells(1, Counter) = X.Name
    
          With Worksheets("ChartData")
             .Range(.Cells(2, Counter), _
             .Cells(NumberOfRows + 1, Counter)) = _
             Application.Transpose(X.Values)
          End With
    
          Counter = Counter + 1
       Next
    
    End Sub
    
  2. Inserire un nuovo foglio di lavoro nella cartella di lavoro e rinominarlo "ChartData" (senza virgolette).

  3. Selezionare il grafico da cui estrarre i valori dei dati sottostanti.

    Nota

    Il grafico può essere incorporato in un foglio di lavoro o in un foglio grafico separato.

  4. Eseguire la macro GetChartValues.

    I dati del grafico vengono inseriti nel foglio di lavoro "ChartData".

Per rendere il grafico interattivo con i dati recuperati, è necessario collegare il grafico alla nuova scheda dati anziché mantenere i collegamenti alla cartella di lavoro mancante o danneggiata.

  1. Selezionare il grafico e fare clic su una serie per trovare il nome del foglio a cui è collegato il grafico nella cartella di lavoro danneggiata o mancante. Il nome del foglio viene visualizzato nella formula della serie nella barra della formula.

    Nota

    Il nome del foglio può seguire il nome della cartella di lavoro, racchiuso tra parentesi quadre come "[Book1]" e precedere il punto esclamativo "!" (o apostrofo e punto esclamativo "'!") che indica l'inizio di un riferimento di cella. Il nome del foglio include solo i caratteri tra il simbolo di parentesi quadre chiuse "]" e il punto esclamativo (o apostrofo e punto esclamativo). Lasciare fuori qualsiasi apostrofo se è immediatamente prima del punto esclamativo, perché un apostrofo non può essere l'ultimo carattere in un nome di foglio.

  2. Fare doppio clic sulla scheda del nuovo foglio denominata ChartData.

  3. Digitare il nome del foglio originale del passaggio 1 sopra "ChartData" evidenziato e premere INVIO. Questo nome deve corrispondere al nome del foglio della cartella di lavoro danneggiata o mancante.

  4. Se il file non è stato salvato con il grafico e il foglio dati, salvare il file.

  5. In Excel 2003 o Excel 2002 fare clic su Collegamenti dal menu Modifica e quindi su Modifica origine.

    In Excel 2007 fare clic sulla scheda Dati , scegliere Modifica collegamenti nel gruppo Connenctions e quindi fare clic su Cambia origine.

  6. Nella casella File di origine selezionare il collegamento da modificare e quindi fare clic su Cambia origine.

  7. Nella finestra di dialogo Modifica collegamenti selezionare il nuovo file con i dati e il grafico ripristinati e quindi fare clic su OK.

  8. Se viene visualizzato il messaggio di errore seguente

    La formula contiene un riferimento esterno non valido a un foglio di lavoro.

    è probabile che il nome del foglio digitato nel passaggio 3 non corrisponda all'originale. Indietro al passaggio 1.

  9. La casella File di origine potrebbe ora essere vuota. Ciò indica che tutti i collegamenti puntano al file attivo anziché al file mancante o danneggiato. Scegliere Chiudi.

Il grafico fa ora riferimento e interagisce con i dati recuperati nel foglio rinominato nella cartella di lavoro attiva.