Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel: creare grafico con una macro

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

excel: creare grafico con una macro

Postdi scacco al re » 19/11/11 23:26

ho il mio foglio excel dal nome "valori" dove ci sono tutti i dati.
nella colonna A ci sono le date proressive guiorno per giorno
nella colonna C ci sono le temperature del mattino
nella colonna F ci sono le temperature del pomeriggio
nella colonna I ci sono le temperature della sera
ho creato manualmente nel foglio "grafico" il grafico a linee dove:
l'asse delle x (ordinate) ci sono le date progressive
l'asse delle y (ascisse) c'è la scala delle temperature
e tre serie di linee che rappresentano mattino pomeriggio e sera con la relativa leggenda.
Il grafico funziona egregiamente all'aumentare dei giorni si aggiorna automaticamente.
il problema e che vorrei in automatico crearmi un altro grafico che chiamerò grafico2
dove però ci saranno le temperature relative solo agli ultimi 10 giorni partendo dalla data odierna.
La formattazione del grafico 2 sarebbe uguale a quella del grafico cambierebbebbe solo il titolo e avrei nell'asse x solo 10 posizioni relative agli ultimi 10 giorni (e nelle tre serie i valori degli ultimi 10 giorni).
E' fattibile?
Grazie
scacco al re
scacco al re
Utente Senior
 
Post: 498
Iscritto il: 10/05/02 19:18
Località: Sestri Levante

Sponsor
 

Re: excel: creare grafico con una macro

Postdi Flash30005 » 20/11/11 01:09

Prova questa macro

Codice: Seleziona tutto
Sub AggiornaGrafico()

UR = Worksheets("Valori").Range("A" & Rows.Count).End(xlUp).Row
    ActiveSheet.ChartObjects("Grafico 1").Activate  '<<<<<<< inserire nome effettivo tuo grafico
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(1).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(1).Values = "=Valori!R" & UR - 9 & "C3:R" & UR & "C3"
    ActiveChart.SeriesCollection(2).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(2).Values = "=Valori!R" & UR - 9 & "C4:R" & UR & "C4"
    ActiveChart.SeriesCollection(3).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(3).Values = "=Valori!R" & UR - 9 & "C5:R" & UR & "C5"
    ActiveWindow.Visible = False
    Worksheets("Valori").Range("A" & UR).Select
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel: creare grafico con una macro

Postdi scacco al re » 20/11/11 11:34

Codice: Seleziona tutto
Sub in_gr()
UR = Worksheets("Valori").Range("A" & Rows.Count).End(xlUp).Row
    [color=#FF0000][b]ActiveSheet.ChartObjects("Grafico 2").Activate  '<<<<<<< inserire nome effettivo tuo grafico[/b][/color]
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(1).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(1).Values = "=Valori!R" & UR - 9 & "C3:R" & UR & "C3"
    ActiveChart.SeriesCollection(2).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(2).Values = "=Valori!R" & UR - 9 & "C4:R" & UR & "C4"
    ActiveChart.SeriesCollection(3).XValues = "=Valori!R" & UR - 9 & "C1:R" & UR & "C1"
    ActiveChart.SeriesCollection(3).Values = "=Valori!R" & UR - 9 & "C5:R" & UR & "C5"
    ActiveWindow.Visible = False
    Worksheets("Valori").Range("A" & UR).Select
End Sub

Ciao, nella riga evindeziata in rosso mi restituisce l'errore: impossibile trovare l'elemento corrispondente al nome specificato, eppure il mio grafico si chiama "grafico 2".
scacco al re
scacco al re
Utente Senior
 
Post: 498
Iscritto il: 10/05/02 19:18
Località: Sestri Levante

Re: excel: creare grafico con una macro

Postdi Flash30005 » 20/11/11 12:16

Fai così:
registra una macro
seleziona il grafico
fai una modifica qualsiasi
e ferma la macro

vai nel VBA e vedi cosa ha scritto come oggetto grafico

eventualmente posta il codice

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel: creare grafico con una macro

Postdi Anthony47 » 20/11/11 12:34

Parto dal presupposto che il tempo necessario per creare e collaudare una macro e' certamene piu' lungo del tempo necessario per creare un grafico, per cui ti suggerisco di procedere con la creazione guidata del grafico, con le seguenti variazioni:
-ti crei inizialmente 4 intervalli dinamici, per ognuna delle serie di info che vuoi plottare
--menu /Inserisci /Nome /Definisci
--come nome scrivi "dinadata" (senza apici), come Riferito a inserisci la formula
Codice: Seleziona tutto
 =SCARTO(Foglio1!$A$2;CONTA.VALORI(Foglio1!$A:$A)-11;0;10;1)
Ok
--ripeti coi nomi dinamatt, dinapom e dinasera, con la stessa formula salvo l' origine dello Scarto impostato a $C$2, $F$2, $I$2; rispettare rigorosamente la sintassi data.
-avvii il wizard del grafico, ma invece di definire un' area come origine dei tre grafici e dell' asse x userai (sul tab Serie) userai:
--"=Foglio1!dinadata" (senza apici) quale Etichette asse categorie (X); =Foglio1!dinamatt, =Foglio1!dinapom e =Foglio1!dinasera quale "Valori" per le tre serie.
-completi il grafico secondo i tuoi gusti.
Richiede che l' elenco comprenda almeno 10 date, oppure invece di CONTA.VALORI(Foglio1!$A:$A)-11 usa MAX(0;CONTA.VALORI(Foglio1!$A:$A)-11)

Per Flash: ovviamente l' impostazione SeriesCollection(3).XValues basta metterla una sola volta.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel: creare grafico con una macro

Postdi Flash30005 » 20/11/11 12:40

@Anthony
Sai?
Avevo provato a definire un nome (intervallo dinamico) ma non funzionava :roll:
ora mi sono reso conto del perché...
occorreva il riferimento NomeFoglio!NomeDefinito :oops:

(anche questa è da cascina) :)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel: creare grafico con una macro

Postdi scacco al re » 20/11/11 16:36

x flash30005
ho registrato una macro e ho modificato il titolo questo è il risultato
Codice: Seleziona tutto
Sub pippo()
    Sheets("Grafico 2").Select
    ActiveSheet.ChartObjects("Grafico 1").Activate
    ActiveChart.ChartTitle.Select
    ActiveSheet.ChartObjects("Grafico 1").Activate
    ActiveChart.ChartTitle.Text = "temperatura ultimi 10 giorni"
    ActiveSheet.ChartObjects("Grafico 1").Activate
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    Sheets("valori").Select

End Sub
x Anthony
appena posso cerco di fare come hai detto

Grazie a tutti e due
scacco al re
scacco al re
Utente Senior
 
Post: 498
Iscritto il: 10/05/02 19:18
Località: Sestri Levante


Torna a Applicazioni Office Windows


Topic correlati a "excel: creare grafico con una macro":


Chi c’è in linea

Visitano il forum: ilPrincipito e 10 ospiti