Fare un Grafico col vba - parte terza (ed ultima) - dal 04/09/04 pagina vista: volte Quando si crea un grafico abbiamo detto che Excel gli assegna un numero indice e un nome formato dalla parola "Grafico" seguito comunque dal numero progressivo, che noi non vediamo. Ma per poter agire sul grafico appena creato, abbiamo bisogno di Attivarlo (Activate) o selezionarlo per modificare o impostare proprietà a noi necessarie. In questi casi, per riferirsi al grafico dovremo identificarlo indicando il suo numero indice oppure il suo nome (es. .ChartObjects(X).Activate oppure .ChartObjects("Grafico X").Activate, dove X sarà il numero indice). Ora, se stiamo creando un grafico e sappiamo che quel grafico è il primo che inseriamo, nelle istruzioni potremo tranquillamente usare il numero indice 1, ma se ne avremo già creati, magari eliminando un grafico per ricrearlo (facendo ad esempio delle prove), risulterà poi difficile ricordarsi quanti grafici abbiamo testato e quale sarà il numero indice da assegnare al nuovo che stiamo per ricreare. Sbagliare il numero indice provocherà il lamento del debugger, e se anche il grafico verrà creato, sarà incompleto. Avremo solo un grafico prodotto dalla parte iniziale di istruzioni, ma tutte quelle successive alla riga .ChartObjects("Grafico pincopallino").Activate non saranno eseguite perchè il grafico non è stato identificato, con l'aggravante che comunque un grafico (incompleto) è stato creato ed Excel continua a incrementare il numero indice. Per sapere in nome del grafico sfrutteremo la proprietà Name dell'oggetto Chart, sia per prenderlo in automatico (vedremo più avanti)( il nome di un'oggetto Chart appena creato), sia per poterlo identificare quando ci occorra. Se selezionate un grafico della vostra cartella, e poi lanciate questa macro, saprete il nome ed il tipo di grafico:
ed otterremo un messaggio simile a questo : e a questo punto per comporre istruzioni che agiscano su quel grafico potremo usare una sintassi precisa:
Facciamo un grafico a Colonne 3D ed uno a Torta 3D Nei due articoli precedenti abbiamo visto due diversi metodi per creare un grafico, entrambi usati per ottenere un grafico a Linee, ma non sempre però il grafico a Linee è l'optimum per ciò che vogliamo rappresentare, specialmente quando i dati da graficizzare sono in tabelle impostate diversamente da quelle viste, oppure quando vogliamo evidenziare altre caratteristiche delle nostre tabelle dati. Prendiamo ad esempio una tabella come questa, dove registreremo le vendite di alcuni tipi di prodotti, nello specifico articoli di arredamento (ma potranno essere dati di vendite Agenti, oppure titoli di libri, o ancora prodotti farmaceutici, meccanici, ecc. ecc). La tabella è composta da un campo date, con cadenza mensile, e dalle quantità di vendita relative agli articoli richiamati nelle intestazioni di colonna (celle verdi chiaro). Normalmente predisponiamo delle celle nelle quali usiamo la funzione =SOMMA() per ottenere il totale dei prodotti venduti, in questo caso le celle giallo chiaro. Vogliamo ottenere un grafico che mostri i totali delle vendite per ogni prodotto, quindi non ci importano le date, ma solo i valori (i totali) e come categorie, i tipi di articoli. Come vedremo, useremo quasi le stesse istruzioni per ottenere i due diversi grafici, ma quello a Colonne 3D necessita di alcune istruzioni in più. Grafico a Colonne 3D : non usiamo la Legenda (l'etichetta con i nomi delle serie) ed useremo invece le etichette dati (DataLabels) che ci mostreranno in cima ad ogni colonna, il valore (totale) relativo ad ogni categoria (i prodotti). Ho scelto il colore bianco dei font, ed Excel provvede in automatico a creare il fondo etichetta in colore di contrasto (potremo volendo scegliere sia i colori dei font di queste DataLabels sia il colore di fondo. Tanto per capirci, otterremo questo risultato: ed ora vediamo la routine per creare un grafico così:
Che ne dite? non è più gradevole? Inoltre sono richieste meno istruzioni, vediamole:
Sono simili a quelle per il grafico a colonne (tranne xl3DPie) ma ancora meno complesse, e l'effetto è assicurato. Ho concluso gli articoli sui grafici, ognuno si sbizzarrisca facendo prove, non è difficile ottenere risultati, ed il codice non è difficile da capire, specie se si attiva il registratore di macro e poi si consulta per capire come vengono "compilate" le istruzioni sulla base delle azioni compiute nella creazione del grafico. Un'ultima cosa : questi due tipi di grafici non richiedono aggiornamenti per eventuali aggiunte dati, si aggiornano automaticamente visto che pescano le variazioni dei totali sempre dal solito intervallo (B1:G1). Buon lavoro. prelevato sul sito www.ennius.altervista.org |