Condividi:        

grafico in 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

grafico in una macro

Postdi memova » 18/05/10 18:10

Ciao! grazie per l'aiuto che mi avete già dato! sono riuscita a creare una macro che risolve con il risolutore 40 eqazioni in sequenza. Adesso dovrei graficare i risultati e il grafico si deve aprire in un altro foglio dello stesso file, tutto con la stessa macro. la mia macro con il risolutore è
Sub temperatura()
'
' temperatura Macro
'
' Scelta rapida da tastiera: CTRL+v
'
SolverOk SetCell:="$B$141", MaxMinVal:=3, ValueOf:="0", ByChange:="$F$141"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1

SolverOk SetCell:="$D$141", MaxMinVal:=3, ValueOf:="0", ByChange:="$I$141"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1

End Sub

Con il risolutore ripetuto 40 volte.
ora dovrei graficare i dati contenuti nel foglio RISULTATI: la prima serie, chiamata "solido" va da B2 a B22 mentre la seconda serie chiamata "gas" va da C2 a C22 e sull'asse x dovrei mettere i valori da A2 a A22. inoltre se è possibile il grafico mi dovrebbe comparire in un altro foglio dello stesso file. ho fatto vari tentativi ma o avviene qualche errore o non esce il grafico che voglio.
Grazie mille
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Sponsor
 

Re: grafico in una macro

Postdi memova » 18/05/10 18:48

sono riuscita a fare il grafico
Sub Grafico()
'
' Grafico Macro
'

'
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'RISULTATI'!$A$2:$C$22")
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SeriesCollection(1).Name = "=""solido"""
ActiveChart.SeriesCollection(2).Name = "=""gas"""
ActiveChart.SeriesCollection(1).XValues = "='RISULTATI'!$A$2:$A$22"
ActiveChart.SeriesCollection(1).Values = "='RISULTATI'!$B$2:$B$22"
ActiveChart.SeriesCollection(2).XValues = "='RISULTATI'!$A$2:$A$22"
ActiveChart.SeriesCollection(2).Values = "='RISULTATI'!$C$2:$C$22"
ActiveChart.SeriesCollection(3).Delete
End Sub

come faccio a decidere in che foglio mi deve comparire?
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Re: grafico in una macro

Postdi ricky53 » 18/05/10 19:13

Ciao,
prova ad aggiungere

Codice: Seleziona tutto
ActiveChart.Location Where:=xlLocationAsNewSheet


dopo

ActiveChart.SetSourceData Source:=Range("'RISULTATI'!$A$2:$C$22")

Domanda: perchè utilizzi anche la colonna "C" come intervallo dati se poi cancelli
la serie con
ActiveChart.SeriesCollection(3).Delete

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: grafico in una macro

Postdi memova » 19/05/10 08:33

ok grazie!!! ora ci provo!!!perchè, non so come, la serie 3 corrisponde a A2:A22 e mi compare come valori della y insieme alle altre 2 serie. Non so xkè mi fa così, ma cmq in questo modo funziona e viene il grafico che volevo. :)
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Re: grafico in una macro

Postdi memova » 19/05/10 11:30

ma se io volessi fare aprire il grafico su un foglio già esistente del file, nominata DATI DI INPUT, come dovrei fare?
Inoltre ho un altro problema: se io attivo la macro da un altro foglio dello stasso file , mi esce il grafico da me voluto ma con altre 10 serie che io non ho inserito! Come mai??? :eeh:
grazie mille per l'aiuto!!! Ciao :)
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Re: grafico in una macro

Postdi ricky53 » 19/05/10 11:56

Ciao,
per avere un grafico in uno specifico foglio scrivi:

Codice: Seleziona tutto
    ActiveChart.Location Where:=xlLocationAsObject, Name:="TuoNomeFoglio"


per l'altra questione è possibile avere un file di esempio.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: grafico in una macro

Postdi Anthony47 » 19/05/10 13:39

E' tutto esatto quello che e' stato detto, pero' io in questo caso avrei creato il grafico "a mano", con tutte le opzioni che mi servono; al variare dei valori delle serie il grafico si sarebbe aggiornato automaticamente.

Questo automaticamente fa anche decadere l' ultima questione.

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

Re: grafico in una macro

Postdi memova » 19/05/10 17:02

si, hai ragione, era quello che avevo fatto! ma siccome sto lavorando alla tesi il prof mi ha chiesto di farlo! un'altra domanda: quando eseguo la macro esce il grafico, se cambio qualche dato e rieseguo la macro esce un nuovo grafico ma contemporaneamente anche qualle vecchio cambia. come devo fare per far rimanere il grafico precedente? scusa ma è la prima volta che lavoro con VB e per me sono difficili anche le cose più banali :)
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Re: grafico in una macro

Postdi Anthony47 » 20/05/10 00:24

Il codice che genera il grafico devi eseguirlo una volta sola, altrimenti continui a ricrearne di nuovi.

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

Re: grafico in una macro

Postdi memova » 20/05/10 09:08

si, ma io voglio che si crea il grafico nuovo ogni volta ma vorrei che quelli vecchi non cambiassero contemporaneamente la formazione di quello nuovo, mi ritrovo infatti tanti grafici uguali. volevo sapere se c'era qualche opzione che permette di non far cambiare i grafici vecchi. Grazie :)
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53

Re: grafico in una macro

Postdi Flash30005 » 20/05/10 10:13

Ciao Memova

Avrai capito che il grafico è strettamente "legato" ai dati origine che sono nel foglio.
Variando i dati varia anche il grafico.
Per avere uno storico dei grafici devi avere anche uno storico dei dati e ogni grafico avrà i propri dati origine (non modificati).
Un'altra soluzione potrebbe essere quella di creare un'immagine del grafico utilizzando lo screenshot (foto dello schermo) ogni volta.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: grafico in una macro

Postdi Anthony47 » 20/05/10 13:50

Se vuoi dei grafici che non cambiano quando i dati di origine cambiano, allora devi crearli inserendo nelle serie i "valori" non i riferimenti ai range.
Ad esempio, aggiungi nella macro:
Codice: Seleziona tutto
XVaaa = Range("$A$2:$A$22").Value
Vbbb = Range("$B$2:$B$22").Value
Vccc = Range("$C$2:$C$22").Value

E poi modifica le tue righe centrali in
Codice: Seleziona tutto
ActiveChart.SeriesCollection(1).XValues = XVaaa
ActiveChart.SeriesCollection(1).Values = Vbbb
'ActiveChart.SeriesCollection(2).XValues = "='RISULTATI'!$A$2:$A$22"  << Questa e' inultile, togliere
ActiveChart.SeriesCollection(2).Values = Vccc

Sarebbe anche possibile, come suggerito gia' da Flash, una volta generato il grafico crearne una .gif e sostituire il grafico con la sua .gif, ma la realizzazione e' piu' complessa.

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

Re: grafico in una macro

Postdi memova » 21/05/10 09:21

Grazie mille per l'aiuto!!!! :) funziona come volevo!
memova
Utente Junior
 
Post: 10
Iscritto il: 03/05/10 17:53


Torna a Applicazioni Office Windows


Topic correlati a "grafico in una macro":


Chi c’è in linea

Visitano il forum: Marius44 e 54 ospiti