Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Problema relativo a grafici in Excel Opzioni
guayas
Inviato: Friday, December 03, 2004 11:51:44 AM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Salve a tutti. Avrei bisogno di un aiuto che mi cambierebbe la vita...
E' possibile fare in modo che la scala dell'asse delle ordinate di un grafico vari automaticamente in funzione dei dati ai quali si riferisce ? Ad esempio : un grafico si riferisce ai valori inseriti nell'intervallo a1:a10; io vorrei che il min e il max della scala siano sempre pari rispettivamente al min e al max dei valori presenti nell'intervallo ( anche se questi cambiano ). In pratica la scala dell'asse di adatta automaticamente ai valori della serie.
Grazie a chiunque voglia aiutarmi.
Sponsor
Inviato: Friday, December 03, 2004 11:51:44 AM

 
dead
Inviato: Friday, December 03, 2004 2:34:29 PM

Rank: AiutAmico

Iscritto dal : 9/20/2004
Posts: 1,597
Fai doppio click sull'asse dei valori. Nella finestra che ti si apre scegli scala e controlla che tutte le caselline siano selezionate.


Sono cosi avanti che quando guardo indietro vedo il futuro.
guayas
Inviato: Friday, December 03, 2004 2:54:20 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Innanzitutto grazie per aver risposto.
Tuttavia, la selezione delle caselline nella finestra della scala non è quello she fa al caso mio, perchè io voglio che la scala varii al variare dei dati, secondo una relazione da me determinata. E' certamente più complicato e attualmente non so neppure se è una cosa possibile
Ciao
dead
Inviato: Friday, December 03, 2004 3:04:10 PM

Rank: AiutAmico

Iscritto dal : 9/20/2004
Posts: 1,597
In questo caso devi gestire le proprietà degli assi attraverso una funzione costruita ad hoc in VBA.

Le proprieta degli assi che ti interessano sono queste:


ActiveChart.Axes(xlValue).MinimumScaleIsAuto = False
ActiveChart.Axes(xlValue).MaximumScaleIsAuto = False
ActiveChart.Axes(xlValue).MinimumScale = 5
ActiveChart.Axes(xlValue).MaximumScale = 15


Ovviamente i valori 5 e 15 vanno sostituiti con dei valori o delle funzioni opportune ed il blocco di istruzioni dovrà essere richiamato tramite un evento che si scatena alla variazione dei dati.



Sono cosi avanti che quando guardo indietro vedo il futuro.
guayas
Inviato: Friday, December 03, 2004 3:15:22 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Ti ringrazio veramente per il tuo aiuto, Dead.
Supponevo che la soluzione fosse nell'utilizzo di VBA, dovrei dire temevo, perchè ammetto di non saperne fare uso. Mi sono accorto ora che per il livello di cose che devo fare in Excel, formule e registrazione di macro non sono più sufficenti. Quindi sto iniziando ora a cercare online qualche guida ( suggerimenti sono ben accetti in riguardo ). Tuttavia posso chiederti di mostrarmi la scrittura completa ? e come devo fare per richiamare le istruzioni come tu dici ?
Non è una questione di pigrizia, ma, per questo grafico, di strettezza di tempi.

Grazie, e scusami se abuso della tua disponibilità
dead
Inviato: Friday, December 03, 2004 5:36:24 PM

Rank: AiutAmico

Iscritto dal : 9/20/2004
Posts: 1,597
il listato completo non te l'ho messo perche in questo momento non esiste.

Nel senso che quella che ho scritto è solo una bozza che può indirizzarti verso l'utilizzo delle proprietà adeguate.

In pratica devi scriverti un programma in VBA che faccia quello che tu richiedi.
Io non posso farlo per due motivi: uno è il tempo che ci vuole, è l'altro più determinante è che dovrei sapere <b>esattamente</b> come deve comportarsi il tuo grafico, quali e dove sono i dati, qual'è la relazione che gestisce la variazione della scala degli assi, ecc. ecc.

La maniera più semplice per imparare un po' di VBA è quella di creare delle macro il più simile possibile a ciò che ti serve e poi aprirle con l'editor di visual basic e cercare di capire i vari passi del listato.

Insieme a excel è fornito un ricco help su tutte le funzioni di VBA che ti può aiutare molto (spesso non è installato di default, ma devi installarlo dal CD di Office).

Imparare il VBA non è facilissimo ma nemmeno impossibile: in un paio di settimane potrai cominciare a muoverti più agevolmente.

Se vuoi un libro dal quale partire ti consiglio Visual Basic 6.0 di Francesco Balena.


Sono cosi avanti che quando guardo indietro vedo il futuro.
a10n11
Inviato: Friday, December 03, 2004 6:59:42 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
a questo indirizzo trovi una macro bella pronta per soddisfare la tua richiesta. La pagina è in inglese ma ti basta copiare il codice così come si trova in un modulo Vba della tua cartella, attivare il grafico e lanciare la macro.
http://support.microsoft.com/default.aspx?scid=kb;en-us;213644
andrea

guayas
Inviato: Tuesday, December 07, 2004 3:11:23 PM
Rank: Member

Iscritto dal : 12/20/2001
Posts: 0
Vi ringrazio per il vostro aiuto ( non l'ho fatto prima perchè impegnato, anche a fare prove su prove con excel ).
Il link sopra postato è ottimo, e fatte alcune prove sarebbe proprio ciò che mi serve. Però non funziona se nella serie dei valori cui il grafico si riferisce c'è qualche #N/D, e purtroppo nelle mie serie ce ne sono eccome ( non posso eliminarli perchè mi serve che il grafico non sia una spezzata continua ). Per cui avevo pensato di riferire gli estremi dell'asse ad una cella ( in cui mi calcolereri i valori di cui ho bisogno ). Ma per quanto provi con macro-prova non mi riesce di capire come si fa. In pratica nell'esempio di listato postato da dead come posso mettere una formula o il riferimento ad una cella ( penso sia più facile ), al posto di quei valori fissi ? Per esempio vorrei mettere qualcosa come

ActiveChart.Axes(xlValue).MinimumScale=A5
(cioè il valore contenuto nel foglio di lavoro in A5 )
al posto di

ActiveChart.Axes(xlValue).MinimumScale = 5

Siete già stati molto gentili, ma se qualcuno di voi potesse dirmelo, gli sarei molto grato.
Grazie
a10n11
Inviato: Tuesday, December 07, 2004 6:23:37 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
con questa macro assegni il valore x come valore minimo e il valore y al valore massimo
in questo caso i range di riferimento dei valori X-Y sono stati assegnati alle celle D1 ed E1 che vorrai personalizzare secondo le tue necessità. Andrea

Sub scala()
Dim x, y
x = Range("d1").Value
y = Range("e1").Value
With ActiveChart
.Axes(xlValue).MinimumScaleIsAuto = True
.Axes(xlValue).MaximumScaleIsAuto = True
.Axes(xlValue).MinimumScale = Application.Min(x)
.Axes(xlValue).MaximumScale = Application.Max(y)
End With
end sub

Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.