Condividi tramite

MACRO: parametrizzare il range di un grafico

Anonimo
2014-06-19T14:52:45+00:00

Ciao a tutti, mensilmente, al fine di monitorare lo stato di avanzamento del mio progetto, devo formulare dei grafici che presentano i valori PLANNED ACTUAL dall'inizio del progetto ad oggi.

I valori che questi grafici prendono, provengono da un foglio "DATA" che ogni mese viene aggiornato con i valori ACTUAL.

Le colonne di questo foglio rappresentano tutti i mesi del mio progetto.

I valori PLANNED quindi (del mese corrente e cumulati) vengono sempre visualizzati e non cambiano mai (perchè congelati a inizio progetto) mentre gli valori ACTUA (del mese corrente e cumulati), ogni mese devo modificare il range del grafico di riferimento -- vado nel foglio del grafico - tasto dx - Seleziona Dati - Modifica - Valori Serie (da colonna A a Colonna B).

Siccome i grafici a cui devo approtare questa modifica sono più di 30, questo lavoro risulta piuttosto lungo. Per ovviare a ciò, ho pensato di registrare una MACRO e questo è quello che excel mi ha generato:

Sub ShiftMese() '

' ShiftMese Macro

' permette, in tutti i grafici del foglio di lavoro, di considerare tutti i valori Actual **** Actual, fino al mese corrente '

' Scelta rapida da tastiera: CTRL+l

' Sheets("Overall").Select

ActiveSheet.ChartObjects("Grafico 1").Activate

ActiveChart.Axes(xlValue, xlSecondary).MinorGridlines.Select

ActiveChart.SeriesCollection(5).Values = "='DATA'!$K$5:$Y$5"

ActiveChart.SeriesCollection(10).Values = "='DATA'!$K$11:$Y$11"

Sheets("WP01").Select

ActiveSheet.ChartObjects("Grafico 1").Activate

ActiveChart.SeriesCollection(6).Values = "='DATA'!$K$17:$Y$17"

ActiveChart.SeriesCollection(10).Values = "='DATA'!$K$23:$Y$23"

End Sub

Questa MACRO velocizza di molto il mio lavoro. Il mese prossimo non dovrò fare altro che sostituire nella MACRO "Y" con "Z".

Mi chiedo però se sia possibile evitare di fare questa sostituzione manuale (una sessantina), inserendo, in una cella qualsiasi del foglio DATA (es. nella cella A1), la stringa/nome della colonna (es. "Z"), relativa al mese corrente, del nuovo range in modo che tutti i valori della macro Y vengano sostituiti con Z.

Grazie dell'aiuto

Saluti

Nicolò

<Mod> Moved from English forum.

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

  1. Anonimo
    2014-06-23T15:42:21+00:00

    La risposta di Mauro è quella adatta alle mie esigenze anche se, non son riuscito ad aggiornare la colonna tramite una singola cella.

    Senza l'obbligo di nessun foglio con il riferimento alla colonna (sempre se ho capito):

    Da studiare... ;-)

    La risposta è stata utile?

    0 commenti Nessun commento

16 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-06-19T15:17:30+00:00

    Sorry, I didn't notice it.

    it is my first question in the community :)

    Rergards

    Nicolò

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-06-19T15:17:00+00:00

    ActiveChart.SeriesCollection(5).Values = "='DATA'!$K$5:$Y$5"

    Mi chiedo però se sia possibile evitare di fare questa sostituzione manuale (una sessantina), inserendo, in una cella qualsiasi del foglio DATA (es. nella cella A1), la stringa/nome della colonna (es. "Z"), relativa al mese corrente, del nuovo range in modo che tutti i valori della macro Y vengano sostituiti con Z.

    Ad esempio se metti la lettera di riferimento nella cella A1 del Foglio10, semplificando:

    ActiveChart.SeriesCollection(5).Values = "='DATA'!$K$5:$" & Foglio10.Range("A1").Value & "$5"

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  4. Anonimo
    2014-06-19T14:59:09+00:00

    Hi, this is an English forum you can find the Italian one here

    http://answers.microsoft.com/it-it

    La risposta è stata utile?

    0 commenti Nessun commento