Spostare riferimento grafico con celle

Anonimo
2017-01-17T10:20:28+00:00

Buongiorno a tutti,

Devo analizzare un certo numero di serie di dati con excel (2016). Ogni serie corrisponde ad una riga di dati.

Ho creato un grafico consuntivo di quest'analisi per una delle serie di dati ma, essendo un grafico abbastanza complesso, perderei molto tempo a ricopiare tutti i riferimenti del grafico per ogni serie di dati.

Esiste un modo per spostare tutti i riferimenti del grafico in maniera semplice? Ad esempio sarebbe perfetto se potessi togliere il "dollaro" ai riferimenti del grafico e spostare il grafico stesso.

Ho pensato anche ad una macro ma purtroppo non so scrivere con vba.

Ho provato a cercare se si potesse usare matlab o octave ma non mi sembra si possa.

Insomma, ogni idea è la benvenuta, vi ringrazio.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2017-01-25T11:25:45+00:00

Risolto, almeno in forma parziale e non troppo smart (come dicevo non sono pratico di vba, questa è la primissima volta che lo uso).

In sostanza ho agito così:

  • Analizzo una serie di dati (Creando tabelle riassuntive, grafici, ecc...)
  • Tolgo il "dollaro" dappertutto grazie a cerca e sostituisci
  • Inserisco in una cella di posizione fissa un tasto;
  • Assegno a quel tasto una macro che legge tutti i dati necessari al grafico con tutti i riferimenti relativi alla posizione del tasto.

Così facendo posso andare a ricopiare n volte sia la tabella di analisi che i grafici dove voglio, avendo solo cura di posizionare il tutto nella stessa posizione relativamente alla serie di dati da analizzare.

Soluzione sicuramente grezza ma che sta funzionando!

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-01-25T07:57:05+00:00

    Ho provato ad usare il file ma secondo me non risolve il problema! Ripeto purtroppo non so usare benissimo vba. Grazie comunque!

    Sarebbe molto bello se non so, cliccando sul grafico esso andasse a prendere come riga e colonna quella in cui è posizionato (fossi con matlab userei l'evento click, andrei a leggere dove si trova il grafico e modificherei i riferimenti delle serie di conseguenza).

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-01-17T15:57:30+00:00

    Non so se possa esserti utile, tenuto conto che non specifichi come i dati sono inseriti nel foglio, ma in questo file di esempio ho inserito un grafico (nominato Grafico 2) in un foglio.

    Nel foglio ho tre serie dati (nella asse delle X le date, nell'asse Y dei valori).

    Ho fatto in  modo che selezionando una cella compresa tra le righe dei valori e entro le colonne delle date il  grafico modifichi i riferimenti alla serie dei valori selezionata.

    Questo il link: FileTest

    Ho sfruttato l'evento WorksheetSelectionChange inserendo questo codice nel modulo VBA del foglio1

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      Const iRigaInizialeDati As Long = 2 '<--- modifcare prima riga dati

      Const sColonnaInizialeDati As String = "A" '<--- modificare prima colonna dati

      Dim chrt As ChartObject

      Dim UltimaRigaDati As Long

      Dim UltimaColonnaDati As Long

      Dim sSourceData1 As String

      Dim sSourceData2 As String

      With Me

        UltimaRigaDati = .Cells(.Rows.Count, sColonnaInizialeDati).End(xlUp).Row

        UltimaColonnaDati = .Cells(iRigaInizialeDati, .Columns.Count).End(xlToLeft).Column

        If Target.Column >= .Columns(sColonnaInizialeDati).Column And Target.Column <= .Columns(UltimaColonnaDati).Column Then

          If Target.Row > .Rows(iRigaInizialeDati).Row And Target.Row <= UltimaRigaDati Then

            sSourceData1 = .Range(.Cells(iRigaInizialeDati, sColonnaInizialeDati), _

                                  .Cells(iRigaInizialeDati, UltimaColonnaDati)).Address(False, False)

            sSourceData2 = sColonnaInizialeDati & Target.Row & ":" & .Cells(Target.Row, UltimaColonnaDati).Address(False, False)

              Set chrt = .ChartObjects("Grafico 2")

                With chrt

                  .Chart.SetSourceData Source:=Range(sSourceData1 & "," & sSourceData2)

                End With

          End If

        End If

      End With

     Set chrt = Nothing

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento