Condividi:        

Creare/aggiornare grafico con numero di serie variabile

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Creare/aggiornare grafico con numero di serie variabile

Postdi Anthony47 » 18/07/12 01:51

se provassi a spostare la tabella in un'altra parte di foglio la macro non funziona
Immagino che volessi dire "se sposto il grafico in un foglio diverso da quello in cui c' e' la tabella la macro non funziona"
Se e' cosi' allora provo io a dare un indizio: poiche' all' inizio selezioni il foglio contenente il grafico (e non la tabella dati) devi qualificare ogni riferimento ai dati col nome del foglio. Quindi, ad esempio, non
C = Range("Foglio1!B2").End(xlDown).Row
MA
C = Sheets("Inizio").Range("Foglio1!B2").End(xlDown).Row

Ovviamente W&G potra' essere piu' preciso.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: Creare/aggiornare grafico con numero di serie variabile

Postdi wallace&gromit » 18/07/12 08:43

Ciao Anthony, probabilmente tu parti dal presupposto che io abbia compilato uno script "a regola d'arte", ma non è il caso!!!

Comunque, Green Days, giocando un po' con i numeri sono arrivato a queste modifiche della macro (essendo riferimenti relativi al punto di partenza, che prima era I2 e ora è I18, ho semplicemente dovuto fare in modo che la macro contasse il numero giusto di elementi da inserire nel grafico aggiungendo 18 nel calcolo del nuovo Y e 16 al ciclo for..next). Ecco qui il risultato:
Codice: Seleziona tutto
Sub Incidenza()
Dim totale As Integer
Dim attuale As Integer

Sheets("Dati grafici").Select
For totale = 1 To ActiveChart.SeriesCollection.Count
ActiveChart.SeriesCollection(1).Delete
Next totale
               
C = Range("Inizio!I18").End(xlDown).Row
           
For Dati = 16 To C - 2
    attuale = ActiveChart.SeriesCollection.Count
    nomeSerie = Range("Inizio!I" & attuale + 18).Value
    nuovoY = "=Inizio!R" & attuale + 18 & "C10:R" & attuale + 18 & "C14"
    nuovoN = "Prodotto " & nomeSerie
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(attuale + 1).XValues = "=Inizio!R1C10:R1C14"
    ActiveChart.SeriesCollection(attuale + 1).Values = nuovoY
    ActiveChart.SeriesCollection(attuale + 1).Name = nuovoN
    ActiveChart.SeriesCollection(attuale + 1).ApplyDataLabels AutoText:=True, ShowValue:=True
Next Dati
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Creare/aggiornare grafico con numero di serie variabile

Postdi GreenDays » 18/07/12 16:35

Anthony47 ha scritto:
se provassi a spostare la tabella in un'altra parte di foglio la macro non funziona
Immagino che volessi dire "se sposto il grafico in un foglio diverso da quello in cui c' e' la tabella la macro non funziona"
Se e' cosi' allora provo io a dare un indizio: poiche' all' inizio selezioni il foglio contenente il grafico (e non la tabella dati) devi qualificare ogni riferimento ai dati col nome del foglio. Quindi, ad esempio, non
C = Range("Foglio1!B2").End(xlDown).Row
MA
C = Sheets("Inizio").Range("Foglio1!B2").End(xlDown).Row

Ovviamente W&G potra' essere piu' preciso.

Ciao


Ciao a tutti/e, Anthony47, wallace&gromit !

Vi ringrazio entrambi per il puntuale e tempestivo riscontro! Anthony47, confermo che spostando la tabella in un'altra parte dello stesso foglio ("Inizio") la macro non funziona; insomma la tabella rimane sempre nello stesso foglio ma localizzata in un altro posto.

wallace&gromit, testo la macro e ti fornisco il feedback! Nel frattempo ti ringrazio :)

Ancora grazie ad entrambi! :) e buon proseguimento di serata

Ciao!
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Creare/aggiornare grafico con numero di serie variabile":


Chi c’è in linea

Visitano il forum: Nessuno e 73 ospiti