Sei sulla pagina 1di 828

http://www.vbitalia.

it/

Pagina 1

15/02/2003

Indice
Preparativi per lutilizzo della libreria MS Excel...3
Inizializzare gli oggetti.....3
Le celle, il Range e la visibilit di sessione foglio di calcolo e cartella di lavoro....5
Lavorare con loggetto Range.8
Esercizio sulloggetto Range.10
Le operazioni di Taglia, Copia e Incolla sulloggetto Range.11
Esercizio sulle operazioni di Taglia, Copia e Incolla sulloggetto Range14
La propriet RangeSelection.16
Esercizio sulla propriet RangeSelection18
Aggiungere un commento ad una cella...19
La formattazione delle celle...19
Le dimensioni delle celle21
Esercizio sui valori delle celle22
Assegnare una formula alle celle..24
Esercizio sulle formule delle celle.26
La protezione del foglio di calcolo.27
Esercizio sulla protezione del foglio di calcolo...28
Importazione di dati esterni29
Esercizio sullimportazione di dati esterni32
Le Visualizzazioni33
Operazioni tra celle.34
La curva di Bzier35
Esercizio sulla curva di Bzier..36
Importazione di un foglio di calcolo Excel tramite un contenitore OLE..37
Riempire le celle con un solo metodo..40
Esercizio sui metodi FillDown, FillUp, FillRight e FillLeft..42
Loggetto Scenario e linsieme Scenarios43
Loggetto Area e linsieme Areas..48
Riferimenti.50

http://www.vbitalia.it/

Pagina 2

15/02/2003

Preparativi per lutilizzo della libreria MS Excel


Per poter creare un collegamento tra un'applicazione sviluppata in Visual Basic e Microsoft Excel, anzitutto
necessario consultare la libreria oggetti di Microsoft Excel disponibile nella finestra di dialogo Riferimenti di
Visual Basic. Per poter poi aggiungere il riferimento bisogna scegliere Riferimenti dal menu Progetto e porre
premendo il tasto F2 oppure scegliendo Visualizza / Visualizzatore oggetti si pu dare un'occhiata
preliminare agli oggetti che Excel ha a disposizione e che saranno proprio quelli che si andr a manipolare.

Inizializzare gli oggetti


La differenza fondamentale tra gli oggetti Excel e gli oggetti Word visti nel corso di Visual Basic per Word,
sta nel fatto che non solo dovremo gestire una sessione di lavoro ed un documento (o meglio una cartella di
lavoro), ma anche uno o pi fogli per ogni documento.
Questo perch, com' ben noto, ogni cartella di lavoro di Excel come un fascicolo contenente al suo
interno tutti i fogli che lo compongono.
Il grafico in fondo al capitolo dovrebbe spiegare in modo pi diretto quale relazione intercorre tra gli oggetti
Excel: l'Applicazione Excel non altro che la sessione di lavoro. Si apre una nuova sessione di lavoro
avviando Excel. Ci possono dunque essere pi sessioni di lavoro aperte contemporaneamente. Come si
vedr poi, dare il nome ad ogni sessione necessario per riferirsi ad una sessione di lavoro in particolare.
E' importante rendersi conto che in realt quando normalmente si apre Excel, non solo viene attivata una
sessione di lavoro, ma viene creato anche una cartella di lavoro vuoto (che il secondo oggetto Excel) ed
vari fogli di calcolo (che rappresentano il terzo oggetto Excel). Di cartelle di lavoro e fogli di calcolo si parler
in seguito.
Se volessimo considerare una sessione "pura", il vero oggetto Application di Excel, dovremo quindi aprire
Excel e dal menu File selezionare la voce Chiudi.
Ecco come si presenta una sessione di Excel al netto degli oggetti Cartella di lavoro e Foglio:

Entriamo un po' pi nello specifico: il discorso astratto ma facilmente riconducibile ad un piano pi


concreto: si pensi al mondo dell'automobile. Per poter descrivere ad un amico l'auto che abbiamo appena
acquistato sar necessario avere in mente il concetto generale di automobile, ossia l'insieme di tutte le
automobili (Oggetto). Una volta definito in generale cos' un'automobile si pu descriverne una in
particolare: la marca, il modello, il colore, la cilindrata e cos via (Istanza dell'oggetto).
Allo stesso modo si considera l'insieme di tutte le infinite applicazioni Excel (Excel.Application) e se ne
sceglie una.
Denominiamo tale applicazione appExcel:
Dim appExcel As New Excel.Application

http://www.vbitalia.it/

Pagina 3

15/02/2003

Siccome non prevista l'intercettazione di sessioni di lavoro gi esistenti, stata introdotta nella linea di
codice precedente la parola New che indica appunto che l'applicazione appExcel di nuova creazione.
Adesso che stato chiarito il concetto di Applicazione, si pu passare a definire il termine cartella di lavoro.
Un oggetto Cartella di lavoro l'insieme di tanti fogli di calcolo. Come gi visto poco fa, quando solitamente
si apre Excel fuori da Visual Basic, viene generato automaticamente una cartella di lavoro vuoto composto
da tre fogli anch'essi vuoti.
Aprire Excel da codice invece non prevede tale automatizzazione in quanto a chi sviluppa un'applicazione in
Visual Basic consentito l'accesso alla libreria completa degli oggetti di Excel e quindi la gestione separata
di Applicazione, Cartella e Foglio. Per questa ragione sar dunque necessario, dopo aver aperto una nuova
sessione, generare un nuovo foglio oppure aprirne uno esistente sul disco fisso o su qualsiasi altro supporto.
Prima di tutto per dovremo prelevare dall'insieme di tutte le cartelle possibili (Oggetto) ossia
Excel.Workbook la specifica cartella che c'interessa definire (Istanza dell'oggetto).
Chiameremo tale oggetto cartExcel:
Dim cartExcel As Excel.Workbook
Perch non abbiamo inserito la parola New come nel caso di appExcel? Perch non necessariamente una
cartella dev'essere di nuova creazione: si pu ad esempio aprire una cartella Excel archiviata nel disco fisso
ma non possibile fare altrettanto con una sessione di lavoro Excel. Questo per il semplice motivo che
quando si salva il lavoro non viene salvata la sessione ma la cartella ed i fogli ad essa associati.
Si pu adesso passare alla terza definizione, quella cio di Foglio. Un foglio di lavoro (o foglio di calcolo)
costituito dall'insieme delle celle sulle quali si pu lavorare. L'elenco dei fogli di lavoro visualizzabile
attraverso le schede dei fogli.
Ecco finalmente il grafico esplicativo:

Definiamo tra tutti i fogli di calcolo possibili (Oggetto) uno specifico foglio (Istanza dell'oggetto) denominato
foglioExcel:
Dim foglioExcel As Excel.Worksheet
Ora che tutte le istanze sono state definite, si pu procedere all'apertura della sessione e della cartella di
lavoro. La creazione di una nuova cartella di lavoro, essendo nient'altro che una serie di fogli di calcolo, apre
automaticamente i fogli stessi.
D'ora in poi non si far pi distinzione tra oggetto ed istanza dell'oggetto. Siccome la definizione di appExcel
esprime gi la volont di aprire una nuova sessione di lavoro, non sar necessario aprire una nuova
applicazione Excel.
Sar sufficiente visualizzarla inserendo nella routine Load di Form1 la seguente linea di codice:
Private Sub Form_Load()
appExcel.Visible = True
End Sub
Dando il via all'applicazione appena scritta si aprir una sessione di lavoro vuota da ogni cartella proprio
come mostrava la prima immagine del capitolo.
Adesso andiamo incontro alla prima scelta: aprire una cartella di lavoro esistente oppure crearne una vuota?
Nel primo caso sar necessario indicare il percorso del file .xls presente sul disco fisso e successivamente
rendere la cartella visibile:
http://www.vbitalia.it/

Pagina 4

15/02/2003

Set cartExcel = Excel.Workbooks.Open("C:\Documenti\cartella.xls")


nel secondo caso sar sufficiente indicare quanto segue:
Set cartExcel = Excel.Workbooks.Add
Aprire un nuovo foglio di lavoro un'operazione simile a quella appena vista:
Set foglioExcel = Excel.Worksheets.Add
Notare che un nuovo foglio (foglio4) si aggiunto ai tre fogli aperti per default alla creazione dell'oggetto
Cartella di lavoro.
Per aprire un foglio di calcolo esistente la procedura notevolmente diversa. Innanzitutto si deve aprire o
creare la cartella di lavoro nella quale selezionare il foglio ed in seguito scegliere il foglio tra quelli disponibili:
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(2)
In questo caso abbiamo scelto di aprire il secondo foglio di calcolo di una nuova cartella. Per concludere
questo capitolo aggiungiamo che possibile rinominare il foglio selezionato attraverso la propriet Name
associata agli oggetti Excel.Worksheets.
Rinominiamo ad esempio il primo foglio di una nuova cartella di lavoro come "Primo foglio":
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(2) foglioExcel.Name = "Primo foglio"

Le celle, il Range e la visibilit di sessione foglio di calcolo e cartella di lavoro


Le linee di codice analizzate nel capitolo precedente possono risultare piuttosto scomode nel momento in cui
si va ad avviare l'applicazione per testarla, visto che alla chiusura del programma, la sessione di Excel (e
naturalmente la cartella di lavoro ed il foglio di calcolo) rimarranno aperti, obbligando ogni volta ad una
chiusura manuale.
E' possibile quindi associare all'evento di chiusura dell'applicazione Visual Basic la chiusura della sessione
Excel e della cartella di lavoro.
Come si vedr nel corso del capitolo sorger per un problema: la chiusura di una cartella di lavoro
sempre accompagnata dalla richiesta di salvataggio della stessa.
Cos, anche se la sessione di lavoro Excel invisibile, cio se stato impostato:
appExcel.Visible = False
comparir una finestra di messaggio al di fuori dell'applicazione che abbiamo eseguito che chiede se si
desidera salvare il documento prima di chiuderlo.
Evitare quest'intrusione molto semplice: basta indicare da codice se si vuole salvare la cartella di lavoro
alla chiusura oppure no.
Nel primo caso dev'essere naturalmente indicato un percorso valido su disco fisso o qualsiasi altro supporto.
Cominciamo per aggiungendo che possibile gestire la visibilit anche dei singoli fogli di lavoro. Per
permettere la visualizzazione di un singolo foglio di lavoro (ad esempio Foglio2, ossia il secondo foglio di
lavoro dei tre creati per default alla creazione di una nuova cartella di lavoro) sufficiente inserire le seguenti
linee di codice:
Set foglioExcel = Excel.Worksheets.Item(2)
foglioExcel.Visible = xlSheetVisible
Con la prima linea si indica a quale foglio di lavoro dei disponibili applicare lo stato di visualizzazione,
definito invece dalla seconda riga.
Per impedire la vista ad esempio del primo foglio di lavoro:
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Visible = xlSheetHidden

http://www.vbitalia.it/

Pagina 5

15/02/2003

Importante anche il metodo Activate che indica se un oggetto attivo oppure no. E' importante dal
momento che si pu indicare come stato fatto sopra in quale foglio di calcolo lavorare ma questo non
comporta visualizzazione automatica di tale foglio.
Ad esempio se decidessimo di rendere visibile l'applicazione Excel e di lavorare su Foglio 2, sarebbe
opportuno passare alla visualizzazione di Foglio2. Ecco come fare:
Set foglioExcel = Excel.Worksheets.Item(2)
foglioExcel.Activate
Adesso si pu passare finalmente alla chiusura del documento. Quello che dovremo fare chiudere la
cartella di lavoro nella quale sono contenuti tutti i fogli di calcolo.
Per eseguire tale operazione sar sufficiente un semplice:
Private Sub Form_Unload(Cancel As Integer)
cartExcel.Close False
End Sub
Notare che non appare nella seconda linea di codice il segno di uguale (=) prima di False perch False in
questo caso un parametro che si assegna all'operazione di chiusura.
Avendo indicato False come parametro, abbiamo indicato che alla chiusura della cartella di lavoro non si
desidera che appaia la richiesta di salvataggio della stessa.
Il salvataggio di una cartella di lavoro infatti un'operazione a parte:
cartExcel.Save
salva la cartella corrente in base al nome assegnatole. Se quindi abbiamo aperto una cartella di lavoro
esistente, questa sar aggiornata con i nuovi dati dell'ultima sessione di lavoro. In caso contrario, essendo il
nome di default Cartel1,Cartel2...Carteln, la cartella di lavoro sar salvata con tale nome.
Diverso il caso della seguente linea di codice:
cartExcel.SaveAs "C:\Documenti\Cartella.xls"
nella quale viene espressamente indicato il nome del percorso da seguire per il salvataggio della cartella di
lavoro.
Una volta chiusa la cartella di lavoro rimarr per aperta la sessione Excel, proprio come mostrato dalla
prima figura del capitolo precedente.
Sar necessario allora aggiungere:
appExcel.Quit
Adesso passiamo alla gestione delle celle. E' possibile considerare una cella alla volta indicandone le
coordinate ossia il numero di riga ed il numero di colonna. Ad esempio la prima cella in alto a sinistra sar
indicata come:
foglioExcel.Cells(1, 1)
Da sola questa linea di codice non ha nessun significato. Serve per a definire la posizione della cella
desiderata.
Ancora pi importante capire la propriet-oggetto Range. Essa infatti definisce un'area di validit ossia in
poche parole il numero di celle che compongono l'area che desideriamo attivare o comunque considerare.
Se decidiamo infatti di cancellare il contenuto delle prime due caselle in alto a sinistra quindi rispettivamente
le celle di coordinate (1,1) e (1,2), dovremo considerare un Range ossia un'area di validit che ha inizio dalla
prima casella e termina nella seconda.
Probabilmente la seguente figura chiarir meglio il significato della propriet: consideriamo l'esempio fatto
poc'anzi di un Range di celle (1,1) e (1,2):

http://www.vbitalia.it/

Pagina 6

15/02/2003

Come si sar compreso, il Range rappresentabile graficamente da un rettangolo. E proprio come un


rettangolo possibile definirne le dimensioni solamente tramite una delle due coppie punti opposti dalla
diagonale scelta.
Ad esempio, per definire il rettangolo del Range potremo scegliere i punti 1 e 4 oppure i punti 2 e 3 come
mostra la figura sotto:

Proviamo prima di chiudere questo capitolo a selezionare sul foglio di lavoro il Range composto dalle celle
(2,1) e (5,3):
foglioExcel.Range(foglioExcel.Cells(2, 1), foglioExcel.Cells(5, 3)).Select
eccone il risultato:

http://www.vbitalia.it/

Pagina 7

15/02/2003

Lavorare con l'oggetto Range


Una volta definita l'area di validit o Range del foglio di calcolo, si pu pensare ad interagire con essa ad
esempio selezionando tutte le colonne del foglio stesso che ospitano almeno una delle celle del Range.
Per completare tale operazione sar sufficiente sostituire al metodo Select di Range il metodo Select
collegato alla propriet EntireColumn, come mostrato dal codice qui sotto:
foglioExcel.Range(foglioExcel.Cells(2, 1), foglioExcel.Cells(5, _
3)).EntireColumn.Select
dove stato scelto di selezionare tutte le celle delle colonne che contengono parte del Range di dimensioni
(2,1) - (5,3).
Il risultato, da un punto di vista puramente grafico il seguente:

Adesso sar necessario chiarire due punti importanti. Il primo, relativo all'immagine sopra molto banale:
per un motivo di spazio l'area selezionata va ben oltre l'undicesima riga, in quanto l'immagine stata tagliata
per evidenti motivi di spazio. Teoricamente il metodo EntireColumn.Select ed il corrispondente metodo da
applicare alle righe (che vedremo subito dopo), permettono di selezionare tutte le celle delle colonne, fino
alla fine del foglio di lavoro.
Altro discorso quello dell'area di validit. Essa infatti rappresentata da Excel dal rettangolo con bordo in
grassetto ed area blu, come s' gi visto in una figura del capitolo precedente.
Selezionando il set di colonne del Range (2,1) - (5,3) si deciso di ampliare l'area di validit passando dal
Range (2,1) - (5,3) al Range (1,1) - (+oo, 3). Ancora meglio: parlando in termini molto pi consoni al
linguaggio di sviluppo che utilizziamo, la nuova area di validit rappresentata dall'area (1,1) (foglioExcel.Columns.Count, 3) dove:
foglioExcel.Columns.Count
rappresenta il conto totale delle colonne presenti nel foglio di calcolo. Esattamente allo stesso modo
possibile tenere il conto delle righe esistenti:
foglioExcel.Rows.Count
Cos come sono state selezionate tutte le colonne, altres possibile attivare tutte le righe che contengono
almeno una delle celle che compongono l'area di Range assegnata:
foglioExcel.Range(foglioExcel.Cells(2, 1), foglioExcel.Cells(5, _
3)).EntireRow.Select
Anche qui il risultato dell'operazione facilmente intuibile:

http://www.vbitalia.it/

Pagina 8

15/02/2003

Si noti che anche in questo specifico caso valgono le indicazioni relative all'esempio mostrato prima ossia:
l'area di validit o di selezione va ben oltre le cinque colonne indicate dalla figura in quanto il Range sar
rappresentato da un rettangolo di dimensioni (2,1) (5,+oo)
Vediamo adesso come inserire i dati in ognuna delle celle del foglio di lavoro: dovr essere utilizzata la
propriet Text di Characters.
Questo significa che sar necessario indicare la cella come combinazione di riga e colonna e quindi scrivere:
foglioExcel.Cells(1, 1).Characters().Text = "Prima cella"
Il codice qui sopra aggiunge il testo "Prima cella" alla cella di coordinate (1, 1). E' necessario ricordare che il
primo di ogni coppia di valori che determinano le celle indica la riga ed il secondo la colonna.
Come gi stato visto nel capitolo precedente, opportuno per semplificare e velocizzare l'apprendimento
degli esempi proposti, avere sempre sott'occhio il foglio di lavoro sul quale si sta lavorando.
Cos, per nostra convenienza, possiamo decidere di lavorare sul primo foglio di calcolo e conseguentemente
attivarlo. Sar quindi pi semplice notare che "Prima cella" ora il testo della cella (1,1):
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
foglioExcel.Cells(1, 1).Characters().Text = "Prima cella"
Stesso risultato di prima si ottiene indicando i valori di riga e colonna delle celle non in modo espresso ma
attraverso variabili.
In questo modo sar sicuramente pi facile gestire il codice modificando tali variabili, senza dover andare ad
operare su istruzioni lunghe ed articolate. Se vogliamo ad esempio riprodurre il risultato ottenuto in
precedenza, ossia la selezione di un Range di celle (2,1) - (5,3):
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
'si pu facilmente operare su questa linea di codice
'modificando i valori di ciascuna variabile
Riga1 = 2: Colonna1 = 1: Riga2 = 5: Colonna2 = 3
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2, _
Colonna2)).Select
In questo modo sar oltretutto pi semplice andare a popolare l'area di selezione, ossia ad inserire valori
(numerici, testuali) in ciascuna delle celle che compongono il Range.
Proviamo con un metodo progressivo ossia mediante l'utilizzo di un ciclo For...Next. Il ragionamento il
seguente: per il valore di un contatore che chiamiamo i che va dalla riga della prima cella in alto a sinistra del
Range alla riga della cella in basso a sinistra del Range facciamo variare un secondo contatore, n, che dalla
prima colonna all'ultima del Range popola tutte le celle della riga:
For i = Riga1 To Riga2
For n = Colonna1 To Colonna2
foglioExcel.Cells(i, n).Characters().Text = "Cella " & i & " " & n
Next n
Next i
Nota: essendo il codice mostrato sopra del tutto indipendente dal Range, non detto che non si possa
popolare una serie di celle differente dal Range stesso.
Ad esempio nulla vieta di popolare tutte le celle della prima colonna, selezionando invece tutte le celle della
prima riga.
Questo davvero un punto importante per le lezioni che verranno, nelle quali si discuter come selezionare
un'area non vuota (nella quale le celle non abbiano valore "") e come copiare, incollare, tagliare,
raggruppare, calcolare i valori delle celle che si sono selezionate.

http://www.vbitalia.it/

Pagina 9

15/02/2003

Esercizio
Sviluppare una semplice applicazione che:
1. visualizzi applicazione Excel, cartella di lavoro e che operi e visualizzi il secondo foglio di lavoro;
2. chieda all'utente le coordinate del Range di selezione (nota: come visto nel capitolo precedente il Range si
determina con due sole celle opposte da una delle due diagonali del rettangolo di selezione) e selezioni tale
Range; Nota importante: se si utilizzano le caselle di testo per permettere all'utente di inserire le coordinate
delle celle, si ricordi che il loro contenuto in forma testuale perci non compatibile con i valori numerici
delle coordinate. Per rendere il contenuto di una TextBox compatibile, indicare ad esempio:
Riga1 = Val(TextBox1.Text)
3. popoli tutto il Range selezionato con il testo "Cella coordinata riga, coordinata colonna come visto nel
corso del capitolo.
Ecco un esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Command1_Click()
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(3)
foglioExcel.Activate
Riga1 = Val(Text1.Text): Colonna1 = Val(Text2.Text)
Riga2 = Val(Text3.Text): Colonna2 = Val(Text4.Text)
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Select
For i = Riga1 To Riga2
For n = Colonna1 To Colonna2
foglioExcel.Cells(i, n).Characters().Text = "Cella " & i & n
Next n
http://www.vbitalia.it/

Pagina 10

15/02/2003

Next i
End Sub

Le operazioni di Taglia, Copia e Incolla sulloggetto Range


Riprendendo le conclusioni alle quali si era arrivati nel corso del capitolo precedente, possibile vedere ora
come agire sul Range attraverso le operazioni tipiche di Taglia, Copia ed Incolla.
La struttura di queste operazioni simile per tutte e tre e molto comprensibile: sar infatti sufficiente
utilizzare i rispettivi metodi.
Vediamone il primo, ossia il metodo Cut. Cut permette di tagliare una selezione ossia tutte le caselle che
fanno parte di un Range.
La struttura da utilizzare segue il modello indicato qui sotto:
OggettoExcel.Range(cella1, cella2).Cut destinazione
Non tuttavia assolutamente necessario operare una selezione di un Range e poi richiamare il metodo Cut,
sebbene nulla vieti di compiere entrambi i passaggi.
Una cosa infatti la selezione di un Range, un'altra l'operazione di taglio delle caselle che lo compongono.
Cos, selezionando e tagliando un Range si ottiene il risultato mostrato dalla figura seguente:

considerando il fatto che l'immagine stata prodotta da un codice nel quale non stata indicata alcuna
destinazione, ossia:
Riga1 = 1: Colonna1 = 1: Riga2 = 5: Colonna2 = 5
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Select
For i = Riga1 To Riga2
foglioExcel.Cells(i, i).Characters().Text = "Cella " & i & " " & n
Next i
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Cut
Eliminando invece la selezione del Range (ossia la seconda linea del codice mostrato sopra) si otterr un
risultato di questo tipo:

Dove vanno a finire le selezioni tagliate? Nel caso in cui non si indichi la destinazione verranno memorizzate
nella Clipboard ossia negli Appunti.
http://www.vbitalia.it/

Pagina 11

15/02/2003

In caso contrario, si dovr scegliere un Range di pari dimensioni. Ad esempio se la selezione formata da
un rettangolo di 5x5 come nella figura riportata sopra, sar sufficiente indicare una destinazione di
dimensioni 5x5.
Ad esempio, proviamo a traslare le caselle del Range (1,1) - (5,5) di tre caselle pi a destra, semplicemente
aggiungendo il valore 3 ad ogni riga e colonna come mostrato dal codice sotto:
Riga1 = 1: Colonna1 = 1: Riga2 = 5: Colonna2 = 5
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Select
For i = Riga1 To Riga2
foglioExcel.Cells(i, i).Characters().Text = "Cella " & i & " " & n
Next i
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Cut _ foglioExcel.Range(foglioExcel.Cells(Riga1 + 3, Colonna1 + 3),
foglioExcel.Cells(Riga2 + 3, Colonna2 + 3))
Si otterr un risultato simile a quello mostrato in figura:

Tale risultato possibile perch stato indicato un Range di destinazione delle stesse dimensioni di quello
di origine.
L'operazione di copia, ottenibile attraverso il metodo Copy e del tutto simile a quella appena vista.
Ed anche la sintassi da utilizzare non cambia di molto:
OggettoExcel.Range(cella1, cella2).Copy destinazione
Anche in questo caso infatti se destinazione non viene indicato, le caselle facenti parte del Range vengono
copiate negli Appunti.
L'operazione Incolla ottenuta attraverso il metodo PasteSpecial incolla il contenuto degli Appunti sul foglio
utilizzando un formato specifico, in modo tale da poter utilizzare dati di formato differente in base
all'applicazione di provenienza degli stessi.
Non detto infatti che necessariamente si debba incollare i dati presenti nelle caselle dello stesso foglio di
lavoro all'interno del quale si sta lavorando.
La sintassi del tipo:
OggettoExcel.Range(cella1, cella2).PasteSpecial xlPasteType,
xlPasteSpecialOperation, Skip Blanks, Traspose
dove xlPasteType un argomento facoltativo di tipo Variant che indica una delle operazioni disponibili tra
quelle elencate nella tabella sottostante:

Tipo di operazione
xlPasteAll

Risultato ottenuto
Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in essi
oppure tutto il Range di origine se indicato.

Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in essi
xlPasteAllExceptBorders oppure tutto il Range di origine se indicato, senza i bordi o le linee eventualmente
disegnate tra le caselle nel Range di origine.
xlPasteComments
http://www.vbitalia.it/

Incolla tutti i commenti aggiunti alle celle che compongono il Range e solo essi.
Pagina 12

15/02/2003

Quindi il contenuto delle celle non viene incollato.


xlPasteFormats

Incolla il formato del Range di origine (ad esempio con rientro, senza rientro, con
tabulazioni incrociate eccetera). Anche questa operazione non incolla il
contenuto delle celle.

xlPasteValues

Incolla il valore delle celle specificate. Se l'oggetto Range contiene pi celle,


verr restituita una matrice di valori.

Se si passa a considerare il gruppo di operazioni indicato come xlPasteSpecialOperation nella struttura vista
prima, si pu notare che anch'esso un argomento facoltativo di tipo Variant che specifica l'operazione di
incollamento.
Pu essere rappresentato da una delle costanti mostrate nella tabella sottostante:

Tipo di operazione
xlPasteSpecialOperationAdd

Risultato ottenuto
Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in
essi oppure tutto il Range di origine se indicato in un nuovo Range
sommando i valori delle caselle gi presenti a quelli delle caselle che
devono essere incollate.

Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in


essi oppure tutto il Range di origine se indicato, in un nuovo Range
xlPasteSpecialOperationSubtract
sottraendo i valori delle caselle che devono essere incollate da quelli
delle caselle gi presenti.
Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in
essi oppure tutto il Range di origine se indicato in un nuovo Range
xlPasteSpecialOperationMultiply
moltiplicando i valori delle caselle gi presenti per quelli delle caselle
che devono essere incollate.
xlPasteSpecialOperationDivide

Incolla tutto il contenuto degli Appunti se i dati sono stati memorizzati in


essi oppure tutto il Range di origine se indicato in un nuovo Range
dividendo i valori delle caselle gi presenti per quelli delle caselle che
devono essere incollate.

xlPasteSpecialOperationNone

E' l'impostazione predefinita, l'operazione PasteSpecial corrisponde ad


una semplice sostituzione tra i valori esistenti e quelli da incollare.

E' importante notare che se i parametri xlPasteType e xlPasteSpecialOperation devono essere compatibili
se si decide di indicare espressamente quest'ultimo.
C' incompatibilit ad esempio se xlPasteType costituito dalla costante xlPasteFormats siccome
risulterebbe impossibile compiere operazioni matematiche sulla formattazione delle caselle.
Pienamente accettati sono invece xlPasteValues e xlPasteAll. Prima di continuare facciamo un piccolo
esempio: copiamo il solito Range (1,1) - (5,5) su s stesso ossia sul Range di destinazione (1,1) - (5,5).
Se volessimo ad esempio sommare i valori dovremmo utilizzare la costante xlPasteSpecialOperationAdd,
con l'accortezza di sostituire ai valori testuali che si utilizzavano prima ("Cella1", "Cella2"...), dei valori
numerici:
Riga1 = 1: Colonna1 = 1: Riga2 = 5: Colonna2 = 5
For i = Riga1 To Riga2
foglioExcel.Cells(i, i).Characters().Text = i & n
Next i
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).Copy
foglioExcel.Range(foglioExcel.Cells(Riga1, Colonna1), foglioExcel.Cells(Riga2,
Colonna2)).PasteSpecial _
xlPasteAll, xlPasteSpecialOperationAdd
valori iniziali delle celle erano 1,2,3,4,5. Dopo il copia-incolla con la somma dei valori il risultato il seguente:

http://www.vbitalia.it/

Pagina 13

15/02/2003

mentre una moltiplicazione (quindi l'utilizzo della costante xlPasteSpecialOperationMultiply produrrebbe il


seguente risultato:

Passando oltre, Skip Blanks permette, se indicato con valore True di non incollare le celle vuote del Range
di origine nel Range di destinazione.
Infine Transpose, anch'esso elemento facoltativo. Se indicato ed ha valore True, le righe e le colonne
vengono trasposte quando viene incollato l'intervallo.

Esercizio
1) utilizzare il seguente codice per attivare sessione, cartella e foglio e popolare parte del foglio di lavoro
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Characters().Text = i & n
Next n
Next i
End Sub
2) alla pressione del tasto Command1:
- copiare tutte le caselle non vuote ossia il Range (1,1) - (10,10) negli Appunti;
- eseguire l'operazione Incolla Speciale (PasteSpecial) sullo stesso Range di origine (1,1) - (10,10)
utilizzando la costante xlPasteAll ed un operazione (xlPasteSpecialOperationAdd,
xlPasteSpecialOperationSubtract, xlPasteSpecialOperationMultiply, xlPasteSpecialOperationDivide)
scelta dall'utente attraverso una ComboBox.

http://www.vbitalia.it/

Pagina 14

15/02/2003

Ecco un esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
With Combo1
.Text = "xlPasteSpecialOperationAdd"
.AddItem "xlPasteSpecialOperationAdd"
.AddItem "xlPasteSpecialOperationSubtract"
.AddItem "xlPasteSpecialOperationMultiply"
.AddItem "xlPasteSpecialOperationDivide"
End With
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Characters().Text = i & n
Next n
Next i
End Sub
Private Sub Command1_Click()
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(10, 10)).Copy
Select Case Combo1.Text
Case Is = "xlPasteSpecialOperationAdd"
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(10,
10)).PasteSpecial xlPasteAll, _
xlPasteSpecialOperationAdd
Case Is = "xlPasteSpecialOperationSubtract"
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(10,
10)).PasteSpecial xlPasteAll, _
xlPasteSpecialOperationSubtract
Case Is = "xlPasteSpecialOperationMultiply"
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(10,
10)).PasteSpecial xlPasteAll, _
xlPasteSpecialOperationMultiply
Case Is = "xlPasteSpecialOperationDivide"
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(10,
10)).PasteSpecial xlPasteAll, _
xlPasteSpecialOperationDivide
http://www.vbitalia.it/

Pagina 15

15/02/2003

Case Else
End Select
End Sub

La propriet RangeSelection
In questo capitolo si andr ad analizzare la propriet RangeSelection come area selezionata dall'utente.
Come si vedr in seguito esiste una differenza sostanziale tra la gestione di un Range, controllato dallo
sviluppatore e di un RangeSelection le cui dimensioni e posizione sono invece affidate alle scelte dell'utente.
Prima di iniziare con tale argomento, essendo stati gi chiariti i fondamenti del concetto di cella e di Range
possibile semplificare ulteriormente le cose utilizzando il metodo utilizzato da Excel per l'individuazione delle
celle.
Si pu infatti indicare una cella indicandone le coordinate in base all'intestazione di riga e di colonna.
Cos la cella che finora chiamavamo (3,3) per indicare la cella nella terza riga e nella terza colonna pu
essere indicata come "C3".
C infatti corrisponde all'intestazione della terza colonna e 3 all'intestazione della terza riga. Proprio come si
vede dall'immagine che segue:

Quindi, riportando quanto appena visto al concetto di Range possibile semplificarne la definizione
indicando anche qui per ogni cella l'intestazione di riga e di colonna.
Ad esempio se volessimo selezionare l'area (1,1) - (4,3) invece della scrittura finora utilizzata ossia:
foglioExcel.Range(foglioExcel.Cells(1, 1), foglioExcel.Cells(4, 3)).Select
potremmo utilizzare come indicatori di cella rispettivamente "A1" e "D3" nel modo che segue:
foglioExcel.Range("A1", "D3").Select
rendendo cos molto pi agevole la scrittura e la comprensione del codice.
Terminata questa parentesi vediamo adesso come recuperare le informazioni relative ad un'area di
selezione, introducendo in questo modo il concetto di RangeSelection. Se volessimo infatti visualizzare in
una finestra di messaggio la formula che indica il Range selezionato, dovremo fare riferimento alla propriet
ActiveWindow dell'oggetto Application.
ActiveWindow ha la funzione di spostare l'attenzione sulla finestra attiva dell'applicazione Excel, nel caso ne
siano state aperte pi di una.
Nel caso in cui nessuna finestra dell'applicazione sia aperta, la propriet ritorner il valore Nothing.
Un sistema per evitare errori di questo tipo consiste nel verificare immediatamente che almeno una finestra
sia aperta.
Ecco come fare:
If appExcel.ActiveWindow Is Nothing Then
Msgbox "Nessuna finestra attiva"
End If
Insieme a tale propriet dovremo fare uso anche della RangeSelection che restituisce un oggetto Range
rappresentante le celle selezionate nel foglio di lavoro nella finestra specificata (nel nostro caso la finestra
attiva).
Una volta compreso il significato di tali propriet aggiungiamo che per raggiungere il risultato prefissato, si
dovr utilizzare anche la propriet Address della quale per adesso non faremo un'analisi dettagliata in
http://www.vbitalia.it/

Pagina 16

15/02/2003

quanto non ancora necessaria.


Unendo le tre propriet possiamo quindi recuperare la formula che individua il Range attraverso il codice qui
sotto:
MsgBox appExcel.ActiveWindow.RangeSelection.Address
Un esempio di formula visualizzato dalla finestra di messaggio potrebbe essere il seguente:

In questo caso stato impostato prima un Range di celle "A1","D3" come mostrato dal codice riportato sotto:
foglioExcel.Range("a1", "d3").Select
MsgBox appExcel.ActiveWindow.RangeSelection.Address
Naturalmente nel caso in cui non sia stato selezionato espressamente un Range, il risultato mostrato dalla
finestra di messaggio corrisponde alla formula di selezione di una sola cella, o la "A1" per impostazione
predefinita (formula $A$1), oppure quella selezionata dall'utente.
Le propriet appena viste ed il codice analizzato sopra hanno uno scopo ben specifico. Indicando un Range
da codice si suppone che chi sviluppa l'applicazione conosca quali celle andr a selezionare l'utente, cosa
pressoch impossibile.
Attraverso la propriet RangeSelection che per semplificarne il concetto si pu considerare come un vero e
proprio oggetto indipendente ossia l'oggetto "area selezionata dall'utente" a differenza di Range che pu
essere considerato pi come l'oggetto "area selezionata dallo sviluppatore", si pu appunto lavorare con le
celle via via selezionate dall'utente dell'applicazione.
Cos risulta semplice applicare i concetti visti negli articoli precedenti a tale area di selezione: prendiamo il
caso del metodo Taglia. Ecco come si adatta a RangeSelection
appExcel.ActiveWindow.RangeSelection.Cut
Lo stesso vale per il metodo Copy:
appExcel.ActiveWindow.RangeSelection.Copy
e per Incolla Speciale, di cui per comodit si riporta sotto la sintassi completa:
ApplicazioneExcel.ActiveWindow.RangeSelection.PasteSpecial xlPasteType,
xlPasteSpecialOperation, Skip Blanks, Transpose
Se per dal punto di vista della sintassi i tre metodi appena visti a Range e RangeSelection non sono
granch dissimili, per l'organizzazione del codice le cose sono molto diverse.
Negli esempi fatti negli articoli precedenti (e negli esercizi finora proposti) non ha senso sostituire
semplicemente il codice relativo a RangeSelection al codice relativo a Range perch in questo modo non si
lascerebbe all'utente la possibilit di eseguire la selezione.
Il metodo migliore per ovviare al problema quello far eseguire all'utente la selezione ed applicare poi i
metodi Taglia, Copia ed Incolla Speciale nel momento desiderato dall'utente.
Tutto ci pu essere realizzato con l'inserimento nel progetto di un semplice pulsante.
E questo proprio il testo dell'esercizio proposto al termine del capitolo.

Esercizio
1) utilizzare il seguente codice per attivare sessione, cartella e foglio e popolare parte del foglio di lavoro
http://www.vbitalia.it/

Pagina 17

15/02/2003

Dim appExcel As New Excel.Application


Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Characters().Text = i & n
Next n
Next i
End Sub
2) alla pressione del tasto Command1:
attivare e visualizzare il foglio di calcolo 2 e copiarvi la selezione indicata dall'utente partendo dalla
cella (1,1). Ricordarsi di utilizzare questa volta RangeSelection al posto di Range e di copiare la
selezione del primo foglio di lavoro negli Appunti prima di cambiare foglio;
Ecco un esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Characters().Text = i & n
Next n
http://www.vbitalia.it/

Pagina 18

15/02/2003

Next i
End Sub
Private Sub Command1_Click()
appExcel.ActiveWindow.RangeSelection.Copy
Set foglioExcel = Excel.Worksheets.Item(2)
foglioExcel.Activate
appExcel.ActiveWindow.RangeSelection.PasteSpecial xlPasteValues
End Sub

Aggiungere un commento ad una cella


Altro metodo interessante da considerare sicuramente AddComment. Esso permette infatti di aggiungere
un commento ad una cella.
L'aggiunta del commento pu essere per eseguita solo singolarmente ossia cella per cella e non
selezionando un Range di pi celle.
La presenza di un commento relativo ad una cella viene visualizzato nel foglio di calcolo tramite una
linguetta rossa all'angolo della cella.
Passando il mouse su tale angolo, appare un ToolTip che visualizza il testo del commento. Quello mostrato
in figura un esempio:

Com' facile intuire, non necessariamente un commento deve essere incluso in una cella al quale sia stato
aggiunto un testo o una formula.
Per aggiungere il commento "Questo il commento alla cella C2" alla cella C2, appunto:
foglioExcel.Cells(2, 3).AddComment "Questo il commento alla cella C2"
se si desidera lavorare sull'oggetto Cells oppure:
foglioExcel.Range("C2").AddComment "Questo il commento alla cella C2"
se invece si agisce sul Range unitario di cella C2.

La formattazione delle celle


E' anche interessante inserire un testo in una cella andando automaticamente a capo quando si raggiunge il
limite di questa, come mostrato dalla figura:

http://www.vbitalia.it/

Pagina 19

15/02/2003

Il risultato si ottiene semplicemente impostando la propriet WrapText su True in questo modo:


foglioExcel.Range("C2").WrapText = True
Anche in questo caso possibile attivare la propriet per un gruppo di celle, indicando ad esempio il Range
C2-E4:
foglioExcel.Range("c2", "e4").WrapText = True
Per impostare un valore da assegnare ad una cella abbiamo visto un metodo in precedenza. Esiste per il
metodo ufficiale, che questa volta assegna valori veri e propri e non caratteri alfanumerici come nel caso
della propriet Characters, ossia l'assegnazione della propriet Value ad un oggetto Range.
Cos, se si desidera assegnare il valore 123,32 alla cella C2 ed il valore 29 alla cella C4:
foglioExcel.Range("C2").Value = 3.14159
foglioExcel.Range("C4").Value = 29
Attraverso la propriet Value possibile quindi impostare le operazioni sulle celle. Se ad esempio si
desiderasse assegnare alla cella D3 il valore corrispondente al prodotto dei valori delle celle C2 e C4:
With foglioExcel
.Range("C2").Value = 3.14159
.Range("C4").Value = 29
.Range("D3").Value = .Range("C2").Value * .Range("C4").Value
End With
Oppure possibile prima popolare una serie di celle come gi abbiamo fatto negli esercizi precedenti e poi
effettuare una ricerca selezionando tutti i valori superiori ad uno dato.
Proviamo a svolgere questo piccolo esercizio passo per passo.
Dopo aver popolato il Range al solito modo (mi ricordandosi della differenza tra Characters e Value):
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Value = i * 0.2332
Next n
Next i
possiamo quindi copiare nel foglio di calcolo 2 (supposto che prima si stesse lavorando su un foglio di
calocolo differente, al fine di evitare confusione inutile), tutti i valori delle celle che superano ad esempio il
valore 1.
Quindi, definiamo l'oggetto Cella che servir poi per effettuare la ricerca:
Set Cella = appExcel.Cells
per ogni Cella nel Range che c'interessa ossia A1 H8:
For Each Cella In foglioExcel.Range("A1", "H8")

http://www.vbitalia.it/

Pagina 20

15/02/2003

se il valore della singola cella maggiore di 1:


If Cella.Value > 1 Then
cambiamo il foglio di calcolo sul quale lavoriamo scegliendo il foglio 2 ed attiviamolo:
Set foglioExcel = excel.Worksheets.Item(2)
foglioExcel.Activate
consideriamo ora un semplice contatore che ci servir per incollare le celle con valore maggiore di 1 tutte in
una colonna, in modo progressivo:
Cont = Cont + 1
e finalmente copiamo le celle:
foglioExcel.Cells(Cont, 1).Value = Cella.Value
chiusura di cicli e condizioni:
End If
Next Cella
Il risultato dovrebbe essere il seguente:

dove naturalmente quello visualizzato Foglio2 e le celle incollate vanno ben oltre l'immagine che stata
tagliata per questioni di spazio.

Le dimensioni delle celle


Concludiamo con la propriet AutoFit che come si intuisce dal nome, modifica le dimensioni delle colonne
e/o delle righe per adattare il contenuto delle celle.
AutoFit una propriet associabile soltanto agli oggetti Columns e Rows perci in un Range bisogna
indicare se applicare la propriet alla colonna, alla riga o a tutte e due.
Proviamo ad esempio ad inserire un numero molto lungo in una cella ed uno molto corto in un'altra e a
ridimensionare le rispettive colonne:
foglioExcel.Range("d3").Value = 1
foglioExcel.Range("b3").Value = 5499030246
foglioExcel.Range("A1", "d4").Columns.AutoFit
Il risultato sar il seguente:

http://www.vbitalia.it/

Pagina 21

15/02/2003

Esercizio
1) utilizzare il seguente codice per attivare sessione, cartella e foglio e popolare parte del foglio di lavoro
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Value = i & n
Next n
Next i
End Sub
2) alla pressione del tasto Command1:
visualizzare una finestra di messaggio la somma di tutti i valori delle celle selezionate dall'utente.
Ricordarsi di utilizzare l'oggetto RangeSelection.
Ecco un esempio di come pu essere impostata l'applicazione:

http://www.vbitalia.it/

Pagina 22

15/02/2003

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
For i = 1 To 10
For n = 1 To 10
foglioExcel.Cells(i, n).Value = i & n
Next n
Next i
End Sub
Private Sub Command1_Click()
Dim Tot As Integer
Set Cella = appExcel.Cells
For Each Cella In ActiveWindow.RangeSelection.Cells
Tot = Tot + Cella
Next Cella
MsgBox Tot
End Sub

Assegnare una formula alle celle


Nel corso di questo capitolo si analizzeranno i metodi di assegnazione delle formule alle celle o ad un Range
di celle e l'utilizzo delle funzioni supportate da Excel presenti nell'oggetto WorksheetFunction.
Sar in questo modo possibile accedere attraverso un'applicazione sviluppata in Visual Basic alle funzioni di
Excel di tipo matematico e trigonometrico, logico, finanziario, statistico, e cos via.
Lasciamo quindi per un attimo da parte il discorso di layout del foglio di lavoro e vediamo una delle pi
importanti propriet supportate da Excel: la propriet Formula.
Attraverso tale propriet s'imposta e si assegna una formula alla cella desiderata in modo da far dipendere il
valore della cella (quello che poi sar visualizzato al suo interno) dalla formula stessa.
Ad esempio consideriamo tre celle. Due di queste, ossia la cella A1 e la cella A2 contengono dei valori
numerici che impostiamo a priori.
Consideriamo A1 con valore 10 e A2 con valore 25. Possiamo quindi assegnare il valore alla cella A3 in
base ad una formula del tutto arbitraria.
Facciamo un esempio pratico. Assegnamo ad A1 e A2 i rispettivi valori:
foglioExcel.Range("A1").Value = 10
foglioExcel.Range("A2").Value = 25
adesso assegnamo una formula alla cella A3. Possiamo ad esempio pensare di inserire la formula che
esegue l'operazione di somma tra i valori delle celle A1 e A2:
foglioExcel.Range("A3").Formula = "=$A$1+$A$2"
Anche se non necessaria, la figura sotto mostra il risultato visualizzato:

http://www.vbitalia.it/

Pagina 23

15/02/2003

dove, selezionando la cella A3, nella casella della formula appare proprio la formula da noi inserita:

Allo stesso modo possiamo generare formule utilizzando tutti gli operatori desiderati. Proviamo ora a
moltiplicare le celle A1 e A2 e dividerle per la loro differenza:
foglioExcel.Range("A3").Formula = "=($A$1*$A$2)/($A$2-$A$1)"
il risultato sar:

Cos possiamo calcolare il valore massimo tra quello contenuto nella cella A1 e quello della cella A2:
foglioExcel.Range("A3").Formula = "=MAX(A1:A2)"
Le funzioni principali di Excel sono tutte contenute nell'oggetto WorksheetFunction. La differenza tra
l'utilizzo della propriet Formula e di WorksheetFunction sta nel fatto che mentre il primo inserisce la formula
nella casella delle formule di Excel ed esegue l'operazione in modo del tutto automatico, il secondo inserisce
il risultato come valore della cella.
Sarebbe del tutto inutile andare ad elencare la lunga lista di funzioni supportate, quindi rimandiamo questo
compito ad uno studio della Guida in linea di Microsoft Excel.
Si parlava dell'oggetto WorksheetFunction: il suo utilizzo davvero semplice, ammesso che si abbia sotto
mano una tabella di tutte le funzioni o meglio, dei loro significati.
Soltanto cos si ottiene una corrispondenza tra una funzione dell'oggetto ed il risultato desiderato. Senza
andare oltre vediamo come ottenere lo stesso risultato dell'esempio precedente utilizzando questo nuovo
oggetto:
foglioExcel.Range("A3").Value =
appExcel.WorksheetFunction.Sum(foglioExcel.Range("A1"), _
foglioExcel.Range("A2"))
http://www.vbitalia.it/

Pagina 24

15/02/2003

E cos via per tutte le altre funzioni.


E' interessante anche notare che tra le funzioni contenute in WorksheetFunction esiste la possibilit di
generare numeri casuali.
E questo ci render le cose pi interessanti nella formulazione degli esercizi proposti d'ora in poi. Per
generare uno o una serie di numeri casuali si utilizza la funzione RAND() di Excel:
foglioExcel.Range("A3").Formula = "=RAND()"
per prendere soltanto la parte intera di tali numeri casuali:
foglioExcel.Range("A3").Formula = "=INT(RAND())"
quindi per generare un numero casuale compreso tra 0 e 100:
foglioExcel.Range("A3").Formula = "=RAND()*100"
ed infine per generare un numero casuale compreso tra due intervalli diversi da 0, ad esempio 20 e 60:
foglioExcel.Range("A3").Formula = "=RAND()*(60-20)+20"
E' da notare che l'utilizzo di una formula non ristretta ad una singola cella: un'intero Range pu essere
popolato da celle con la medesima formula.
Ad esempio applichiamo la formula di somma delle celle A1 (che ha sempre il valore 10) e A2 (che ha
sempre il valore 25) ad un Range di celle A3,D5
foglioExcel.Range("A3", "D5").Formula = "=$A$1+$A$2"
Si otterr il seguente risultato:

Allo stesso modo possibile ad esempio popolare un Range di numeri casuali, passaggio che sar oggetto
dell'esercizio associato a questo capitolo.

Esercizio
1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.
2) all'avvio dell'applicazione selezionare il primo foglio di lavoro, renderlo attivo e popolare il Range A2,I9
con numeri casuali interi compresi nell'intervallo (10; 90).
3) se il valore di una cella compreso tra i valori (10; 20) aggiungere un commento alla cella indicando la
formula della stessa. Ecco un esempio di come pu essere impostata l'applicazione:

http://www.vbitalia.it/

Pagina 25

15/02/2003

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
foglioExcel.Range("A2", "I9").Formula = "=INT(RAND()*(90-10)+10)"
Set cella = appExcel.Cells
For Each cella In foglioExcel.Range("A2", "I9").Cells
If cella.Value > 10 And cella.Value < 20 Then
cella.AddComment (cella.Formula)
End If
Next cella
End Sub

La protezione del foglio di calcolo


Quando il foglio di lavoro viene protetto, possibile aggiungere una nuova forma di sicurezza che consiste
nel rendere invisibili le formule delle celle, anche se queste vengono selezionate dall'utente.
Per eseguire tale operazione si utilizza la propriet FormulaHidden che si chiama in causa nel seguente
modo:
foglioExcel.Range("A1", "D4").FormulaHidden = True
questo dimostra che non necessario procedere cella per cella ma si pu agevolmente nascondere la
formula di un intero Range di celle. Naturalmente per disabilitare la propriet basta impostarla su False.
Se ad esempio selezioniamo un Range di celle A1,D4 e assegniamo ad esso una formula comune ad
esempio il prodotto tra il numero di riga e quello di colonna di ogni cella, possiamo renderci conto del
risultato ottenuto mediante la propriet FormulaHidden, in questo modo:
Set Cella = appExcel.Cells
For Each Cella In foglioExcel.Range("A1", "D4")
Cella.Formula = Cella.Column & Cella.Row
Next Cella
foglioExcel.Range("A1", "D4").FormulaHidden = True
Naturalmente per ottenere un qualsiasi risultato il foglio di calcolo deve essere protetto.
Quali sono le principali modalit di protezione di un documento Excel? Innanzitutto esiste la propriet
ProtectWindows di sola lettura e quindi non modificabile da codice, che determina se le finestre delle
cartelle di lavoro sono protette o meno.
Poi abbiamo la propriet ProtectStructure anch'essa di sola lettura che determina se la disposizione dei
fogli di lavoro bloccata.
http://www.vbitalia.it/

Pagina 26

15/02/2003

ProtectSelection permette di impostare o eliminare la protezione sugli elementi del grafico per cui possono
risultare non selezionabili tramite mouse.
ProtectScenarios invece indica solo se gli scenari del foglio di lavoro sono protetti.
ProtectionMode indica se la protezione a interfaccia utente attiva.
ProtectGoalSeek permette di impostare o eliminare la protezione sulle coordinate del grafico.
ProtectFormatting permette di impostare o eliminare la protezione sulla formattazione degli elementi del
grafico.
ProtectDrawingObjects determina se gli oggetti-disegno sono protetti.
ProtectData permette di impostare o eliminare la protezione sull'accesso alle formule delle celle.
ProtectContents determina se tutto il contenuto di un foglio stato protetto o meno.
Nel caso dell'esempio precedente non possibile utilizzare nessuna di queste propriet per applicare la
protezione al foglio di lavoro siccome sono propriet di sola lettura.
Si dovr cos ricorrere al metodo Protect, dotato della seguente sintassi:
Oggetto.Protect(Password, DrawingObjects, Contents, Scenarios,
UserInterfaceOnly)
dove in Password si dovr indicare la parola chiave di protezione. In DrawingObjects si indicher invece
(impostandolo su True o False) se la protezione si estende anche agli elementi di disegno del foglio di
calcolo.
Contents si riferisce invece all'oggetto in questione (nel nostro caso Oggetto il foglio di calcolo ossia
foglioExcel). Nel caso di un foglio di calcolo questo parametro protegge tutte le celle.
Scenarios protegge gli scenari, impostando il parametro su True mentre UserInterfaceOnly protegge
l'interfaccia utente.
Ad esempio se aggiungessimo all'esempio precedente la seguente linea di codice:
foglioExcel.Protect ("password")
otterremmo l'invisibilit delle formule di ciascuna cella come mostrato sotto:

ed in pi, ad ogni tentativo di modificare il valore di qualsiasi cella, otterremmo una finestra di messaggio
come quella qui sotto:

Per estendere la protezione anche alla cartella di lavoro sar sufficiente indicare come oggetto non pi
foglioExcel ma cartExcel ossia l'oggetto Excel.WorkBook. Una linea di codice di questo tipo:
cartExcel.Protect ("password")
protegge tutta la cartella di lavoro. Per verificarne il grado di protezione si utilizza la propriet HasProtection:
visualizziamo una finestra di messaggio all'apertura della cartella di lavoro nel caso sia protetta:
http://www.vbitalia.it/

Pagina 27

15/02/2003

If cartExcel.HasProtection = True Then Msgbox "La cartella protetta"


Per determinare se la cartella di lavoro protetta dalla scrittura (anche se tutte le formule possono essere
visibili e gli oggetti-disegno o i grafici possono essere disponibili alle azioni del mouse dell'utente) si usa
invece la propriet WriteReserved:
If cartExcel.WriteReserved = True Then MsgBox "La cartella protetta"
Nell'esercizio proposto al termine del capitolo si potr fare un po' di pratica nella protezione di un foglio di
lavoro.
Infine vediamo il metodo PurgeChangeHistoryNow che permette di eliminare l'elenco delle ultime azioni dal
registro delle modifiche della cartella di lavoro.
La sintassi la seguente:
cartExcel.PurgeChangeHistoryNow(Days, SharingPassword)
dove Days specifica per quanto tempo si desidera mantenere le modifiche in termini di giorni e
SharingPassword specifica la password, a meno che questa non sia gi stata applicata caso in cui verr
ignorata.

Esercizio
1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.
2) all'avvio dell'applicazione selezionare il primo foglio di lavoro, renderlo attivo e popolare il Range A1,H8
con numeri casuali interi compresi nell'intervallo (10; 30).
3) applicare al foglio di lavoro una password determinata dalla somma di tutti i valori delle celle non vuote
(Range A1,H8). 4) proteggere il foglio di lavoro dalla visualizzazione delle formule delle celle Ecco un
esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
foglioExcel.Range("A1", "H8").Formula = "=INT(RAND()*(30-10)+10)"
Dim Password As Integer
foglioExcel.Range("A1", "H8").FormulaHidden = True
http://www.vbitalia.it/

Pagina 28

15/02/2003

Password = appExcel.WorksheetFunction.Sum(foglioExcel.Range("A1"),
foglioExcel.Range("A2"))
foglioExcel.Protect (Password)
End Sub

Importazione di dati esterni


Pu risultare particolarmente utile per chi sviluppa una macro o chi utilizza fogli Excel nel proprio progetto
andare ad importare un testo, una lista o pi in generale una serie di dati da un documento esterno.
Esiste un metodo molto efficace per evitare di compiere complesse operazioni manuali (apertura del file,
estrazione di ogni riga, chiusura del file, esame di ogni dato estratto). Il metodo in questione OpenText.
Attraverso OpenText viene aperto e analizzto un file di testo come nuova cartella di lavoro con un singolo
foglio contenente i dati del file di testo analizzato. Quindi, unica limitazione del metodo, non possibile
importare direttamente il contenuto di un file di testo in un foglio di lavoro esistente.
Ecco come si presenta la sintassi di OpenText:
appExcel.Workbooks.OpenText(Filename, Origin, StartRow, DataType, TextQualifier,
ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo,
DecimalSeparator, ThousandsSeparator)
Vediamo ora di analizzarla con calma: prima di tutto si nota che il metodo applicabile all'insieme
Workbooks dell'istanza appExcel.
Il primo parametro obbligatorio, Filename il nome del file di testo da aprire. Ad esempio se creiamo un file
tags.txt nella cartella "C:\Documenti" nel quale inseriamo una lista qualsiasi, come la seguente:

dovremo indicare il percorso "C:\Documenti\tags.txt". Il secondo parametro richiesto, Origin invece


opzionale ed indica la piattaforma di provenienza del file. Le scelte sono limitate alle costanti del gruppo
xlPlatform ossia xlMacintosh, xlWindows oppure xlMSDOS.
Il parametro StartRow indica invece il numero della riga dalla quale partire nel processo di importazione del
testo dal file .txt al foglio di lavoro Excel.
Cos se ad esempio si indica StartRow = 2, verranno importate tutte le righe a partire dalla seconda.
Anche il parametro DataType opzionale: indica il formato di colonna dei dati. Il formato pu essere a scelta
xlDelimited se si desidera che il file sia delimitato da caratteri delimitatori oppure xlFixedWidth se i dati del
file devono essere ordinati in colonne di larghezza fissa.
Andando oltre troviamo il parametro TextQualifier, anch'esso opzionale che imposta il qualificatore di testo
che avvisa l'applicazione che i dati racchiusi da tale qualificatore sono in formato testo. Ad esempio si pu
impostare il qualificatore di testo come virgoletta singola " ' " impostando TextQualifier su
xlTextQualifierSingleQuote, come virgoletta doppia " " " impostandolo su xlTextQualifierDoubleQuote oppure
disabilitando questa opzione indicando xlTextQualifierNone.
Altro parametro sempre opzionale ConsecutiveDelimiter che, impostato su True considera due delimitatori
consecutivi (ad esempio due virgolette singole una dietro l'altra " '' ") come un delimitatore unico.
Naturalmente questo non vale se il parametro TextQualifier stato ignorato oppure se ha valore
xlTextQualifierNone.
Tab, se impostato su True considera il carattere di tabulazione come delimitatore.
Semicolon, se impostato su True considera il carattere punto e virgola " ; " come delimitatore.
http://www.vbitalia.it/

Pagina 29

15/02/2003

Comma, se impostato su True considera il carattere virgola " , " come delimitatore.
Space, se impostato su True considera il carattere spazio " " come delimitatore.
Other, se impostato su True consente di utilizzare come delimitatore il carattere indicato dal parametro
successivo ossia OtherChar.Se vengono specificati pi caratteri, verr utilizzato solo il primo carattere della
stringa e gli altri caratteri verranno ignorati.
FieldInfo consente invece di indicare una matrice contenente informazioni di analisi per singole colonne di
dati. DecimalSeparator specifica il separatore decimale utilizzato in Excel per il riconoscimento dei numeri ed
infine ThousandsSeparator specifica il separatore delle migliaia utilizzato in Excel per il riconoscimento dei
numeri.
Adesso che i parametri sono stati analizzati, vediamo come importare nel modo pi semplice i dati del file di
testo tags.txt in un nuovo foglio di calcolo.
Siccome i parametri sono tanti e la possibilit di confusione elevata, vediamo prima come richiamare il
metodo esplicitando i singoli parametri:
appExcel.Workbooks.OpenText FileName:="C:\Documenti\tags.txt",
DataType:=xlDelimited, tab:=True
utilizzando invece la notazione tradizionale:
appExcel.Workbooks.OpenText "C:\Documenti\tags.txt", , , xlDelimited, , , True
In entrambi i casi il risultato sar il seguente:

Lo stesso ragionamento fatto per il metodo OpenText pu essere esteso ad un secondo metodo ossia
TextToColumns che consente una semplice gestione delle celle che contengono un testo esteso su pi
colonne. L'esempio grafico riportato sotto mostra il caso in questione:

La sintassi prevista del metodo del tutto simile a quella del metodo visto in precedenza:

http://www.vbitalia.it/

Pagina 30

15/02/2003

Range.TextToColumns(Destination, DataType, TextQualifier, ConsecutiveDelimiter,


Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator,
ThousandsSeparator)
con due differenza fondamentali: la prima che il metodo si riferisce ad un oggetto Range. ossia ad un
gruppo di pi celle.
La seconda costituita dal parametro Destination che specifica la destinazione della separazione del testo
che supera eventualmente il limite della colonna.
Tutti gli altri parametri hanno lo stesso significato sia nel caso di OpenText che nel caso di TextToColumns.
Proviamo a fare un esempio veloce. Copiamo negli Appunti un testo qualsiasi formato da una o pi frasi.
Dopodich diamo l'avvio al seguente codice (che naturalmente deve essere integrato con l'inizializzazione
degli oggetti 'applicazione', 'foglio di lavoro', 'foglio di calcolo', come visto nei primi articoli)
foglioExcel.Activate
foglioExcel.Paste
Il risultato sar che tutto il testo viene trasportato dagli Appunti al foglio di calcolo in tante righe quante sono
le righe del testo, occupando quindi (se il testo sufficientemente lungo) pi dello spazio delimitato dalla
colonna:

Adesso invece proviamo ad utilizzare il metodo TextToColumns indicando come separatore per ogni singola
cella lo spazio (parametro Space impostato su True):
foglioExcel.Activate
foglioExcel.Paste
Selection.TextToColumns , xlDelimited, , True, , , , True
e come si pu vedere dal risultato:

tutte le righe del testo vengono suddivise in tante celle quante sono le parole con una parola per cella.
Naturalmente i metodi di suddivisione possono essere i pi svariati, indicando ad esempio di suddividere il
testo dopo ogni virgoletta, ogni punto e virgola e ogni qualsiasi altro carattere personalizzato.

Esercizio

http://www.vbitalia.it/

Pagina 31

15/02/2003

1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.
2) creare un file di testo denominato 1.txt ed aggiungervi il seguente testo:
23323,34903,394,5450,33092,2309,305905,340921,68403,91093,59302,39466,
59643,38502,56530,23055,43,9505
3) importare il testo di 1.txt in un foglio di calcolo e suddividere il testo usando come delimitatore la virgola.
Ecco un esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
appExcel.Workbooks.OpenText "C:\Documenti\1.txt", , , xlDelimited, , , , , True
End Sub

Le visualizzazioni
Un importante aspetto dell'utilizzo di applicazioni orientate a Microsoft Excel la possibilit di un elevato
livello di interazione con l'utente.
Per questo motivo pu risultare utile visualizzare l'intera cartella di lavoro in modalit Web ossia proprio
come se fosse una pagina creata in HTML.
Per far ci necessario utilizzare il metodo WebPagePreview la cui sintassi rispetta la seguente forma:
cartExcel.WebPagePreview
naturalmente il metodo applicabile solamente ad una cartella di lavoro Excel e non ad esempio all'oggetto
'applicazione' n ad un singolo foglio di calcolo. Se ad esempio popoliamo un Range con numeri casuali
come gi stato visto e richiamiamo il metodo WebPagePreview, nel seguente modo:
http://www.vbitalia.it/

Pagina 32

15/02/2003

Dim appExcel As New Excel.Application


Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
Dim Colonna1, Colonna2, Riga1, Riga2 As Integer
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
foglioExcel.Range("A2", "I9").Formula = "=INT(RAND()*(90-10)+10)"
cartExcel.WebPagePreview
End Sub
il foglio di lavoro presenter un Range A2,I9 popolato di numeri casuali compresi tra 10 e 90. Una volta
richiamato il metodo WebPagePreview (in questo caso quindi all'apertura del foglio di lavoro) la pagina Web
visualizzata sar la seguente:

Come si pu notare la pagina viene creata come file temporaneo nella cartella "TEMP" allinterno della
cartella di sistema del proprio computer, ed ha lo stesso nome della cartella di lavoro con la quale si sta
operando.

Operazioni tra celle


Un altro metodo interessante ColumnDifferences che calcola le differenze tra le celle di una colonna e
una cella di riferimento.
Quindi questo metodo rappresenta un confronto solo tra le celle di una singola colonna. Ad esempio se
assegnamo alle celle della colonna A dei valori che vanno da 1 a 5 per le prime cinque celle, da 7 a 13 per le
seconde 7 ed assegnamo il valore 1 alla sesta cella, possiamo determinare ad esempio quali celle sono
differenti dalla cella A1 di valore 1. Il codice seguente ha proprio tale finalit:
foglioExcel.Activate
For i = 1 To 5
foglioExcel.Cells(i, 1).Value = i
Next i
foglioExcel.Cells(6, 1).Value = 1
For i = 7 To 13
foglioExcel.Cells(i, 1).Value = i
Next i
Set Differenza = foglioExcel.Columns("A").ColumnDifferences( _
http://www.vbitalia.it/

Pagina 33

15/02/2003

Comparison:=ActiveSheet.Range("A1"))
Differenza.Select
Com' facile immaginare le celle selezionate saranno quelle di valore diverso da 1 ossia:

La curva di Bzier
Esiste poi un metodo particolare che permette di creare una curva di Bzier che consente di disegnare una
curva a mano libera ma con maggior precisione in quanto una volta definiti dall'utente i punti intermedi,
l'applicazione ne calcola i punti intermedi. Una curva di Bzier rappresenta un oggetto Shape di cui si
parler in maniera pi approfondita pi in la con gli articoli.
La sintassi del metodo AddCurve di cui si parla la seguente:
foglioExcel.AddCurve(SafeArrayOfPoints)
dove l'unico parametro da indicare ossia SafeArrayOfPoints la matrice di coppie di coordinate (x,y) che
rappresentano i punti intermedi della curva.
Il primo punto da specificare il vertice di partenza mentre l'ultimo punto da specificare il vertice di arrivo
della curva. Ad esempio consideriamo una curva come quella mostrata in figura:

il codice da utilizzare sar il seguente:


La sintassi del metodo AddCurve di cui si parla la seguente:
foglioExcel.Activate
Dim pts(1 To 4, 1 To 2) As Single
pts(1, 1) = 50 'punto 1 coordinata X
pts(1, 2) = 20 'punto 1 coordinata Y
pts(2, 1) = 100 'punto 2 coordinata X
pts(2, 2) = 160 'punto 2 coordinata Y
http://www.vbitalia.it/

Pagina 34

15/02/2003

pts(3, 1) = 150 'punto 3 coordinata X


pts(3, 2) = 160 'punto 3 coordinata Y
pts(4, 1) = 200 'punto 4 coordinata X
pts(4, 2) = 20 'punto 4 coordinata Y
foglioExcel.Shapes.AddCurve pts
In pratica abbiamo dichiarato la matrice pts. La notazione 1 To 4 indica che si vogliono memorizzare in tale
matrice quattro punti della curva mentre la notazione 1 To 2 indica invece che di questi quattro punti si vuole
specificare le due coordinate X ed Y. Naturalmente sviluppare un grafico utilizzando una curva di Bzier
molto macchinoso ma pu risultare divertente.
Nell'esercizio proposto al termine del capitolo si prover a tradurre in grafico (o meglio in curva) dei numeri
casuali.

Esercizio

1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.
2) creare una curva di Bzier con 40 punti le cui coordinate X vengono incrementate di 10 da punto a punto
mentre le coordinate Y sono rappresentate per ogni punto da un numero casuale compreso nell'intervallo
(0,100);
3) esportare la curva in una pagina Web e visualizzarla;
Ecco un esempio di come pu essere impostata l'applicazione:

Soluzione
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
http://www.vbitalia.it/

Pagina 35

15/02/2003

Dim pts(1 To 40, 1 To 2) As Single


For i = 1 To 40
pts(i, 1) = i * 10
pts(i, 2) = Int(100 * Rnd)
Next i
foglioExcel.Shapes.AddCurve pts
End Sub

Importazione di un foglio di calcolo Excel tramite un contenitore OLE


Come abbiamo potuto notare interagire con una sessione di Excel non va oltre le normali difficolt del
linguaggio, ma come ci si deve comportare se si desidera inserire un foglio di calcolo Excel nel proprio
progetto?
Pu infatti risultare scomodo dover aprire un'applicazione esterna alla propria (tempi di caricamento, focus
che passa da una finestra all'altra e cos via).
Vediamo quindi in questo capitolo (che rappresenta una sorta di parentesi nel lungo discorso che stiamo
affrontando) come utilizzare un contenitore OLE.
OLE infatti non altro che un recipiente dove inserire un oggetto di una classe qualsiasi. La classe
dell'oggetto inseribile definito dalla propriet Class:
OLE.Class = nome_classe
ed rappresentata dal tipo di oggetto che si pu importare nel contenitore. Alcune di queste classi sono:
documento di testo, cartella Excel, foglio di calcolo Excel, documento Word, immagine bitmap, immagine
jpeg e cos via.
Non necessario tuttavia indicare il nome della classe perch quando si indica il documento da importare,
Visual Basic riconosce automaticamente a quale classe appartiene.
Prima di continuare vediamo quindi i passi preliminari. Prima di tutto si dovr importare sul piano il controllo
OLE.
Una volta trascinato sul piano si aprir una finestra nella quale scegliere il tipo di oggetto (o meglio la classe
dell'oggetto) importabile nel contenitore OLE.
Lavorando con i fogli di calcolo Excel, dovremo quindi scegliere la voce 'Foglio di lavoro di Microsoft Excel'
come mostrato nella figura sotto:

Adesso tutto pronto per poter lavorare. La primissima cosa da fare quella di importare un foglio di lavoro
Excel esistente attraverso il metodo CreateLink.
Tale metodo infatti permette di memorizzare e gestire effettivamente i dati dell'oggetto incorporato (il foglio di
lavoro Excel) dall'applicazione in cui sono stati creati.
Private Sub Form_Load()
OLE1.CreateLink "C:\Documenti\VBALIST.xls"
End Sub
Dando gi un primo avvio all'applicazione il foglio di calcolo dovrebbe essere visualizzato in questo modo:

http://www.vbitalia.it/

Pagina 36

15/02/2003

Naturalmente le dimensioni della sezione del foglio visualizzata dipendono da quelle del contenitore OLE. In
ogni caso possibile effettuare un ingrandimento attraverso la propriet SizeMode alla quale assegnare una
delle seguenti costanti:

Costante

Risultato ottenuto

VbOLESizeClip

il foglio di calcolo viene visualizzato su scala 1:1

VbOLESizeStretch

il foglio di calcolo viene visualizzato in modo da occupare tutta la superficie del


contenitore OLE;

VbOLESizeAutoSize il contenitore OLE prende le dimensioni del foglio di calcolo;


VbOLESizeZoom

il foglio di calcolo viene ingrandito in modo da mantenere per le dimensioni originali;

Purtroppo per le operazioni possibili con il controllo OLE sono molto pi limitate rispetto a quelle possibili
utilizzando gli oggetti Excel.Application, Excel.Workbook ed Excel.Worksheet per nulla impedisce di
rendere invisibile l'applicazione Excel e di visualizzare le modifiche compiute via via all'interno del
contenitore OLE.
Ad esempio, se prendiamo come riferimento il codice visto nello scorso capitolo, quello cio che permetteva
la creazione di una curva di Bzier, possiamo adattare il progetto in modo da rendere invisibile la sessione di
lavoro Excel.Application (indicata come appExcel):
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
Private Sub Form_Load()
appExcel.Visible = False
Set cartExcel = Excel.Workbooks.Add
Set foglioExcel = Excel.Worksheets.Item(1)
foglioExcel.Activate
quindi creare la curva di Bzier:
Dim pts(1 To 4, 1 To 2) As Single
pts(1, 1) = 50
pts(1, 2) = 20
pts(2, 1) = 100
pts(2, 2) = 160
pts(3, 1) = 150
pts(3, 2) = 160
pts(4, 1) = 200
pts(4, 2) = 20
foglioExcel.Shapes.AddCurve pts
e quindi collegare il foglio di lavoro (che dev'essere esistente, quindi precedentemente salvato sul disco
fisso) al contenitore OLE:
http://www.vbitalia.it/

Pagina 37

15/02/2003

OLE1.CreateLink "C:\Documenti\bezier.xls"
questo punto il contenitore OLE visualizzer la curva in questo modo:

Che cosa accade per nel caso in cui s'impostino i punti in maniera differente? Si consideri il seguente caso:
Dim pts(1 To 4, 1 To 2) As Single
pts(1, 1) = 50
pts(1, 2) = 150
pts(2, 1) = 120
pts(2, 2) = 10
pts(3, 1) = 130
pts(3, 2) = 10
pts(4, 1) = 200
pts(4, 2) = 150
foglioExcel.Shapes.AddCurve pts
dando l'avvio all'applicazione si visualizzer sempre la curva mostrata sopra mentre i punti indicati in
quest'ultimo codice ruotano la curva sull'asse orizzontale. Sar quindi necessario creare un collegamento ad
un file .xls aggiornato. E l'aggiornamento del file "bezier.xls" possibile semplicemente con un salvataggio.
Se infatti si aggiunge prima di richiamare il metodo CreateLink l'istruzione di salvataggio ed eventualmente si
compie un aggiornamento del contenuto del controllo OLE attraverso il metodo Refresh:
foglioExcel.SaveAs "bezier.xls"
OLE1.Refresh
il contenitore potr visualizzare la nuova curva, in questo modo:

http://www.vbitalia.it/

Pagina 38

15/02/2003

Riempire le celle con un solo metodo


E' importante poter avere il pieno controllo di tutti i dati presenti sul foglio di calcolo. Ad esempio si pu avere
la necessit di riempie oppure copiare il Range specificato a partire dalla cella indicata o dalle celle superiori,
fino a quelle inferiori.
Il metodo da utilizzare in questo caso FillDown. In questo modo tra le altre cose, viene evitato di ripetere
lunghi cicli per riempire le celle. Facciamo un esempio. Se da codice si volesse inserire nelle celle A1, A2,
A3, A4, A5, A6, A7, A8, A9 e A10 lo stesso valore (ad esempio il testo "cella") si dovr agire in questo modo:
inserire il testo nella prima cella, A1 e richiamare il metodo FillDown per le celle A1-A10.
Perch partire proprio dalla cella A1 visto che le gi stato assegnato il valore in modo 'manuale'? La
ragione che, come gi accennato prima, il metodo FillDown individua un Range (nel caso in esame di celle
A1,A10) la cui prima cella quella da copiare e riprodurre nelle seguenti.
Esempio:
foglioExcel.Cells(1, 1).Value = "cella"
foglioExcel.Range("A1:A10").FillDown
Mentre con la prima linea si imposta il valore della cella A1 su "cella", con la seconda si copia tale valore
nelle celle ad essa successive, ossia A2, A3, ... , A10.
Il risultato da un punto di vista grafico il seguente:

Che cosa accade se si richiama il metodo FillDown per un Range che va al di l di una singola colonna,
indicando ad esempio il seguente codice:
foglioExcel.Range("A1:B10").FillDown

http://www.vbitalia.it/

Pagina 39

15/02/2003

Specificando la linea di codice sopra si indica che le celle A2, A10 devono essere riempite col valore della
cella A1 e che le celle B2, B10 con quello della cella B1. Perci avviando l'applicazione in questo modo si
otterr lo stesso risultato di prima perch alla cella B1 non stato assegnato alcun valore. In realt le celle
B2, B10 verranno riempite ugualmente, ma col valore della cella B1 ossia "".
Per ottenere un risultato si dovr indicare espressamente il valore della cella B2, ad esempio:
foglioExcel.Cells(1, 2).Value = "colonna 2"
il risultato a questo punto sar il seguente:

naturalmente indicando "colonna 1" e non pi "cella" come valore per il Range A1,A10. Per riempire le celle
in ogni direzione e non solo in verticale, esiste una serie di metodi alternativi. Uno di essi FillLeft, che
come s'intuisce, assegna il valore della cella indicata a quelle alla sua sinistra, fino alla fine del Range.
Ad esempio, partendo dalla cella F1 ossia dalla cella di coordinate 1 (riga), 6 (colonna), si pu provare a
riempire tutte le celle alla sua sinistra, fino alla A1:
foglioExcel.Cells(1, 6).Value = "sinistra"
foglioExcel.Range("F1:A1").FillLeft
ottenendo cos il seguente effetto:

E' importante notare l'assegnazione del Range in questo secondo caso. Non possibile indicare una
selezione di celle A1,F1 anche se in altre occasioni questo potrebbe essere indifferente. La spiegazione
che, come per FillDown, la prima cella del Range indica il valore da copiare.
Indicando cos F1,A1 si copia la cella F1 in E1, D1, C1, B1 e A1, mentre indicando il Range A1,F1 si
sarebbe copiata la cella A1.
Anche in questo caso valgono le considerazioni fatte per il caso precedente: se si indica un Range di pi
colonne si dovr indicare la prima cella di ogni colonna.
Molto simile ai metodi appena analizzati FillRight che riempie le celle alla destra della cella di partenza,
entro il Range specificato.
Ad esempio se si vuole ottenere un risultato simile al precedente, partendo per dalla cella A1 e non pi
dalla F1, bisogner indicare il valore della cella A1 e richiamare il metodo FillRight specificando il Range
A1,F1 (e quindi non pi F1,A1):

http://www.vbitalia.it/

Pagina 40

15/02/2003

foglioExcel.Cells(1, 1).Value = "destra"


foglioExcel.Range("A1:F1").FillRight
Il logico risultato in questo caso il seguente:

Per terminare le considerazione su questa serie di metodi necessario analizzare anche FillUp che
assegna il valore della cella indicata a tutte le celle al di sopra di essa.
Se infatti si prende in considerazione la cella A10 e si vuole riempire il Range A10,A1 (partendo sempre
dalla cella a cui stato assegnato un valore ossia in questo caso A10):
foglioExcel.Cells(10, 1).Value = "sopra"
foglioExcel.Range("A10:A1").FillUp
Si otterr quindi un risultato molto simile al primo analizzato. In questo caso per il punto di partenza non
la cella A1 ma la cella A2 ed il verso dell'operazione non dall'alto verso il basso ma dal basso verso l'alto:

Esercizio
1) aprire ed attivare una nuova sessione, una cartella ed un foglio di calcolo Excel.
2) all'avvio dell'applicazione selezionare il primo foglio di lavoro, renderlo attivo e popolare il Range A1,F10
col testo "cella" utilizzando il minor numero di volte (ne sono sufficienti due) i metodi FillDown, FillUp,
FillRight e FillLeft.
Ecco un esempio di come pu essere impostata l'applicazione:

http://www.vbitalia.it/

Pagina 41

15/02/2003

L'oggetto Scenario e l'insieme Scenarios


L'oggetto Scenario, facente parte dell'insieme Scenarios e legato all'oggetto WorkSheet rappresenta uno
scenario in un foglio di lavoro, ovvero un gruppo di valori detti celle variabili.
Uno Scenario un insieme di valori che possono essere sostituiti automaticamente all'interno del foglio di
lavoro e rappresenta un utile strumento (denominato "metodo con analisi what-if") per prevedere i possibili
risultati di un foglio di lavoro: si pu ad esempio considerare diversi gruppi di celle (pi Range) di un foglio di
lavoro, e quindi considerare ipotesi differenti passando a tali scenari per visualizzare i diversi risultati.
L'esempio riportato dalla guida in linea di MS Excel esplicativo:
"[] Se ad esempio si desidera creare un bilancio, ma le entrate non sono certe, possibile definire diversi
valori delle entrate e passare da uno scenario all'altro per effettuare un'analisi per ipotesi.

possibile denominare lo scenario dell'esempio precedente "Caso peggiore", impostare il valore nella cella
B1 a L. 5.000.000 e il valore nella cella B2 a L. 1.320.000. Il nome del secondo scenario potrebbe essere
"Caso migliore", il valore in B1 L. 15.000.000 e il valore in B2 L. 2.600.000. []"
All'interno dell'insieme Scenarios (definito oggetto-insieme in quanto anch'esso rappresenta un'oggetto a s
stante), ogni Scenario dotato di indice.
Per indicare cos un particolare Scenario si indicher:
Scenarios(indice_scenario)
dove indice_scenario rappresenta proprio l'indice dello Scenario.
Per poter creare un nuovo Scenario per il foglio di lavoro (foglioExcel) correntemente utilizzato ed
aggiungerlo col relativo indice all'insieme Scenarios, si utilizza il metodo Add, la cui sintassi la seguente:
FoglioExcel.Scenarios.Add(nome, celle_variabili, valori, commento, bloccato,
nascosto)
dove nome indica naturalmente il nome in formato String che si desidera assegnare al nuovo scenario (il
nome dello Scenario deve essere unico, quindi se si tenta di creare uno Scenario con un nome gi in uso si
avr un errore) celle_variabili un valore di tipo Variant che indica il Range ossia il gruppo di celle da
associare all'oggetto Scenario, valori indica invece una matrice che contenga i valori da assegnare alle celle
del Range indicato.
http://www.vbitalia.it/

Pagina 42

15/02/2003

Se valori viene omesso allora si utilizzeranno i valori correnti contenuti correntemente all'interno delle celle
indicate.
Commento invece una dato di tipo String che indica un commento personalizzato che possibile
assegnare al particolare Scenario di nuova creazione.
Se viene indicato un commento valido, quando viene aggiunto un nuovo scenario il nome dell'autore e la
data vengono automaticamente aggiunti all'inizio del relativo commento.
Bloccato indica se lo Scenario verr bloccato (True) o meno (False) per permettere o impedire a qualsiasi
utente del foglio di lavoro di modificare i valori dello Scenario stesso.
Infine nascosto indica se lo Scenario verr mantenuto invisibile (True) o meno (False).
Per comprendere l'utilit del metodo si consideri il seguente esempio:
in un foglio di calcolo sono stati immessi i valori relativi a diversi accessori di computer:

La tabella sopra pu essere generata nel seguente modo:


With foglioExcel
.Cells(1, 1).Value
.Cells(2, 1).Value
.Cells(3, 1).Value
.Cells(4, 1).Value
.Cells(5, 1).Value
.Cells(6, 1).Value
.Cells(7, 1).Value
End With

=
=
=
=
=
=
=

"Componente": .Cells(1, 2).Value = "Prezzo in "


"RAM 128MB": .Cells(2, 2).Value = "78"
"RAM 512MB": .Cells(3, 2).Value = "258"
"RAM 256MB": .Cells(4, 2).Value = "141"
"HD 20GB": .Cells(5, 2).Value = "165"
"CD-ROM 48X": .Cells(6, 2).Value = "75"
"Monitor 17'1": .Cells(7, 2).Value = "240"

Siccome questi sono i dati originali, salviamoli come primo scenario in quanto successivamente le celle
verranno modificate automaticamente. Si applicher dunque il metodo Add alle celle dei valori numerici
ossia B2-B7 assegnando allo Scenario il nome "Ipotesi originale" ed il commento "Questo lo scenario
originale":
foglioExcel.Scenarios.Add "Ipotesi originale", foglioExcel.Range("B2:B7"), _
"Questo lo scenario originale.", True
Con il valore True si indica il blocco dello scenario da eventuali modifiche.
Il codice appena visto corrisponde all'esecuzione della finestra Excel "Aggiungi scenario", raggiungibile dal
menu Strumenti >> Scenari:

http://www.vbitalia.it/

Pagina 43

15/02/2003

Adesso possibile fare una prima prova contando gli Scenari presenti nell'insieme Scenarios utilizzando
cos il metodo Count dell'insieme-oggetto Scenarios:
MsgBox foglioExcel.Scenarios.Count
Il risultato sar naturalmente 1.
Ora utilizzando le propriet Name, Comment, Index, Hidden e Locked si pu determinare le propriet di tale
Scenario, propriet che erano state impostate al momento della creazione:
Totale_Scenari = foglioExcel.Scenarios.Count
For ii = 1 To Totale_Scenari
MsgBox "Nome: " & foglioExcel.Scenarios(ii).Name & vbCrLf & _
"Commento: " & foglioExcel.Scenarios(ii).Comment & vbCrLf & _
"Nascosto? " & foglioExcel.Scenarios(ii).Hidden & vbCrLf & _
"Indice: " & foglioExcel.Scenarios(ii).Index & vbCrLf & _
"Bloccato? " & foglioExcel.Scenarios(ii).Locked & vbCrLf
Next ii

Queste sono solo alcune delle propriet di cui l'oggetto Scenario dispone, le uniche che possano essere
visualizzate in una finestra di messaggio. In aggiunta esistono ulteriori propriet tra cui le pi significative
sono: ChangingCells che come visto poco fa restituisce un oggetto Range con le celle variabili in esso
contenute, la propriet Values che restituisce una matrice contenente i valori correnti delle celle variabili
dello scenario, la propriet Creator (che comunque sarebbe stato possibile visualizzare nella finestra di
messaggio) che restituisce l'applicazione che ha creato l'oggetto, sottoforma di intero a 32 bit. Ad esempio
se l'oggetto stato creato da MS Excel come nel caso preso in esame, si otterr stringa XCEL,
corrispondente al valore esadecimale 5843454C.
http://www.vbitalia.it/

Pagina 44

15/02/2003

Si provi adesso a creare un secondo Scenario utilizzando valori differenti da quelli indicati poco fa come
originali ad esempio valori 75, 250, 153, 82, 260 come componenti di una matrice di valori, ed associare al
nuovo Scenario il nome "Ipotesi 1" ed il commento "Questa la prima ipotesi".
Il valore di blocco dello Scenario sar anche questa volta impostato su True:
foglioExcel.Scenarios.Add "Ipotesi 1", foglioExcel.Range("B2:B7"), _
Array(75, 250, 153, 82, 260), "Questo la prima ipotesi.", True
Si noter che stato utilizzato lo stesso Range dello Scenario originale (B2:B7) per permettere ai valori di
occupare le caselle dove nell'ipotesi originale erano contenuti i prezzi in euro. Una seconda cosa da notare
che gli elementi della matrice sono 5 e non 6 come i componenti nella lista perch si suppone che ad
esempio il costo dell'ultimo elemento, il monitor, sia certo.
Ora si riapra nel foglio di lavoro la finestra "Gestione scenari": ciccando su "Riepilogo" si otterr la lista
degli scenari creati:

Si crei un terzo scenario inserendo questa volta i valori 60, 278, 139, 64, 250, inclusi sempre in una matrice
di valori ed assegnandogli il nome "Ipotesi 2", il commento "Questa la seconda ipotesi" e impostando la
propriet Locked su True:
foglioExcel.Scenarios.Add "Ipotesi 2", foglioExcel.Range("B2:B7"), _
Array(60, 278, 139, 64, 250), "Questo la seconda ipotesi.", True
Ora si pu passare agilmente da uno Scenario all'altro semplicemente utilizzando il metodo Show
dell'oggetto Scenarios ed indicando l'indice dello Scenario da visualizzare (1 per "Ipotesi originale", 2 per
"Ipotesi 1" e 3 per "Ipotesi 2").
Se si inserisce nel progetto un oggetto CommandButton per ogni Scenario si pu passare da uno Scenario
all'altro con la pressione del tasto corrispondente:
Private Sub Command1_Click()
foglioExcel.Scenarios(1).Show
End Sub
Private Sub Command2_Click()
foglioExcel.Scenarios(2).Show
End Sub
Private Sub Command3_Click()
foglioExcel.Scenarios(3).Show
End Sub

http://www.vbitalia.it/

Pagina 45

15/02/2003

Questo lo Scenario visualizzato alla pressione di Command1:

questo lo Scenario visualizzato premendo Command2:

e questo lo Scenario visualizzato premendo Command3:

http://www.vbitalia.it/

Pagina 46

15/02/2003

Per finire si pu creare un nuovo foglio di lavoro contenente un rapporto di riepilogo degli scenari presenti
nel foglio di lavoro corrente attraverso il metodo CreateSummary. Si inserisca sul piano un quarto controllo
CommandButton:

La prima colonna indica le celle variabili, la seconda i valori correntemente visualizzati sul foglio di lavoro
mentre tutte le successive rappresentano i valori contenuti nei rispettivi Scenari.

L'oggetto Area e l'insieme Areas


Fa parte dell'oggetto Range, ossia di un gruppo di celle prese secondo una logica qualsiasi, anche l'oggetto
Area. Per questo motivo quando ci si riferisce a tale oggetto e lo si richiama, verr restituito sempre un
Range.
La definizione di Area non particolarmente intuitiva se non se ne illustra la funzione mediante un esempio:
s'immagini quindi di avere un foglio di calcolo, anche senza alcun valore inserito nelle celle.
Selezionando un gruppo di celle si otterr un Range, come gi visto in precedenza. Nulla vieta per di
considerare non soltanto una serie di celle contigue, ma pi gruppi separati selezionabili
contemporaneamente mantenendo premuto il tasto Ctrl nel momento della selezione.
L'unione di questi due gruppi forma un solo oggetto Range, ma ognuno di essi si pu individuare come
singolo oggetto Area.
La figura sottostante mostra l'esempio di due Areas che costituiscono un oggetto Range:

http://www.vbitalia.it/

Pagina 47

15/02/2003

A questo punto, per verificare l'effettiva presenza di due aree, si pu prevedere nel progetto una finestra di
messaggio che alla pressione di un pulsante mostri il numero di oggetti Area presenti sul foglio di calcolo:
Private Sub Command1_Click()
MsgBox appExcel.Selection.Areas.Count
End Sub
Notare che Areas stato legato all'oggetto Selection e non esplicitamente a Range. Questo per il semplice
motivo che anche Selection costituisce un Range essendo il gruppo di celle (contigue o separate)
selezionato dall'utente.
Inoltre si sar notato che anche in questo caso il conto delle Aree presenti in un Range di selezione viene
effettuata attraverso la propriet Count.
Essendo ogni Area indipendente, se la si considera al di fuori dell'oggetto Range a cui appartiene,
possibile individuarla in modo univoco attraverso un indice, assegnatole in modo automatico al momento
della creazione.
Riprendendo quindi la figura vista sopra, il gruppo di celle A1-B4 sar individuato dall'indice 1 mentre il
gruppo E1-E6 dall'indice 2, secondo una numerazione crescente che parte dal valore 1.
La possibilit di individuare ciascuna Area come oggetto a s stante rappresenta un enorme vantaggio in
quanto consente di considerare ogni Area come un singolo oggetto Range.
Se ne possono applicare pertanto i metodi e le propriet legate a tale oggetto.
Ad esempio, si consideri una selezione formata da tre aree non contigue tra loro come in figura:

Di ognuna di queste aree si vuole determinare il numero di celle di cui si compone, alla pressione di un
pulsante CommandButton.
Per sviluppare questo progetto sar necessario innanzitutto eseguire l'operazione per tutti gli oggetti Area
presenti sul foglio di calcolo. A tale scopo si utilizzer allora la propriet Count citata poc'anzi:
Private Sub Command1_Click()
For i = 1 To appExcel.Selection.Areas.Count
'
'
'
Next i
http://www.vbitalia.it/

Pagina 48

15/02/2003

End Sub
Il principio col quale scrivere la linea di codice che manca al blocco qui sopra molto semplice: si sfrutter la
propriet Count di Cells che fa riferimento al numero di celle presenti in un Range. E siccome un'Area
costituisce proprio un Range, non si verificheranno problemi di propriet non supportate dall'oggetto.
La linea da inserire al posto dei commenti la seguente:
MsgBox appExcel.Selection.Areas.Item(i).Cells.Count
In modo analogo, aumentando il numero delle operazioni da eseguire sulla selezione, possibile
determinare per ciascuna area il valore di ciascuna cella.
In questo caso per, oltre al ciclo che va a coprire tutte le aree esistenti, deve esserne previsto un secondo
che vada a coprire tutte le celle all'interno di ogni Area.
Il codice mostrato di seguito esegue tale operazione:
For i = 1 To appExcel.Selection.Areas.Count
For ii = 1 To appExcel.Selection.Areas.Item(i).Cells.Count
MsgBox appExcel.Selection.Areas.Item(i).Cells(ii).Value
Next ii
Next i

http://www.vbitalia.it/

Pagina 49

15/02/2003

Riferimenti
Questo e-book stato creato raggruppando le seguenti risorse:
http://digilander.libero.it/VBItalia/Lezioni/excel1.htm
http://digilander.libero.it/VBItalia/Lezioni/excel2.htm
http://digilander.libero.it/VBItalia/Lezioni/excel3.htm
http://digilander.libero.it/VBItalia/Lezioni/excel4.htm
http://digilander.libero.it/VBItalia/Lezioni/excel5.htm
http://digilander.libero.it/VBItalia/Lezioni/excel6.htm
http://digilander.libero.it/VBItalia/Lezioni/excel7.htm
http://digilander.libero.it/VBItalia/Lezioni/excel8.htm
http://digilander.libero.it/VBItalia/Lezioni/excel9.htm
http://digilander.libero.it/VBItalia/Lezioni/excel10.htm
http://digilander.libero.it/VBItalia/Lezioni/excel11.htm
http://digilander.libero.it/VBItalia/Lezioni/excel12.htm
http://www.vbitalia.it/articoli/excel13.asp?lez=excel13
http://www.vbitalia.it/articoli/excel14.asp?lez=excel14

http://www.vbitalia.it/

Pagina 50

15/02/2003

Viaggio attraverso la
conoscenza del pi diffuso
linguaggio di creazione macro

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Excel Visual Basic per applicazioni


Autore:
Enrico Cannoni
Prima edizione Corso on.line - Novembre 2001
Seconda edizione- Versione CD-ROM - Dicembre 2001
Copyright 2001 Manuali Net
U.R.L. www.manuali.net/
Copertina e progetto grafico di Enrico Cannoni
Ogni cura stata posta nella raccolta e nella verifica della documentazione
contenuta in questo corso. Tuttavia n lautore, n Manuali Net possono
assumersi alcuna responsabilit derivanti dallutilizzo della stesa.
Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni
internazionali.
Nessuna parte di questo corso pu essere riprodotta con sistemi elettronici,
meccanici o altri, senza lautorizzazione scritta dellEditore.
Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle
rispettive case produttrici.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Sommario
Sommario _________________________________________________________ 3
Presentazione ______________________________________________________ 8
Informazioni preliminari_____________________________________________ 9
Cosa bisogna sapere per affrontare questo corso? _________________________ 9
Versioni di Excel __________________________________________________ 9
Convenzioni utilizzate ______________________________________________ 9
Contenuto del corso ________________________________________________ 10
PARTE 1 Introduzione alle macro _______________________________________ 14
Lezione I - Il registratore di macro ___________________________________ 15
Prepariamoci a registrare una macro __________________________________ 15
Iniziamo a registrare_______________________________________________ 16
Il registratore partito _____________________________________________ 17
Provare la macro _________________________________________________ 17
Lezione II Riferimenti relativi ______________________________________ 19
Registrare una macro con i riferimenti relativi __________________________ 19
Verificare una macro con i riferimenti relativi __________________________ 20
Macro o Procedura ________________________________________________ 21
Allarme virus ____________________________________________________ 21
Lezione III - Macro di navigazione ___________________________________ 22
Navigare tra fogli _________________________________________________ 22
Scorciatoie da tastiera _____________________________________________ 23
I pulsanti________________________________________________________ 23
Raccolta di istruzioni per la gestione dei pulsanti ________________________ 24
Ping Pong _______________________________________________________ 25
Lezione IV - Macro universali _______________________________________ 26
Cartella macro personale ___________________________________________ 26
Personal.xls _____________________________________________________ 27
Lezione V Barre degli strumenti ____________________________________ 29
Macro per visualizzare le barre ____________________________________ 29
Una nuova barra degli strumenti _____________________________________ 31
Rifinire i pulsanti _________________________________________________ 32
Lezione VI Moduli, la terra di nessuno_______________________________ 34
Intervallo dati denominato __________________________________________ 34
Casella combinata ________________________________________________ 35
Casella di controllo _______________________________________________ 37
Casella di selezione _______________________________________________ 38

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione VII Un modello valutario ___________________________________ 40


Euroconvert _____________________________________________________ 40
Predisporre la casella combinata _____________________________________ 41
La funzione Indice ________________________________________________ 42
Calcolare lEuro __________________________________________________ 43
Vincolare la quantit ______________________________________________ 43
Gestire gli eccessi_________________________________________________ 44
Considerazioni ___________________________________________________ 45
PARTE 2 Primi passi nel VBA __________________________________________ 46
Lezione VIII LEditor di VBA ______________________________________ 47
Aprire lEditor di VB ______________________________________________ 47
Le finestre dellEditor di VB ________________________________________ 48
La finestra Progetto _______________________________________________ 48
La finestra delle Propriet __________________________________________ 49
La finestra del Codice _____________________________________________ 49
Lezione IX Il codice delle macro ____________________________________ 51
Regole generali___________________________________________________ 51
Analizzare il codice di Macro1 ______________________________________ 52
Analizzare il codice della macro RiferimentiRelativi _____________________ 53
Modificare il contenuto di una macro _________________________________ 54
I nomi delle procedure _____________________________________________ 55
Identare il codice _________________________________________________ 55
Le maiuscole ____________________________________________________ 55
Lezione X Operare delle scelte con IF______________________________ 56
Il file Comuni ____________________________________________________ 56
Scomporre i problemi______________________________________________ 56
Registrare la colorazione di una cella _________________________________ 57
Esaminare il codice della macro Colorare ______________________________ 58
Lenunciato Whit _________________________________________________ 59
Eliminare codice superfluo _________________________________________ 59
Colorare e scendere _______________________________________________ 60
SeAllora ______________________________________________________ 60
Lezione XI Ripetere le azioni _______________________________________ 62
Pulsanti alternativi ________________________________________________ 62
Rinominare un modulo_____________________________________________ 62
I cicli___________________________________________________________ 63
Do WhileLoop _________________________________________________ 63
Do Until Loop _________________________________________________ 64
Almeno una volta _______________________________________________ 65

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione XII - Le variabili ___________________________________________ 66


Definizione di variabile ____________________________________________ 66
Non dichiarare le variabili __________________________________________ 66
Dichiarare le variabili______________________________________________ 66
Denominazione di variabili _________________________________________ 67
Tipo di dati delle variabili __________________________________________ 67
La notazione scientifica ____________________________________________ 68
Dichiarazione delle variabili e del tipo ________________________________ 68
Le costanti ______________________________________________________ 69
Portata delle variabili ______________________________________________ 69
Dichiarare le costanti ______________________________________________ 69
Lezione XIII Comunicazioni allutente_______________________________ 70
Una semplice finestra di messaggio___________________________________ 70
Gli argomenti di MsgBox___________________________________________ 70
Lezione XIV Interazione con lutente ________________________________ 74
Finestra input ____________________________________________________ 74
Loutput verso una cella____________________________________________ 75
Ancora sugli argomenti ____________________________________________ 76
Metodo InputBox _________________________________________________ 76
A capo _________________________________________________________ 77
Lezione XV Procedura decisionale __________________________________ 78
Variabili a portata di modulo ________________________________________ 78
Inserire una procedura dentro una procedura____________________________ 79
Programmazione strutturata _________________________________________ 79
Decolorare ______________________________________________________ 80
PARTE 3 Addentrarsi nel VBA _________________________________________ 81
Lezione XVI Trova _______________________________________________ 82
Pulire lEditor di VB ______________________________________________ 82
Una macro per trovare _____________________________________________ 83
La guida in linea__________________________________________________ 84
Lezione XVII InputBox e Trova ____________________________________ 86
Una variabile contro la rigidit ______________________________________ 86
Adattare una macro preesistente _____________________________________ 86
Una immagine come pulsante _______________________________________ 87

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione XVIII Gestione degli errori _________________________________ 88


Errori di linguaggio o di sintassi _____________________________________ 88
Errori di runtime__________________________________________________ 88
Errori logici _____________________________________________________ 88
Il primo errore ___________________________________________________ 89
Ancora logica ____________________________________________________ 89
Un errore da runtime ______________________________________________ 90
Un caso ambiguo _________________________________________________ 90
Un errore ortografico ____________________________________________ 91
Un errore spaziale_______________________________________________ 91
Non finiscono mai ________________________________________________ 91
Lezione XIX Debug _______________________________________________ 92
Punti di interruzione_______________________________________________ 92
Effettuare il debug ________________________________________________ 92
Intercettare gli errori di runtime ______________________________________ 94
Lezione XX I forms _______________________________________________ 95
Il primo form ____________________________________________________ 95
Forms e pulsanti __________________________________________________ 96
Personalizzare il pulsante tramite la finestra delle Propriet. _______________ 96
Evento clic ______________________________________________________ 97
Pubbliche e Private________________________________________________ 98
Lezione XXI Forms: atto II ________________________________________ 99
Dare vita ad un Form ____________________________________________ 99
Chiudere un Form _______________________________________________ 100
Aggiungere un altro pulsante _______________________________________ 100
Duplicare i pulsanti ______________________________________________ 101
Lezione XXII Allora Se___________________________________________ 102
Chiedere conferma _______________________________________________ 102
Scegliere un colore _______________________________________________ 103
I Pulsanti di opzione______________________________________________ 103
IfThenElse IfElseEnd If ___________________________________ 104
Case __________________________________________________________ 106
Lezione XXIII Ciclo For Next ___________________________________ 107
Ricavare dati da una cella _________________________________________ 108
Errore di Overflow _______________________________________________ 109
Proteggere e sproteggere __________________________________________ 109
Lezione XXIV Nidificare For Next _______________________________ 111
Il codice di ordinamento___________________________________________ 111

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Parte 4 Controllare Excel _____________________________________________ 113


Lezione XXV Le Function ________________________________________ 114
Tipi di routine___________________________________________________ 114
Creare una nuova funzione per Excel ________________________________ 114
Analisi del problema _____________________________________________ 115
Come trovare limporto netto_______________________________________ 115
CompensoNetto _________________________________________________ 116
Lezione XXVI Manipolare i dati ___________________________________ 118
Costruire lesempio ______________________________________________ 118
Funzioni Len e Left ______________________________________________ 119
Ottimizzare _____________________________________________________ 120
Passare i dati ad un nuovo foglio ____________________________________ 121
Pulire solo se _________________________________________________ 123
Lezione XXVII Auto_Apri_Chiudi _________________________________ 124
Auto_Apri _____________________________________________________ 124
Auto_Chiudi ____________________________________________________ 125
Un po di storia __________________________________________________ 125
Istruzioni varie __________________________________________________ 125
Esempi di Auto_Apri e Auto_Chiudi_________________________________ 126
Proteggere _____________________________________________________ 127
Lezione XXVIII I macro virus _____________________________________ 128
Come difendersi _________________________________________________ 128
Difesa artigianale ________________________________________________ 129
Appendici __________________________________________________________ 130
Unanimazione con Excel __________________________________________ 131
Il codice _______________________________________________________ 132
Controllare la risoluzione dello schermo ______________________________ 134
Impostazioni ____________________________________________________ 134
Listato_________________________________________________________ 135
Il commento del codice ___________________________________________ 136
File allegato ______________________________________________________ 138
Conclusioni ______________________________________________________ 139
Indice rapido_____________________________________________________ 140

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Presentazione
A partire dalla lontana versione 5.0 (1993), Excel primo fra i programmi
della Microsoft, introdusse un nuovo strumento di automatizzazione, il
Visual Basic per Applicazioni.
Il VBA (acronimo di Visual Basic for Application) un vero e proprio
linguaggio di programmazione, che appartiene alla famiglia del Visual
Basic e ne possiede identica sintassi e struttura, ma a differenza di
questultimo contiene degli oggetti peculiari di un foglio elettronico.
Grazie al connubio fra Excel e il VBA stata data la possibilit, ad un gran
numero di utenti, di creare potenti sistemi informativi completamente
automatizzati, prerogativa sino a non molto tempo fa riservata ai soli
programmatori professionisti.
La strategia della Microsoft, a partire da Office 97, ha introdotto il VBA in
tutte le sue applicazioni, in modo tale da diventare un unico linguaggio di
programmazione, nella specificit dei rispettivi ambienti di lavoro. Ci ha
favorito al massimo grado quella sinergia fra programmi, quali Excel ed
Access per esempio, da tanti invocata.
Nonostante tutte queste premesse favorevoli, in Italia il VBA non ha
incontrato il successo che ci si poteva attendere, come ad esempio ha avuto
negli Stati Uniti. Soprassedendo sulle varie ragioni culturali ed economiche,
la scarsa diffusione del VBA probabilmente da ricercare nelle difficolt
che gli utenti incontrano nellapprendere la sintassi di un linguaggio di
programmazione.
Il primo passo che occorre intraprendere per rendere la curva di
apprendimento del VBA meno erta proprio quella di avvicinarvisi dal
versante di Excel, che grazie al suo Registratore di Macro rende tutto
molto pi semplice.
Il secondo passo lo compie questo corso, durante il quale si cercher di
accompagnare gli utenti con esempi pratici e concreti, senza avventurarsi in
dissertazioni e finezze teoriche, sicuramente fondamentali per un
programmatore professionista, ma non indispensabili per un utente evoluto
che vuole essere subito produttivo.
Insomma quello che vi trovate innanzi un corso di programmazione per
non programmatori grazie al quale sarete in grado di costruire applicazioni
molto potenti.
Novembre 2001

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Informazioni preliminari

Cosa bisogna sapere per affrontare questo corso?


Per affrontare proficuamente lapprendimento del VBA non necessario
avere avuto precedenti esperienze di programmazione, ma sicuramente
indispensabile conoscere bene Excel.
Versioni di Excel
Pur essendo le immagini di corredo alle lezioni tratte da Excel 10 (Office
XP), si possono utilizzare tranquillamente anche le relase 9 (Office 2000) e
8 (Office 97). Pi problematica si presenta la situazione per chi ancora
dispone di Excel 7 (Office 95), o addirittura la mitica versione 5 per
Windows 3.1.
Naturalmente non assolutamente possibile utilizzare degli autentici fossili
tipo Excel 4.
Convenzioni utilizzate
Esempio di convenzione
Debug
SaltaErrore
Do While ActiveCell <>

CTRL+C
Nota: Non fate

Descrizione
Le parole in corsivo evidenziano
elementi di Excel o del VBA.
Il grassetto indica i nomi attribuiti alle
procedure, alle variabili, ai fogli di
lavoro e alle celle.
Il font Verdana con rientro sporgente
evidenzia codice di esempio.
Il testo bordato indica tasti,
combinazioni di tasti o pulsanti.
Testo su sfondo grigio, indica note o
approfondimenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

10

Contenuto del corso

INTRODUZIONE ALLE MACRO


LEZIONE I Il registratore di macro
Prendere confidenza con il registratore di macro e verificarne il
funzionamento.
LEZIONE II Riferimenti relativi
Registrare ed eseguire una macro. Apprendere la differenza fra macro con
riferimenti assoluti e macro con riferimenti relativi.
LEZIONE III Macro di navigazione
Navigare allinterno di un foglio e fra fogli. Associare le macro registrate a
dei pulsanti.
LEZIONE IV Macro universali
Rendere le macro sempre disponibili. I segreti di Personal.xls.
LEZIONE V Barre degli strumenti
Registrare una serie di azioni e associarle ai pulsanti di una nuova Barra
degli strumenti.
LEZIONE VI Moduli, la terra di nessuno
I controlli della Barra degli strumenti Moduli. Esaminare il funzionamento
della Casella combinata, della Casella di controllo e della Casella di
selezione: controlli direttamente disponibili nel foglio di lavoro.
LEZIONE VII Un modello valutario
Utilizzando gli strumenti presentati nella precedente lezione e una buona
conoscenza del foglio elettronico costruiremo un programma di conversione
di alcune valute Europee in Euro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

11

PRIMI PASSI NEL VBA


LEZIONE VIII LEditor di VBA
Descrizione dellambiente di programmazione.
LEZIONE IX Il codice delle macro
Leggere, analizzare e modificare il codice della macro precedentemente
registrate.
LEZIONE X Operare delle scelte con IfThen
Scrivere routine che verificando determinate condizioni eseguono
operazioni diverse a seconda del risultato.
LEZIONE XI Eseguire il ciclo Do WhileLoop
Le strutture a ciclo consentano di eseguire ripetutamente una serie di
istruzioni.
LEZIONE XII Le variabili
Cosa sono le variabili. Tipi di variabili. Dichiarare le variabili.
LEZIONE XIII Comunicazioni allutente
Usare MsgBox (Finestra messaggio).
LEZIONE XIV Interazione con lutente
Usare InputBox (Finestra di input)
LEZIONE XV Procedura decisionale
Usando InputBox e MsgBox creare una procedura che agisce secondo le
decisioni prese dallutente.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

12

ADDENTRARSI NEL VBA


LEZIONE XVI Trova
Implementare con il VBA una procedura di ricerca.
LEZIONE XVII InputBox e Trova
Rendere pi flessibile la ricerca di un campo sfruttando le potenzialit di
InputBox.
LEZIONE XVIII Gestire gli errori
Imparare ad intercettare gli errori per rendere le procedure pi professionali.
LEZIONE XIX Debug
Esaminare una procedura durante lesecuzione passo passo per verificarne il
funzionamento.
LEZIONE XX I Forms
Costruire una Finestra di dialogo.
LEZIONE XXI Forms. Atto II
Approfondire le modalit di gestione di un form.
LEZIONE XXII Allora Se
Potenziare le procedure precedentemente create con la struttura di controllo
IfThen...ElseIfElseEnd If e i Pulsanti di opzione. Ottimizzare con la
struttura di controllo Case.
LEZIONE XXIII Ciclo ForNext
For, routine da utilizzare quando si a conoscenza del numero di volte che
le istruzioni di un ciclo vanno ripetute. Il suo impiego facilita la creazione
di piccole utilit. Passare ad una procedura il valore contenuto in una cella.
LEZIONE XXIV Nidificare ForNext
Inserire un ciclo ForNext allinterno di un altro ciclo ForNext, aumenta
enormemente le nostre possibilit in Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

13

CONTROLLARE EXCEL
LEZIONE XXV Le Function
Differenze fra Sub e Function. Con lo strumento Function possibile creare
nuove funzioni per il foglio di lavoro Excel.
LEZIONE XXVI Manipolare i dati
Costruzione di una procedura che ripulisce il contenuto delle singole celle
di una colonna da caratteri superflui, che poi copia in un altro foglio di
lavoro. Sar introdotto luso delle funzioni interne Len e Left..
LEZIONE XXVII Auto_Apri_Chiudi
Con lausilio di particolari macro possibile eseguire delle routine in fase
di avvio e di chiusura di Excel. Piccola carrellata di routine adibite a
potenziare gli automatismi delle nostre procedure.
LEZIONE XXVIII I macro virus
Come difendersi dai macro virus
Appendice
Unanimazione per misurare le prestazioni del PC.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

14

PARTE 1
Introduzione alle macro
In questa prima fase del corso impareremo ad usare il Registratore di
macro. Si tratta di uno strumento piuttosto limitato, ma il suo uso
rappresenta un buon trampolino di lancio per imparare a programmare con
il VBA.
Affrontando lo studio della cartella Personal.xls impareremo a rendere
globali le nostre macro.
Infine, grazie al sapiente utilizzo dei controlli offerti dalla barra degli
strumenti Moduli, impareremo a creare applicazioni sorprendenti senza
usare una sola parola di codice.

Al corso allegato un file di Excel, di nome Comuni, contenente, oltre ai


soliti tre fogli vuoti, un foglio denominato Comuni, contenente lelenco di
tutti i comuni della provincia di Torino.
A partire dalla nona lezione dovrete utilizzare i dati presenti nel foglio di
lavoro citato nel precedente paragrafo. E comunque consigliato usare la
cartella di lavoro Comuni sin dalla prima lezione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

15

Lezione I - Il registratore di macro


Il Registratore di Macro un mezzo per memorizzare e riutilizzare le
azioni compiute con la tastiera e/o con il mouse, permettendo cos di creare
delle procedure automatizzate chiamate Macro. Le Macro eseguono
sequenze di azioni molto pi rapidamente di noi.
Prepariamoci a registrare una macro
Prima di iniziare la registrazione, dobbiamo pianificare le azioni che
vorremo successivamente far eseguire alla macro, poich eventuali
ripensamenti che dovessero sopraggiungere durante la registrazione saranno
impietosamente memorizzati e quindi riprodotti dalla macro.
Noi, ad esempio, vogliamo grassettare le intestazioni della tabella dati
riportata nellimmagine sottostante.

Per effettuate loperazione voluta dovremo spostarci dalla cella A1 alla


cella A3, selezionare lintervallo A3:F3 per poi cliccare sul comando
grassetta. Certo in questo caso le operazioni da effettuare sono molto
semplici, ma se la registrazione da fare ci richiedesse un buon numero di
azioni, sarebbe consigliabile effettuare una o pi prove senza avviare il
registratore. La possibilit di compiere degli errori molto alta.

NOTA: importante porre molta attenzione nelle azioni che registreremo, poich
anche la pi piccola variazione pu creare ripercussioni assolutamente
imprevedibili.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

16

Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e
cliccare sulla voce Registra nuova macro .

Sar visualizzata una finestra di dialogo denominata Registra Macro.

In questa prima registrazione non ci soffermeremo sulle opzioni che ci


vengono offerte, lasceremo invariato anche il poco fantasioso nome di
default Macro1.
Cliccare su OK per confermare linizio della registrazione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

17

Il registratore partito
In apparenza non sembra essere successo niente se escludiamo la presenza
di un nuovo pulsante nellarea di lavoro.
Ad essere precisi il pulsante una barra degli strumenti che prende il nome
di Interrompi registrazione e serve appunto a bloccare la registrazione della
macro.
Iniziamo ad eseguire le operazioni precedentemente provate: spostarsi dalla
cella A1 alla cella A3, selezionare lintervallo A3:F3 per poi cliccare sul
comando grassetta. Infine deselezioniamo attivando la cella A2.
Finito il nostro compito stoppiamo la registrazione cliccando
sullapposito pulsante.

NOTA: Quando volete fermare la registrazione fate attenzione a non posizionarvi


sulla X, poich in tal caso chiudereste la barra degli strumenti Interrompi
registrazione, lasciando il registratore di macro beatamente acceso.

Provare la macro
Adesso verifichiamo il nostro operato.
Propedeuticamente selezioniamo nuovamente lintervallo A3:F3 e togliamo
la grassettatura, altrimenti risulter difficile valutare leffetto della nostra
prima macro

Quindi dal menu Strumenti\Macro


scegliamo la voce Macro .

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

18

Sar visualizzata la finestra di dialogo Macro, al momento ospitante la sola


Macro1.
Cliccando sul pulsante Esegui la macro sar avviata

e come dincanto le intestazioni della tabella saranno grassettate.


Proviamo a ripetere lesecuzione della macro, spostandoci per, prima di
avviarla, nella cella C5 e togliendo la grassettatura.
Anche in questo caso la macro viene eseguita correttamente. Ma allora
perch abbiamo fatto questa prova?
Portate pazienza, con la prossima registrazione scopriremo larcano.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

19

Lezione II Riferimenti relativi

Registrare una macro con i riferimenti relativi


Iniziamo a registrare una seconda macro, avendo avuto cura di eliminare
leventuale grassettatura dalle intestazioni della tabella e di posizionarsi
sulla cella A1.
Dal menu Strumenti scegliere Macro per espandere una ulteriore
tendina e cliccare sulla voce Registra nuova macro .
Questa volta sostituiamo il nome
predefinito Macro2 con il nuovo nome
RiferimentiRelativi.
Quindi clicchiamo su OK per dare inizio alla nuova registrazione.
Individuiamo nellarea di lavoro la barra degli strumenti
Interrompi registrazione e prima di effettuare una
qualsiasi azione cliccare sul pulsante Riferimento
relativo.
Spostarsi dalla cella A1 alla cella A3, selezionare lintervallo A3:F3
per poi cliccare sul comando grassetta
Infine deselezionare attivando la cella A2.

Interrompiamo la registrazione cliccando sullapposito pulsante.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

20

Verificare una macro con i riferimenti relativi


Posizioniamoci sulla cella A1 e dal menu Strumenti\Macro
clicchiamo sulla voce Macro per visualizzare la finestra di dialogo
Macro.
Selezioniamo la nuova macro RiferimentiRelativi e clicchiamo sul
pulsante Esegui.

Anche questa volta la macro eseguir il suo lavoro correttamente. Ma


adesso proviamo a rieseguire RiferimentiRelativi posizionando la cella
attiva in C5. Ricordiamoci di togliere preventivamente la grassettatura dalle
intestazioni.
Constaterete che in questo caso la macro non ha funzionato. Vediamo di
capire il perch. La prima macro, Macro1, funziona sempre
indipendentemente dalla cella attiva al momento della sua esecuzione,
poich una macro con riferimenti assoluti; essa sa che deve iniziare in
ogni caso il suo lavoro dalla cella A3.
Invece RiferimentiRelativi, come dice il suo nome una macro con
riferimenti relativi. Durante la registrazione ci siamo spostati dalla cella A1
alla cella A3, cio siamo scesi in basso di due celle. Quindi la nostra macro,
essendo relativa, non ha registrato lo spostamento sulla cella A3, bens ha
registrato uno spostamento in basso di due celle. Pertanto essa
strettamente condizionata dalla cella di partenza.
Si potrebbe dire che le macro con riferimenti assoluti sono pi sicure, ma
pi rigide potendo essere utilizzate solo in locazioni non modificabili,
mentre le macro con riferimenti relativi sono flessibili ma pi difficili da
gestire. In realt le applicazioni pratiche di queste macro sono
estremamente limitate, il loro vero valore di tipo didattico e ce ne
renderemo bene conto quando passeremo ad esaminare il codice che hanno
generato nelle esercitazioni precedenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

21

Macro o Procedura
I termini Macro e Procedura, secondo alcuni autori, non sono equivalenti.
Si attribuisce lappellativo macro al codice prodotto con il registratore di
macro, mentre si definisce procedura ci che viene scritto completamente a
mano, senza lausilio del registratore.
In realt il codice che viene prodotto con il VBA di Excel spesso il
risultato combinato delluso del registratore e di scrittura diretta del codice:
pertanto, distinguere i due termini risulterebbe alquanto pleonastico,
conseguentemente in questo corso le due definizioni saranno considerate
sinonimi.
Allarme virus
Sappiamo tutti che la nostra cartella di lavoro, avendo utilizzato il
registratore, in fase di apertura visualizzer una finestra segnalante la
presenza di macro, potenziali veicolatici di virus. Nessun allarmismo in
questo caso, clicchiamo pure su Attiva macro, ma attenzione a non
abbassare la guardia con file di altra provenienza.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

22

Lezione III - Macro di navigazione


In questa terza lezione continueremo ad usare il Registratore generando
delle macro che, per quanto semplici, si riveleranno anche molto utili.
Diciamo che alla fine di questa lezione , se dotati di un buon spirito
dinventiva potremo costruire un primo rudimentale sistema informativo.
Navigare tra fogli
Spostarsi fra i fogli di lavoro di una cartella, servendosi delle apposite
schede, non sempre agevole, soprattutto per gli utenti non molto avvezzi
alluso del pc. Inoltre in certi casi si preferisce disattivare la visualizzazione
delle schede, per poter cos creare una navigazione guidata tra i fogli.
Ma nel caso test prospettato, in che modo le macro possono aiutarci?
Innanzi tutto registriamo una macro che ci porti al Foglio2.
Attivare il Foglio1 poich per poter registrare
lo spostamento al Foglio2 chiaramente
indispensabile avviare la registrazione da una locazione diversa da
quella di destinazione.
Portarsi sul menu Strumenti\Macro e avviare il Registratore di
macro.
Denominare la macro Navigator e confermare cliccando su OK.
Attivare il Foglio2
registrazione.

interrompere

la

Verifichiamo il funzionamento di Navigator.


Portarsi nel Foglio1.
Dal menu Strumenti\Macro scegliere Macro.
Eseguire la macro denominata Navigator.
Verremo trasportati nel Foglio2.
Per, se nei nostri intendimenti vi era lobiettivo di rendere pi facile la
vita degli utenti, dovremo operare qualche ulteriore accorgimento.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

23

Scorciatoie da tastiera
Mettiamo nuovamente mano al registratore, avviandolo dal menu
Strumenti\Macro\Registra nuova macro.
Lasciamo invariato il nome della macro proposto da Excel e spostiamo il
nostro interesse alla casella di controllo Tasto di scelta rapida che presenta
preimpostato il tasto CTRL.
Se noi inserissimo nella casella di controllo la lettera M ad esempio, per
avviare la macro associata, basterebbe digitare la combinazione di tasti
CTRL+M. Il problema che sono molti i comandi associati alla
combinazione CTRL pi lettera dellalfabeto, quindi
pi prudente utilizzare la combinazione di tasti
CTRL+SHIFT+M o una qualche altra lettera. Per
operare una simile combinazione di tasti occorre
tener schiacciato il tasto SHIFT mentre viene
digitata la lettera da associare.
Non male! Peccato che le scorciatoie da tastiera siano un ottimo strumento
per utenti esperti, non certo per neofiti!

I pulsanti
Indubbiamente il sistema pi comodo e facile per far eseguire delle
operazioni a chiunque, quello di usare un pulsante.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Individuare loggetto Pulsante e
cliccarci sopra.
Spostare il puntatore del mouse in una zona libera del foglio ed
effettuare un clic.
Sar automaticamente generato un pulsante ed avviata la finestra di dialogo
Assegna macro, dalla quale bisogner selezionare il nome della macro di
nostro interesse, che in questo caso sar Navigator.
Confermare cliccando su OK.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

24

A questo punto, senza nullaltro fare, digitare il nuovo


nome per il pulsante che, per rendere chiara la sua
funzione sar Foglio 2.
Deselezionarlo eseguendo un clic a vuoto.
Posizionando il puntatore del mouse sulla nuova creazione lo vedremo
trasformarsi in una manina ad indicare la sua associazione ad una macro.
Ciccandoci sopra sarete proiettati nel Foglio2.

Raccolta di istruzioni per la gestione dei pulsanti


Per poter spostare, dimensionare o rinominare un
pulsante devono essere presenti le maniglie.
Nel caso gli sia associata una macro cliccandoci sopra questa sar
eseguita rendendo impossibile far comparire le maniglie. In tal caso
prima di cliccare sulloggetto, tenere premuto il tasto CTRL.
Non volendo associare una macro al pulsante allatto della creazione
occorrer cliccare su Annulla nella finestra di dialogo Assegna
macro.
Per associare una macro ad un pulsante cliccarci sopra con il tasto
destro del mouse e dal menu contestuale scegliere Assegna macro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

25

Ping Pong
Grazie al pulsante precedentemente creato possiamo attivare il Foglio2: ma
adesso vogliamo anche ritornare indietro, sempre utilizzando un pulsante.
Attivare il Foglio2.
Dal menu Strumenti\Macro scegliere Registra nuova macro.
Rinominare la macro Navigator2.
Portarsi nel Foglio1 ed interrompere la registrazione.
Finita la fase di registrazione ritornare nel Foglio2.
Dalla barra degli strumenti Moduli selezionare loggetto Pulsante e
cliccare in una zona vuota del foglio per generarlo.
Associargli la macro Navigator2.
Rinominare il pulsante Indietro e deselezionarlo cliccando a
vuoto.
A questo punto sarete in grado di passare dal Foglio1 al Foglio2 e viceversa
cliccando sui due pulsanti.
Per rendere pi evidente le potenzialit del
lavoro svolto in questa lezione, dal menu
Strumenti scegliete la voce Opzioni, attivate la
scheda Visualizza e quindi deselezionate
lopzione Schede.
Noterete che per muoversi fra i fogli della cartella sarete obbligati a servirvi
dei pulsanti, quindi ad una navigazione guidata.
Nota: Per spostarsi da un foglio di lavoro allaltro si possono anche utilizzare le
combinazioni di tasti: CTRL+Pag , per passare al foglio successivo, o
CTRL+Pag per tornare al foglio precedente.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

26

Lezione IV - Macro universali


E giunto il momento di conoscere pi approfonditamente la finestra di
dialogo Registra macro.
Cartella macro personale
Tutti gli elementi della finestra di dialogo Registra macro sono di
immediata comprensione. Tutti , escludendo la voce Memorizza macro in : ,
la quale ospita un piccolo elenco di possibilit fra le quali scegliere.

Questa cartella di lavoro


o Scelta di default.
o Le macro saranno contenute nella cartella di lavoro nella
quale sono state registrate.
o Le suddette macro saranno disponibili per le altre cartelle solo
se la cartella che le contiene aperta.
Cartella macro personale
o Le macro non saranno contenute nella cartella dalla quale
stata effettuata la registrazione.
o Le macro saranno sempre disponibili, indifferentemente dalla
cartella aperta.
o Nelleventualit la cartella sia esportata in un altro pc, le
macro (quelle registrate con la modalit Cartella macro
personale) non saranno disponibili.
Nuova cartella di lavoro
o Opzione di scarsa utilit.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

27

Personal.xls
Quando registriamo una macro in modalit Cartella macro personale ,
questa non viene memorizzata nella cartella in uso, bens in una cartella
nascosta che si chiama Personal.xls.
Nota : La cartella Personal.xls non esiste come file sino a quando non viene effettuata
una registrazione in modalit Cartella macro personale.
Ogni volta che Excel viene avviato il file Personal.xls, pur rimanendo
nascosto, viene aperto, mettendo le sue macro a disposizione delle altre
cartelle aperte.

E possibile visualizzare la cartella Personal.xls


scegliendo dal menu Finestra la voce Scopri, che
visualizza lomonima finestra di dialogo.

E comunque consigliabile nascondere Personal.xls


cliccando su Nascondi sempre dal menu Finestra.

Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro
quartiere generale Personal.xls.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

28

Ma dove sita la cartella Personal.xls ?


Non troppo complicato da esporre con Windows 95/98.
PERCORSO
C:\
Programmi\
Microsoft Office\
Office\
XLStart\
Personal.xls

DESCRIZIONE
O altra unit disco
O similare

Pi complesso con Windows 2000.


PERCORSO
C:\
Documents
and
settings\
Enrico Cannoni\
Dati applicazioni\
Microsoft\
Excel\
XLStart\
Personal.xls

DESCRIZIONE
O altra unit disco

Il nome dellutente

I files ospitati allinterno della directori XLStart vengono eseguiti


automaticamente allavvio di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

29

Lezione V Barre degli strumenti


In questa lezione vedremo come sfruttare al meglio gli strumenti di
personalizzazione delle barre degli strumenti offerti da Excel.
Il nostro compito sar quello di creare una piccola barra degli strumenti,
disponibile da tutte le cartelle del nostro computer, dalla quale richiamare le
barre di uso pi frequente.
Macro per visualizzare le barre
Selezionare il menu Visualizza\Barre degli strumenti e deselezionare
le barre Standard e Formattazione.
Dal menu Strumenti\Macro lanciare Registra nuova macro.
Denominare la macro Standard e memorizzarla in Cartella macro
personale.
Confermare lavvio della registrazione cliccando su OK.

Dal menu Visualizza\Barre degli strumenti attivare la barra Standard.


Interrompere la registrazione.
Siccome caldamente consigliato verificare sempre il funzionamento della
macro registrata, disattivare nuovamente la barra degli strumenti Standard e
richiamare la finestra di dialogo Macro dal menu Strumenti\Macro.

Nota: E interessante osservare che la macro Standard a differenza delle altre


preceduta da Personal.xls! , il file ove ospitata.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

30

Selezionare Standard e cliccare sul pulsante Esegui.

La barra degli strumenti Standard sar immediatamente ripristinata.

Nota: Nelleventualit che la macro Standard non fosse disp onibile nellelenco della
finestra di dialogo Macro, prescindendo da un vostro errore, controllate che la
casella Macro in: sia impostata su Tutte le cartelle di lavoro aperte.

Seguendo i punti da 1 a 6, precedentemente illustrati, si proceda a registrare


le macro Formattazione, Disegno e Moduli, attivanti le omonime barre
degli strumenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

31

Una nuova barra degli strumenti


Creare linvolucro della nuova barra degli strumenti unoperazione molto
semplice.
Fare clic su Personalizza dal menu Visualizza\Barre degli strumenti.
Nella finestra di dialogo Personalizza attivare la scheda Barre degli
strumenti.
Cliccare sul pulsante Nuova .

Apparir una nuova barra degli strumenti, priva di ogni pulsante


che, salvo diversa scelta, si chiamer Personalizzata1.
Nella finestra di dialogo Personalizza scegliere la scheda Comandi
per aggiungere dei pulsanti alla barra degli strumenti
Personalizzata1.
Nel riquadro di sinistra, Categorie scegliere Macro.

Dal riquadro di destra, Comandi,


trascinate Pulsante personalizzato, la
faccina che ride, allinterno della barra
degli strumenti in costruzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

32

Cliccare con il tasto destro del


mouse sul pulsante e dal menu
contestuale che apparir,
scegliere Assegna macro.

Dalla finestra di dialogo Macro scegliere la macro Standard e


confermare cliccando su OK.
Chiudere la finestra di dialogo Personalizza.
Verificare il funzionamento del tutto.

Rifinire i pulsanti
Il tutto funziona bene, lunico neo rappresentato
dalletichetta autoesplicativa che, compare quando si
posiziona il puntatore del mouse sul pulsante, poich
la dicitura Pulsante personalizzato eccessivamente
generica..
Dopo aver aperto la finestra di dialogo
Personalizza, cliccare con il tasto destro
del mouse sul pulsante e nel conseguente
menu contestuale portarsi sulla voce
Nome e rinominare il predefinito Pulsante
personalizzato in Barra Standard.
Adesso possiamo inserire nella nostra barra degli strumenti un secondo
pulsante. Seguiamo le istruzioni precedentemente illustrate, con lunica
differenza di associare la macro denominata Formattazione, che permette
la visualizzazione dellomonima barra degli strumenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

33

Per rendere questo secondo pulsante distinguibile dal primo, clicchiamoci


sopra con il tasto destro del mouse e dal menu contestuale che apparir,
posizionarsi su Cambia icona pulsante per disporre di una discreta raccolta
di icone per pulsanti.

Ripetere le operazioni descritte precedentemente anche per le macro


Disegno e Moduli.
A questo punto potrete verificare che la nuova barra degli strumenti
disponibile per qualsiasi cartella di lavoro del vostro computer, o profilo per
gli utilizzatori di NT.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

34

Lezione VI Moduli, la terra di nessuno


Generalmente si ritiene che la creazione di interfacce grafiche con caselle
combinate, caselle di comando e altri controlli visivi siano unattivit
esclusiva degli sviluppatori.
Con Excel possibile disporre di controlli grafici senza conoscere una sola
parola di programmazione. Tale possibilit ci data dagli strumenti
disponibili sulla barra degli strumenti Moduli, gi sperimentata nella
seconda lezione, che ci permette di inserire i suoi controlli direttamente su
un foglio di lavoro.
Possiamo dire di avventurarci in un territorio inesplorato sia dagli utenti di
Excel che dai programmatori, insomma in una terra di nessuno.
Intervallo dati denominato
Inizieremo il nostro studio sui controlli della barra degli strumenti Moduli,
prendendo in esame la Casella Combinata.
Nota: Nelleventualit non fosse chiaro di quale oggetto stiamo parlando, pensate ai
vari menu a tendina usati per cambiare il tipo di font e le dimensioni dei
caratteri.
Per poter vedere una Casella combinata in funzione occorre disporre di un
intervallo di dati denominato.
Partendo dalla cella A2 di un foglio intonso, si digitino i nomi della
citt visibili nellimmagine sottostante.
Selezionare lintervallo
di dati A2:A8.
Scegliere Crea dal menu
Inserisci\Nome.
Apparir la finestra di
dialogo Crea nomi e
dopo aver controllato
che sia selezionata la
sola
opzione
Riga
superiore,
confermare
cliccando su OK.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

35

Verifichiamo leffetto dellintervallo denominato test creato.

Fare clic sul pulsante della Casella del nome e


selezionare il nome Citt dallintervallo
dellelenco a discesa.
Leffetto che si otterr sar la selezione di tut ti i
nomi di citt sottostanti letichetta Citt, che
sarebbe il nome dellintervallo dati denominato.

Nota: In realt la Casella del nome non altro che una Casella combinata, quindi
lesatta dicitura sarebbe: cliccare sulla casella combinata Casella del nome.

Casella combinata
Passiamo alla vera e propria creazione della Casella combinata.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Sfruttando
le
propriet
di
autoesplicazione dei pulsanti, cercare
il controllo Casella combinata e
cliccarci sopra.
Posizionarsi sulla cella C4 e modellare un
riquadro grande allincirca come due celle.
Fare clic con il tasto destro sulla Casella combinata or ora creata e
dal menu contestuale scegliere la voce Formato controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

36

Apparir la finestra di dialogo Formato controllo ove dovremo


selezionare la scheda Controllo.
Nella casella Intervallo di input: digitare Citt, nella casella
Collegamento cella: digitare C1 e cliccare su OK.

Deselezionare loggetto cliccando a vuoto.


Cliccando sul pulsantino della Casella combinata vedremo comparire la
lista delle citt e cliccando su una di esse, ad esempio Milano, nella cella
C2 comparir il numero 2. Provando a fare clic su Firenze in C1 sar
inserito il 4.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

37

Cerchiamo di capire come siamo riusciti ad ottenere un simile risultato.


Digitando Citt nella casella Intervallo di input della finestra di dialogo
Formato controllo, abbiamo detto alla Casella combinata:
Guarda casella che tu devi contenere lelenco di nomi corrispondente
allintervallo di dati Citt, cio Torino, Milano, Venezia ecc. .Poi, la citt
che sceglier dovrai indicarla nella cella C1, la cella appunto digitata in
Collegamento cella.
Ma che cosa che quel numero che compare in C1? Semplice, il numero
di posizione nellelenco dellelemento scelto. Milano il secondo, quindi
corrisponde al numero 2.
Casella di controllo
La Casella di controllo, altro oggetto molto diffuso, serve ad indicare se
vogliamo o non volgiamo fare una certa cosa, se vero o non vero o
meglio VERO o FALSO.
Dalla barra degli strumenti Moduli
cliccare sulloggetto Casella di
controllo.
Fare clic in corrispondenza della cella C9, sar automaticamente
generata una Casella di controllo.

Cliccare con il tasto destro


sulla Casella di controllo per
far
apparire
il
menu
contestuale,
dal
quale
selezionare
Formato
controllo.

Apparir la finestra di dialogo Formato controllo ove dovremo


selezionare la scheda Controllo.
Nella casella Collegamento cella digitare B9.
Deselezionare loggetto cliccando a vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

38

Cliccando sulla Casella di controllo vi comparir un


segno di spunta e nella cella B9, quella indicata in
Collegamento cella, VERO. Cliccando nuovamente
sulla Casella di controllo il segno di spunta sar tolto
e in B9 comparir FALSO.

Casella di selezione
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
selezione.
Fare clic in una zona vuota del foglio per generare
automaticamente una Casella di selezione.
Fare clic con il tasto destro sulla Casella di selezione per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 10
o Valore massimo 100
o Avanzamento 5
o Collegamento cella H1
Cliccare su OK.

Deselezionare il controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

39

Adesso cliccando sulla sezione superiore della Casella di selezione vedrete


il valore in H1 aumentare di 5 in 5 sino ad un massimo di 100.
Cliccando sulla parte inferiore diminuir di 5 in 5 sino ad un minimo di 10.
Probabilmente, dopo un primo momento di soddisfazione, vi sorger un
dubbio. Ma a che servono questi controlli?
Portate pazienza, nella prossima lezione realizzeremo una interessante
applicazione che ricorrer agli oggetti test studiati.

Nota: Nei controlli ove si imposta un valore massimo non possibile superare 30.000.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

40

Lezione VII Un modello valutario


Questa lezione potrebbe risultare particolarmente impegnativa, soprattutto
per chi non fosse dotato di una adeguata conoscenza di Excel. Ma qu
cogliamo loccasione per ribadire che, soltanto chi gi conosce bene il
foglio elettronico potr trarre pieno giovamento da questo corso di VBA.
Excel dotato di una funzione, Euroconvert, in grado di convertire il
valore delle valute Europee in euro . Ma se per un utilizzatore di Excel di
medie capacit, ricorrere ad una funzione non rappresenta certo un
problema, ben diversa la situazione per quegli utenti sprovveduti di
conoscenze sul foglio elettronico.
Il nostro compito sar quello di creare un programma di conversione in euro
dallinterfaccia amichevole.

Euroconvert
Diamo una rapida occhiata alla sintassi delle funzione Euroconvert.
=Euroconvert(Numero ; Origine; Destinazione)
Numero
Origine
Destinazione

Importo da convertire.
Il codice ISO della moneta di origine.
Il codice ISO della moneta di destinazione.

Nellesempio sottostante vediamo come convertire 1000 lire in euro.


=Euroconvert(1000;itl;eur)

Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione
Euroconvert.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

41

Predisporre la casella combinata


Lutilizzo di una Casella combinata prevede un intervallo dati denominato.
Partendo dalla cella J2 di un foglio vuoto, digitare i dati sottostanti.
Paese
Francia
Italia
Paesi Bassi
Germania
Spagna

Moneta
Franco
Lira
Fiorino
Marco
Peseta

CodiceISO
frf
itl
nlg
dem
esp

Selezioniamo lintervallo di dati


K2:L7.
Scegliere Crea
dal
menu
Inserisci\Nome.
Nella finestra di dialogo Crea
nomi lasciare selezionata solo
Riga superiore e confermare
cliccando su OK .

Nota: In realt abbiamo creato due intervalli


denominati, Moneta e CodiceISO.
Passiamo alla creazione di una Casella combinata.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Sfruttando le propriet di autoesplicazione dei pulsanti cercare nella
barra Moduli il controllo Casella combinata e cliccarci sopra.
Posizionarsi sulla cella E5 e modellare un riquadro grande allincirca
come due celle.
Fare clic con il tasto destro sulla Casella combinata or ora creata e
dal menu contestuale scegliere la voce Formato controllo.
Apparir la finestra di dialogo Formato controllo ove dovremo
selezionare la scheda Controllo.
Nella casella Intervallo di input: digitare il nome dellintervallo
denominato Moneta, nella casella Collegamento cella: digitare G5 e
cliccare su OK.
Deselezionare loggetto cliccando a vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

42

La funzione Indice
Inseriamo nella colonna B i dati come raffigurati nellimmagine sottostante,
la quale ci lascia intuire che la moneta presente nella cella C4, Peseta,
quella scelta con la Casella combinata.
Sempre nellimmagine sottostante la Barra della formula, indicante il
contenuto della cella C4, ci mostra la funzione Indice.

Esaminiamo brevemente anche la sintassi della funzione INDICE.


=INDICE(Intervallo dati; Riga)

Intervallo dati

Riga

=INDICE(Moneta;G5)

Lintervallo denominato contenente i dati ove


vogliamo effettuare la ricerca, nel nostro caso
Moneta.
La riga dellintervallo dati in corrispondenza
della quale si trova il valore desiderato. Nel
nostro esempio la Peseta il quinto elemento,
cio si trova alla quinta riga dellintervallo
denominato Moneta.

Nota: La sintassi della funzione Indice ben pi articolata di quella rappresentata nei
paragrafi precedenti, ma essendo questo un corso di VBA non ci dilungheremo
oltre su di essa.

Quindi ogni qualvolta che scegliamo una valuta con la Casella combinata,
grazie alla funzione Indice, questa viene visualizzata anche nella cella C4.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

43

Calcolare lEuro

La cella C4 individua la valuta che vogliamo convertire, mentre la cella C6


adibita allinserimento della quantit della valuta scelta.
Nel nostro esempio, illustrato nellimmagine a seguire, vogliamo convertire
1.000 Lire: il risultato dovr apparire nella cella C9. Per ottenere tale
risultato dobbiamo inserire in C9 una funzione piuttosto complessa.
=EUROCONVERT(C6;INDICE(CodiceIso;G5);eur)

Il secondo argomento della funzione EUROCONVERT, valuta di origine,


invece di essere digitato direttamente viene passato dalla funzione INDICE,
che a sua volta si avvale dellintervallo denominato CodiceIso.

A questo punto, variando la quantit ( C6) o la moneta con la Casella


combinata, automaticamente sar calcolato limporto corrispondente in
Euro.

Vincolare la quantit
Volendo impostare una quantit ( C6) che non possa eccedere un
determinato valore, o pi semplicemente togliere allutente ogni onere di
digitazione, possiamo ricorrere ad una Casella di selezione.
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
selezione.
Fare clic in una zona vuota del foglio per generare
automaticamente una Casella di selezione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

44

Fare clic con il tasto destro sulla Casella di selezione per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 1
o Valore massimo 20000
o Avanzamento 1
o Collegamento cella G8
Cliccare su OK.
Quindi nella cella C6, in corrispondenza della quantit, digitare la seguente
formula: =1000*G8
ove G8 la cella collegata alla Casella di selezione.
Noterete che ad ogni singolo clic sulla Casella di selezione si aggiorner
automaticamente la quantit di valuta da convertire e a cascata gli euro
corrispondenti.
Gestire gli eccessi
Il nostro modello valutario ha un problema!
Il valore minimo 1000, impostabile dallazione combinata della Casella di
selezione e della formula in C6, sicuramente adeguato alle lire, ma
troppo elevato per i franchi.
Si potrebbe rimediare al problema abbastanza agevolmente con una
funzione SE nidificata, ma noi che vogliamo vedere la Casella di controllo
in azione seguiremo unaltra via.
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
controllo.
Fare clic in corrispondenza della cella E11.
Sar automaticamente generata una Casella di controllo.
Fare clic con il tasto destro sulla Casella di controllo per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Apparir la fine stra di dialogo Formato controllo ove dovremo
selezionare la scheda Controllo.
Nella casella Collegamento cella digitare G11.
Selezionare il nome di default per
sovrascriverlo digitando Dividi per 100.
Deselezionare loggetto cliccando a
vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

45

Il nostro intendimento quello di poter dividere per 100 la quantit ( C6) di


valuta da convertire quando selezioniamo la Casella di controllo e
conseguentemente nella cella G11 comparir VERO. Ad esempio, se la
quantit in C6 di 92000 risultasse eccessiva metteremo il segno di spunta
alla Casella di controllo ed automaticamente il valore in C6 si
trasformerebbe in 920.
Per ottenere il risultato di cui sopra, occorre modificare la formula in C6,
integrandola cos : =SE(G11=FALSO;1000*G8;10*G8) . Traducibile
in: se la Casella di controllo non selezionato e quindi restituisce il valore
FALSO in G11, venga eseguita la moltiplicazione normale per 1000,
altrimenti moltiplicare solo per 10 (1000/100=10).

Considerazioni
Luso dei Pulsanti di opzione ci avrebbe permesso di creare un modello
valutario pi elegante e preciso, ma in questa fase del nostro corso
avremmo introdotto delle difficolt, forse, eccessive.
Poi, per completezza di informazione, vi invito a fare una visitina
al menu Strumenti/Conversione
euro per prendere visione di uno
strumento di conversione niente
male, che Excel ci mette a disposizione.
Ma allora vi domanderete, perch
tutto sto esercizio? Semplice!
Per pure finalit didattiche!

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

46

PARTE 2
Primi passi nel VBA
Inizieremo adesso ad addentrarci nel VBA vero e proprio. Prenderemo
confidenza con lambiente di programmazione e vedremo il codice scritto
con le macro che abbiamo registrato.
Scriveremo le prime semplici procedure e piano piano conosceremo le
principali strutture di controllo.
Insomma vedremo che la programmazione, se accompagnata dalla logica e
un po di inventiva, non poi cos difficile, anzi ci troveremo ben presto in
grado di raggiungere risultati di tutto rispetto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

47

Lezione VIII LEditor di VBA


I novizi della programmazione troveranno non poche difficolt nel primo
impatto con lEditor di Visual Basic; tenete conto che anche i vecchi
utilizzatori del VBA prima maniera, cio quello risalente alle versioni 5 e 7
di Excel, trovarono ostico raccapezzarsi nel nuovo ambiente di
programmazione.
Per questa ragione illustreremo gli elementi essenziali dellEditor da questa
prima lezione dedicata ai rudimenti della programmazione.
Aprire lEditor di VB
Nellimmagine sottostante si pu ammirare lEditor di VB

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

48

richiamabile dal menu Strumenti di Excel, posizionandosi sulla voce


Macro per poi cliccare Visual Basic Editor., oppure con la combinazione di
tasti ALT+F11.

Nota: LEditor illustrato nellimmagine della pagina precedente corrisponde ad una


nuova cartella di lavoro appena aperta. Gli elementi di un Editor associato ad
una cartella contenente delle macro si presenterebbero un po diversamente.

Le finestre dellEditor di VB
LEditor di VB composto da una finestra principale, detta genitrice, che
contiene tre sottofinestre definite figlie.
Le finestre figlie sono: Finestra Progetto, Finestra delle Propriet e
Finestra del Codice.
Tutte e tre le sottofinestre possono essere chiuse, spostate e ridimensionate.
La finestra Progetto
La Finestra Progetto per default posizionata in alto a sinistra e visualizza
tutti i fogli di lavoro, i moduli e se presenti i forms della cartella o cartelle
di lavoro aperte. I suoi contenuti sono rappresentati da un diagramma ad
albero con tutte le cartelle aperte e collassabili
con un clic sul segno meno (-).
Nellesempio raffigurato a lato possiamo
vedere
che
stiamo
trattando
del
VBAProject(Cartel1), cio di una cartella
appena aperta che ha il consueto nome
Cartel1.xls. Scendendo nella scala gerarchica
troviamo la cartella Microsoft Excel Oggetti
contenente i tre fogli di lavoro, pi un elemento
particolare denominato ThisWorkbook, del
quale parleremo nelle ultime lezioni.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

49

Nelleventualit la finestra Progetto non fosse presente, la si pu richiamare


dal menu Visualizza dellEditor VB, cliccando sulla voce Gestione progetti.

La finestra delle Propriet

La finestra delle Propriet mostra le propriet


delloggetto
selezionato.
Nellimmagine
desempio stiamo visualizzando le propriet del
Foglio1. Provando a cliccare sul Foglio2 nella
finestra del Progetto vedremo la finestra delle
Propriet aggiornarsi al nuovo elemento
selezionato.

Nelleventualit la finestra delle Propriet


non fosse presente, la si pu richiamare
dal menu Visualizza dellEditor VB,
cliccando sulla voce Finestra Propriet.

La finestra del Codice


La terza sottofinestra, quella del Codice, nellimmagine raffigurante
lEditor non presente, al suo posto vediamo uno spazio vuoto grigio. Ci
dovuto al fatto che in una nuova cartella di lavoro non ancora presente il
codice, quindi a meno di richiamarla esplicitamente, la finestra del Codice
non visibile.
Per richiamare la finestra del Codice, vi sono vari sistemi, tra i quali fare
clic sul menu Inserisci/Modulo.
Ma se andiamo ad aprire la cartella di lavoro Comuni, ove abbiamo
eseguito le prime registrazioni, scopriremo una situazione sensibilmente
diversa.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

50

La finestra del Progetto presenta degli elementi


aggiuntivi, tipo la cartella Moduli, allinterno
della quale troviamo Modulo1 e Modulo2.

Ancora pi evidente la presenza della finestra del Codice con del codice
allinterno.

Nota: LEditor di Visual Basic sicuramente ben pi complesso di quello che pu


apparire dalla nostra breve chiacchierata, ma senza appesantimenti teorici
che, rischierebbero di scoraggiarci, gli elementi appresi in questa lezione sono
sufficienti ad orientarci nel suo interno.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

51

Lezione IX Il codice delle macro


Finalmente giunto il momento di esplorare il codice prodotto dal nostro
registratore di macro.
Regole generali
Apriamo la cartella di lavoro contenente gli esempi delle prime lezioni e dal
menu Strumenti\Macro selezioniamo la voce Visual Basic Editor.
La finestra Progetto dovrebbe gi mostrare selezionato il Modulo1 e la
finestra Codice il corrispondente listato. Se cos non fosse nella finestra
Progetto, eseguire un doppio clic sulla voce Modulo1.
Andiamo cos ad esaminare la macro registrata nella prima lezione.
Le righe che iniziano con un apice (), colorate di verde sono testo di
commento. E possibile aggiungere, modificare, eliminare commenti senza
influenzare lesecuzione della macro. Ricordiamoci per che i commenti
rivestono una grande ruolo nella documentazione delle nostre procedure.
La macro vera e propria inizia con Sub, Procedura in Italiano. Quindi ogni
macro deve iniziare con la parola chiave Sub, al quale segue un nome di
fantasia, che nel nostro caso Macro1. Infine aprire e chiudere una coppia
di parentesi tonde senza spazi allinterno. Riepilogando una macro deve
sempre iniziare con la seguente sintassi:
Sub NomeFantasia( )

Sub un elemento fondamentale anche per la chiusura della macro.


Ogni macro deve terminare con End Sub.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

52

Analizzare il codice di Macro1


La macro registrava le azioni di selezionare lintervallo di celle A3:F3, di
grassettarlo e infine di deselezionare attivando la cella A2.
Range("A3:F3").Select
Selection.Font.Bold = True
Range("A2").Select

Seleziono le celle da A3 a F3
La selezione deve essere grassettata? Vero.
Seleziono la cella A2 per deselezionare.

Per rendere pi comprensibile la trasposizione del codice, in linguaggio


corrente si un po sacrificata la struttura sintattica. In VBA, loggetto
precede lazione.
Range("A2") = oggetto
Select = azione (verbo)

E come se nel parlare di tutti i giorni invece di dire Bevo il caff,


dicessimo Il caff bevo.
Qual il vantaggio di una simile bizzarria linguistica? Una volta
selezionato un oggetto possiamo compiere su di esso innumerevoli azioni
senza dover riselezionare continuamente lo stesso oggetto.
Per restare nellesempio del caff come se dicessimo: Il caff bevo,
acquisto, sorseggio, rovescio.
Il punto (.) funge da separatore fra loggetto e lazione

Nota: Ad essere precisi loggetto, oltre a precedere lazione, pu anche precedere la


specificazione di una sua Propriet, ossia, continuando la metafora linguistica,
laggettivo. Sempre per mettere i puntini sulle i, lazione in VBA viene
chiamata Metodo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

53

Analizzare il codice della macro RiferimentiRelativi


La seconda macro, registrata durante la prima lezione, introduceva la logica
dei riferimenti relativi.
Anche questa macro, registrava le azioni di selezionare lintervallo di celle
A3:F3, di grassettarlo e infine di deselezionare attivando la cella A2.
Sub Riferimentirelativi()
'Riferimentirelativi Macro
ActiveCell.Offset(2, 0).Range("A1:F1").Select
Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).Range("A1").Select
End Sub

Ma in questo caso passava in secondo piano lesatta ubicazione delle celle,


bens assumevano importanza gli spostamenti, quindi era anche importante
sapere qual era la cella attiva nel momento in cui veniva attivata la
registrazione. La cella attiva era A1.

ActiveCell.Offset(2, 0).

("A1:F1").Select

Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).

Range("A1").Select

Dalla cella attiva, qualunque essa sia,


scende di 2 celle
quindi seleziona verso destra 6 celle.
E importante notare che A1 e F1 non
rappresentano riferimenti assoluti, anche
perch in realt s ono state selezionate le
celle A3:F3.
La selezione deve essere grassettata? S .
Dalla cella attiva, qualunque essa sia, sale di
1 cella
quindi seleziona la cella per
deselezionare.
Anche qui importante notare che non A1
la cella selezionata.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

54

Modificare il contenuto di una macro


Passiamo ad esaminare .la macro Navigator, presente nel Modulo2:
Sub Navigator()
Sheets("Foglio2").Select
End Sub

Con listruzione
Sheets(Foglio2).Select

come se dicessimo Il foglio chiamato Foglio2 seleziona.


E intuitivo che volendo cambiare il foglio da attivare, baster riscrivere il
nome del foglio posto fra le parentesi tonde e le virgolette: ad esempio
reindirizziamo la navigazione di Navigator al Foglio3.
Sheets(Foglio3).Select

Facile vero?!
Le nostre procedure di navigazione hanno un difetto per! Ci portano nel
foglio desiderato, ma non si preoccupano di controllare se il foglio visibile
dallinizio: certamente sgradevole transitare in un foglio e visualizzare la
fine di una tabella.
Posizioniamoci dopo Select della macro Navigator e diamo un
INVIO per creare una riga vuota.
Spostiamo il cursore sulla riga vuota test creata e digitiamo le
seguenti istruzioni:
Range("A1").Select

Laggiunta della piccola porzione di codice sopra illustrata, far s che la


macro dopo essersi spostata sul foglio desiderato, attivi la cella A1,
garantendo cos la visualizzazione del foglio dallinizio.
Nel paragrafo sottostante possiamo vedere la nuova versione di Navigator:
Sub Navigator()
Sheets("Foglio3").Select
Range("A1").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

55

I nomi delle procedure


Nellassegnazione di nomi alle macro, occorre seguire alcune regole di
denominazione:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.
Devono essere univoci, almeno allinterno della procedura (poich a
volte non basta meglio prudentemente allinterno della cartella), o
pi correttamente nellarea di validit.
Non possono coincidere con il nome di parole chiave del VBA.
Non devono essere composti da pi parole.

Identare il codice
Si pu notare, nei primi esempi di macro esaminati, che le righe non sono
sempre allineate al margine sinistro, ma risultano spostate verso destra in
vario modo. Questo stile di scrivere il codice detto indentazione.
Non ci sono regole fisse che stabiliscano di quanto bisogna far rientrare una
riga, od un gruppo di righe; lidentazione solo un modo per rendere
visivamente pi chiara la struttura del programma.
Generalmente ci si serve dellidentazione per allineare ad esempio sulla
stessa colonna blocchi di istruzioni dello stesso livello o comunque correlati
fra loro.
Nelluso dellidentazione entra comunque il gusto personale dellautore del
programma, giacch introduce elementi di chiarezza visiva, del tutto
estranei al sistema di esecuzione del programma.
Le maiuscole
Tutte le parole chiave del VBA hanno liniziale maiuscola: Sub, End,
Range, Select ecc. . Per la digitazione di esse deve avvenire tutta in
minuscolo, poich automaticamente le iniziali di trasformeranno in
maiuscole, sempre che siano state scritte correttamente.
Il digitare le iniziali delle parole chiave in minuscolo di fatto un sistema di
controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

56

Lezione X Operare delle scelte con IF


In questa lezione impareremo a prendere delle decisioni, a scrivere delle
routine che verificano determinate condizioni ed eseguono
conseguentemente, istruzioni specifiche, in base al risultato della verifica.
Le istruzioni in VBA che controllano il flusso delle decisioni sono definite
strutture di controllo.
Mettendola un po sul mistico, potremmo dire che implementiamo le
capacit delle nostre macro a scegliere fra il vero ed il falso: fra il bene ed il
male.
Il file Comuni
Apriamo la cartella di lavoro Comuni e scegliamo lomonimo foglio,
contenente lelenco dei comuni della provincia di Torino. In particolar
modo, soffermiamoci sulla colonna F, contenente i valori relativi alla
popolazione.
Il nostro compito consister nel colorare di giallo le celle contenenti un
numero di abitanti superiore al valore di 9.999: il tutto naturalmente, con un
semplice clic.

Scomporre i problemi
Iniziamo per gradi: il primo compito quello di capire come si fa a
colorare di giallo una cella tramite il codice VBA. La soluzione molto
semplice! Registriamo una macro che formatta di giallo lo sfondo di una
cella.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

57

Prima di iniziare la registrazione ci accerteremo che larea di lavoro non


presenti degli impedimenti, che potrebbero compromettere la qualit del
codice che sar generato.
Notiamo che le barre degli strumenti, disposte su di ununica riga ci
occultano dei pulsanti, fra i quali proprio quello del Colore di riempimento.
Dal menu Visualizza\Barre degli strumenti scegliere Personalizza.
Comparir la finestra di dialogo Personalizza, dalla quale
sceglieremo la scheda Opzioni.
Mettere il segno di spunta su Mostra barre degli strumenti Standard
e Formattazione su due righe.
Cliccare su OK per confermare.

Registrare la colorazione di una cella


Posizioniamoci su di una cella da colorare.
Lanciare il registratore di macro dal menu Strumenti\Macro\Registra
nuova macro.
Digitare come nome della macro Colorare e cliccare su OK per
avviare la registrazione.
Dal pulsante Colore riempimento, posto sulla barra degli
strumenti Formattazione, scegliere il colore giallo.

Interrompere la registrazione cliccando


pulsante Interrompi registrazione.

sul

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

58

Esaminare il codice della macro Colorare


Nella precedente lezione abbiamo visto che per visualizzare il codice di una
macro, occorre richiamare lEditor di VB: risultato ottenibile anche dalla
finestra di dialogo Macro, richiamabile dal menu Strumenti\Macro\Macro.
Una volta visualizzata la finestra Macro, selezionare la macro Colorare e
cliccare sul pulsante Modifica, per essere immediatamente proiettati
nellambiente di programmazione

ove possibile ammirare la sintassi generata per colorare una cella di


giallo.
Questa volta il codice si presenta meno intuitivo degli esempi precedenti,
complicato dalla presenza dellenunciato Whit.
Sub Colorare()
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

59

Lenunciato Whit
Lenunciato Whit, traducibile in con, serve a rendere pi veloce
lesecuzione della macro, ma non indispensabile. Rivediamo la procedura
Colorare senza Whit.
Sub Colorare()
Selection.Interior.ColorIndex = 6
Selection.Interior.Pattern = xlSolid
End Sub

Le due righe di codice cos trasformate si possono leggere:


Selezione interna colora di giallo
Selezione interna trama solida
Mentre il codice originale cos traducibile:
Con selezione interna
colora di giallo
trama solida
Fine con
Appare evidente che in presenza di molti attributi il codice racchiuso
dallenunciato Whit diventa pi conciso, pi veloce.

Eliminare codice superfluo


In molti casi il Registratore di macro registra tutte le possibili impostazioni,
anche quando se ne modificano solo una o due. Eliminando le impostazioni
non necessarie la macro risulter semplificata e pi veloce.
Nella macro Colorare lunica propriet che vogliamo modificare il
colore, quindi la tipologia di trama eliminabile. Il risultato della suddetta
colorazione una macro estremamente leggera.
Sub Colorare()
Selection.Interior.ColorIndex = 6
End Sub

6 significa giallo

Notate il commento che ricorda che al numero 6 corrisponde il giallo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

60

Colorare e scendere
Dopo essere riusciti a far colorare di giallo una cella, unaltra azione che
possiamo far compiere alla nostra macro, senza eccessive difficolt quella
di scendere alla cella sottostante. Il pezzo di codice necessario a tale
necessit gi disponibile nella macro Navigator.
Ricordate? Il seguente codice scende di due celle
ActiveCell.Offset(2, 0).Range("A1").Select

quindi sostituendo il 2 con un 1, scenderemo di una sola cella per volta.


Ed ecco il risultato di questa ulteriore modifica alla procedura Colorare, che
formatta la cella di giallo e scende di una cella.
Sub Colorare()
Selection.Interior.ColorIndex = 6
ActiveCell.Offset(2, 0).Range("A1").Select
End Sub

6 significa giallo
Scende di una cella

SeAllora
E giunto il momento di dare il lume della ragione alla nostra macro!
Dovr colorare sol tanto quando il valore della cella supera 9.999 .
Sub Colorare()
If ActiveCell > 9999 Then
Se il contenuto della cella superiore a 9999
Selection.Interior.ColorIndex = 6
6 significa giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Scende di una cella
End Sub

Il codice della struttura di controllo If cos traducibile.


Se la cella attiva contiene un valore maggiore di 9999 allora
Colorala di giallo
Fine se
Esaminiamo anche la sintassi di If, che si presenta molto semplice.
Alla parola chiave If segue una condizione, a sua volta seguita dalla parola
chiave Then. Nella riga successiva troviamo una o pi istruzioni da
eseguire se una determinata condizione risulta vera.
Scendendo nuovamente, la fine della struttura di controllo data da End If.
If condizione Then
Istruzioni
End If

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

61

Il controllo If deve essere sempre chiuso da End If, ad eccezione di macro


con struttura che si sviluppa su di una sola riga.
If condizione Then istruzioni

Pur dando per acquisita la conoscenza degli operatori di confronto, se ne


propone una rapida carrellata.

OPERATORI di CONFRONTO
MAGGIORE
MINORE
UGUALE

>
<
=

DIVERSO
MAGGIORE O UGUALE
MINORE O UGUALE

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

<>
>=
<=

62

Lezione XI Ripetere le azioni


Posizioniamo la cella attiva in F5 e proviamo la macro Colorare. Sar
testato il valore della cella, eventualmente formattato, in ogni caso la cella
attiva scender nella cella sottostante. Volendo ripetere pi volte
lesecuzione della macro, le operazioni di rovistare fra il menu
Strumenti\Macro\Macro, individuare la procedura e cliccare su OK, si
dimostreranno veramente noiose.

Pulsanti alternativi
Si pu rimediare al problema di cui sopra, associando la macro Colorare ad
un pulsante. Per i pulsanti, diciamocelo, sono proprio bruttini.
Scegliamo una soluzione alternativa.
Dal menu Visualizza\Barre degli strumenti scegliere Disegno.
Cliccare su Casella di testo.
Modellare la Casella di testo in prossimit
della cella G2.
Personalizzarla a piacere.
Cliccarci sopra con il pulsante destro del
mouse e dal menu contestuale che
apparir, scegliere la voce Assegna macro.
Assegnare la macro di nome Colorare e confermare cliccando su
OK.
Deselezionare loggetto cliccando sul foglio.
Adesso risulter molto pi comodo provare la macro Colorare.

Rinominare un modulo
Volendo visualizzare la macro Colorare, cliccare sul pulsante Modifica
della finestra di dialogo Macro. Tale macro si trova presumibilmente nel
Modulo3, in ogni caso accertarsene osservando la barra del titolo del
modulo, ove riportato il nome del Modulo.
Per rendere meno generico il nome del modulo, rinominiamolo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

63

Nella
finestra
delle
Propriet, di fianco a
(Name),
selezionare
Modulo3 e digitare il
testo
alternativo
ModColorare.

I cicli
Indubbiamente Colorare una macro simpatica, ma parliamoci chiaro, non
serve a niente. Gi nel nostro elenco di circa 300 records testare tutti i valori
sarebbe assai uggioso, figuriamoci se ci trovassimo innanzi un database di
cinquemila o seimila records!
Dobbiamo trovare il sistema, di far scorrere da Excel tutto lelenco
automaticamente e di fermarsi, quando questi finisce.
Il VBA, dopo If Then, ci mette a disposizione unaltra tipologia di
struttura di controllo: i cicli.
Le strutture a ciclo consentono di eseguire ripetutamente un blocco di
istruzioni di una macro.
Do WhileLoop
Listruzione Do WhileLoop verifica una condizione allinizio del ciclo e
se risulta vera (True) esegue le istruzioni, ripetendole fino a quando la
condizione risulta falsa (False)
Do While condizione
istruzioni
Loop

Modifichiamo la macro Colorare aggiungendovi la struttura di controllo


Do While Loop.

Nota: Il codice di una macro non prevede dei numeri davanti alle righe: la
numerazione delle linee presente nel listato successivo e in altri seguenti,
stata inclusa solo per facilitare il riconoscimento e il commento della sintassi
delle procedure desempio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

64
1: Sub Colorare()
2:
Do While ActiveCell <> ""
'esegue se vero che diverso da vuoto
3:
If ActiveCell > 9999 Then
4:
Selection.Interior.ColorIndex = 6
5:
End If
6:
ActiveCell.Offset(1, 0).Range("A1").Select
7:
Loop
8: End Sub

La procedura alla riga 2 inizia testando la cella attiva ed come se


recitasse:
esegui fino a quando vero che la cella attiva contiene un qualche valore
Se abbiamo avviato la macro con la cella attiva in F5, la cella chiaramente
(vero) diversa da vuota e quindi passa ad eseguire il blocco di istruzioni
successive.
Nota: Il simbolo virgolette/virgolette () senza spazi vuoti significa vuoto; quindi <>
significa diverso da vuoto.
Dalla riga 3 alla riga 5 esegue le istruzioni di controllo del numero degli
abitanti della citt e se superiori a 9999 colora la cella di giallo.
Le istruzioni della riga 6 scendono nella cella F6.
Arrivati alla riga 7 troviamo la parola chiave Loop e ripetiamo il ciclo
partendo dalla verifica del contenuto della cella attiva, che a questo punto
abbiamo visto essere F6.
Il ciclo sar ripetuto sino a quando arrivati a F320 Do While non trover pi
vera la condizione, poich tale cella vuota.

Do Until Loop
Sub Colorare()
Do Until ActiveCell = ""

'esegue se non vero che la cella


vuota

If ActiveCell > 9999 Then


Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

65

Do Until Loop verifica una condizione allinizio del ciclo, ed esegue il


blocco di istruzioni successive fino a quando la condizione risulta falsa, per
poi fermarsi quando la condizione diventa vera.
Entrambi i cicli funzionano perfettamente: forse Do While pi diffuso.
Almeno una volta
Do While e Do Until testano sin dallinizio del ciclo il
soddisfacimento della condizione e se tale non risultasse, non eseguirebbero
neanche una volta la serie di istruzioni comprese nel loro corpo.
Attivare una cella vuota e lanciare la macro Colorare: la procedura non
scender neanche di una cella!
Si dovesse presentare la necessit di eseguire linte ro ciclo di istruzioni,
almeno una volta, prima di verificare il soddisfacimento della condizione,
occorrer eseguire i seguenti ritocchi al codice:
Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop While ActiveCell <> ""
'esegue se vero che diverso
da vuoto
End Sub

Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop Until ActiveCell = ""
' esegue se non vero che la cella
vuota
End Sub

Nota: Le strutture cicliche a volte vanno in errore ed entrano in un loop infinito. Per
uscire da una simile situazione di stallo, premere la combinazione di tasti
CTRL+INTERR .

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

66

Lezione XII - Le variabili


Questa lezione dedicata a uno degli elementi fondamentali nello studio di
qualsiasi linguaggio di programmazione: le variabili.
Definizione di variabile
Le variabili sono aree predefinite della memoria del computer, in cui
vengono archiviati i dati mentre le macro sono in esecuzione. Le variabili
risultano utili per tenere traccia di conteggi che cambiano continuamente,
per conservare linput dellutente o di altra origine e per larchiviazione di
valori destinati ad essere modificati da macro eseguite successivamente.
Nota: in un certo senso possiamo paragonare le variabili alle celle di Excel. Le celle
sono identificabili da un riferimento, tipo A1, o ancora meglio da un nome
(cella denominata), Pippo ad esempio: nello stesso modo noi identifichiamo le
variabili attribuendogli un nome. Il contenuto della cella\variabile pu variare,
ma non il suo nome. Quindi ogni volta che si vuole fare riferimento al valore
contenuto in una determinata cella\variabile baster usare il suo nome.

Non dichiarare le variabili


In VBA, quindi in VB, a differenza di linguaggi di programmazione nobili
come il C ed il Pascal, si pu decidere di non dichiarare le variabili: in
realt le controindicazioni ad una simile ipotesi sono moltissime. In questo
corso non prenderemo in considerazione tale opportunit. Anzi adesso ci
preoccuperemo di eliminare la possibilit, che una evenienza cos scellerata,
come quella di non dichiarare le variabili, possa accadere anche solo
accidentalmente.
Dal menu Strumenti dellEditor di VBA scegliere Opzioni, portarsi
sulla scheda Editor e porre il flag (segno di spunta) sulla scelta
Dichiarazione di variabili obbligatoria.
Dichiarare le variabili
La dichiarazione delle variabili, detta anche dichiarazione esplicita, si
ottiene con la parola chiave Dim (Dimensionare), collocando la
dichiarazione allinizio della procedura o del modulo.
Sub NomeMacro()
Dim NomeVariabile

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

67

Denominazione di variabili
Nellassegnazione di nomi alle variabili, occorre seguire alcune regole di
denominazione. I nomi di variabili:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.
Devono essere univoci, almeno allinterno della procedura, o pi
correttamente nellarea di validit.
Non possono coincidere con il nome di parole chiave del VBA.
Non devono essere composti da pi parole.
Tipo di dati delle variabili
Quando si dichiara una variabile possibile assegnarle anche il tipo di dati
che dovr contenere. Se non si specifica nessun tipo di dati, come
nellesempio sopra esposto (Dim NomeVariabile), viene automaticamente
assegnato il tipo Variant. Il tipo Variant una sorta di minestrone in
grado di gestire qualsiasi tipo di dati. Ma se si desidera creare macro rapide,
e si sa che in una determinata variabile saranno sempre archiviate
informazioni dello stesso tipo di dati, consigliabile specificare il giusto
tipo di appartenenza.
Nome del Tipo
TIPO
Numerico
Integer
Numerico
Long

Dimensioni

Intervallo

2 byte

da 32.768 a 32.767

4 byte

da -2.147.483.648 a 2.147.483.6477
da -3,402823E38 a -1,401298E-45 per
valori negativi; da 1,401298E-45 a
3,402823E38 per valori positivi.
da -1.79769313486231E308 a 4,94065645841247E-324 per valori
negativi; da 4,94065645841247E-324 a
1,79769313486232E308 per valori
positivi.
da -922.337.203.685.477,5808 a
922.337.203.685.477,5807

Single

Numerico

4 byte

Double

Numerico

8 byte

Currency

Numerico

8 byte

String
Boolean
Date

Testo

1 byte per carattere

Logico

2 byte

True o False

Data

4 byte

dal'1 gen. 100 al 31 dic. 9999

Object

Oggetto

4 byte

Variant

Universale 16 b. + 1 b. x carat.

Serve ad accedere ad oggetti riconosciuti


dal VBA.
Pu contenere qualsiasi tipo di dato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

68

La notazione scientifica
La tabella riepilogante i tipi di dati, mostra alcuni numeri un po particolari,
la loro sequenza sembrerebbe interrotta dalla vocale E. Tale particolarit
conosciuta come notazione scientifica. La notazione scientifica viene
utilizzata in genere per rappresentare numeri molto grandi o molto piccoli
in un formato compatto.
1.12E-2
-0.012
2.4E10
24 000 000 000
5E9
5 000 000 000
33E-10
0.00000000033
4.3E1
43

Dichiarazione delle variabili e del tipo


Dim Pippo As String

Dimensioniamo la variabile di nome Pippo come tipo stringa: detta in altre


parole, la variabile Pippo potr contenere del testo.
Dim Pluto As Integer

In questo secondo caso abbiamo dichiarato la variabile Pluto di tipo


numerico Intero.
Dim Paperino, Archimede, Gastone As Variant

In presenza di pi variabili dello stesso tipo, possiamo dichiararle anche


sulla stessa linea.
Vediamo un piccolo esempio pratico sulluso di una variabile.
Sub Prova()
Dim Pippo As Integer
dichiaro una variabile di tipo numerico intero
Pippo = 9999
assegno alla variabile il valore 9999
If ActiveCell > Pippo Then
non uso pi il valore, bens la variabile
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Probabilmente avrete notato, dopo aver scritto la parola chiave As, la


comparsa di un menu a tendina, ospitante un lungo elenco di parole chiave.
Se a quel punto avete digitato la prima vocale, nel nostro esempio la i di

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

69

integer, lelenco si sar posizionato automaticamente in corrispondenza dei


termini inizianti con la i. Quindi, utilizzando il pulsante direzionale che
punta verso il basso, raggiungete integer e premete sul tasto SHIFT per
convalidare la scelta.

Le costanti
Le procedure spesso includono valori che non variano e che ricorrono pi
volte: in questo caso si utilizzano le costanti.
Una costante unarea predefinita della memoria, alla quale viene attribuito
un nome e che sostituisce un numero o una stringa non soggetti a
modifiche.
Le costanti sembrano simili alle variabili, in realt non possibile
modificarle o assegnarvi nuovi valori.
Portata delle variabili
Portata lambito entro cui una variabile accessibile. Larea di azione di
una variabile pu essere a livello di procedura o a livello di modulo.
Una variabile dichiarata allinterno della macro una variabile a livello di
procedura e la sua portata limitata alla macro che la contiene. Per
trasformarsi a livello di modulo, quindi utilizzabile da qualsiasi macro di
quel modulo, una variabile deve essere dichiarata allinizio del modulo.
Dichiarare le costanti
Const Pippo = 9999
Const Paperino = Il mattino ha loro in bocca

Notate che il testo che assegniamo alla costante delimitato dalle virgolette
().
Const Pluto = #03/09/1957#

Le date devono essere delimitate dai cancelletti (#....#).

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

70

Lezione XIII Comunicazioni allutente


Poter offrire allutente la possibilit di dialogare con una nostra procedura
sicuramente affascinante e molto utile. In questa lezione studieremo
MsgBox, la prima delle due finestre di dialogo incorporate del VBA che
incontreremo nel nostro corso.
Una semplice finestra di messaggio
Richiamare lEditor di programmazione dal menu Strumenti\Macro e nella
finestra Progetto eseguire un doppio clic per attivare il Modulo3, che
dovrebbe contenere le macro Colorare e Prova.
Posizionarsi sulla prima riga vuota e dare un paio di invii per creare
spazio rispetto la procedura Prova: quindi digitiare Sub Comunica() e
premere il tasto INVIO. Oltre alla creazione di una riga vuota, saranno
inserite le istruzioni di fine procedura End Sub.
Sub Comunica()
End Sub

Posizionarsi sulla riga vuota presente fra lapertura e la chiusura della


macro, premere il tasto TAB e digitare le seguenti istruzioni:
MsgBox "Il mattino ha l'oro in bocca"

Eseguire Comunica, scegliendola dallelenco delle


macro presenti nella finestra di dialogo Macro:
apparir limmagine riprodotta a lato.
Per poter eseguire qualsiasi altra operazione in
Excel o nellEditor di VBA obbligatorio cliccare
sul pulsante OK.
MsgBox visualizza il testo precedentemente inserito fra le virgolette ().
Gli argomenti di MsgBox
Ma adesso implementiamo il codice di Comunica.
Sub Comunica()
Dim Titolo, Messaggio As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Utilizzo di MsgBox"
MsgBox Messaggio, , Titolo
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

71

MsgBox oltre ad un messaggio, permette anche di impostare la sua barra del


titolo, sostituendo il generico Microsoft Excel con un titolo a nostro piacere.
Mentre veniva digitato il codice, dopo la scrittura della variabile
Messaggio, contenente la comunicazione per lutente, hanno fatto la loro
comparsa due elementi contestuali: unetichetta descrittiva della sintassi di
MsgBox e una casella combinata contenente lelenco degli argomenti
inseribili in quel punto.

Ad onor del vero, letichetta (gialla) descrittiva della sintassi non molto
esplicativa per un novizio del VBA: vediamo di semplificare un po,
inserendo solo gli argomenti principali.
MsgBox(Prompt, [Buttons], [Title])

Fra gli argomenti presentati, solo Prompt obbligatorio. Ci facilmente


deducibile dal fatto che lunico non racchiuso fra parentesi quadre [].
Prompt largomento rappresentante il messaggio da inoltrare, che nel
nostro esempio rappresentato dalla variabile Messaggio.
Buttons, sempre nel nostro esempio non stato contemplato, per non
essendo contemplata la possibilit di saltare un argomento, abbiamo
lasciato a sua testimonianza la doppia virgola , , .
Title il titolo che compare sulla barra del titolo della finestra messaggio,
che nel nostro caso la variabile Titolo.
Nota: Le parentesi tonde a questo stadio di utilizzo della funzione MsgBox non sono
ancora necessarie.
Aggiungiamo anche largomento Buttons, dandogli la forma di un bel punto
esclamativo.

MsgBox Messaggio, vbExclamation, Titolo

Le possibili impostazioni dellargomento Buttons sono:

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

72

Costante
vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4

Valore
0
1
2
3
4
5
16
32
48
64
0
256
512
768

Descrizione

Visualizza solo il pulsante OK.


Visualizza i pulsanti OK e Annulla.
Visualizza i pulsanti Termina, Riprova, e Ignora.
Visualizza i pulsanti S , No e Annulla.
Visualizza i pulsanti S e No.
Visualizza i pulsanti Riprova e Annulla.
Visualizza l'icona di messaggio critico.
Visualizza l'icona di richiesta di avviso.
Visualizza l'icona di messaggio di avviso.
Visualizza l'icona di messaggio di informazione.
Il primo pulsante il predefinito.
Il secondo pulsante il predefinito.
Il terzo pulsante il predefinito.
Il quarto pulsante il predefinito
Finestra di messaggio a scelta obbligatoria
nell'applicazione. L'utente deve rispondere alla
VbApplicationModal
0
finestra di messaggio prima di poter continuare a
lavorare nell'applicazione corrente.
Finestra di messaggio a scelta obbligatoria nel
sistema. Tutte le applicazioni vengono sospese fino a
VbSystemModal
4096
quando l'utente non risponde alla finestra di
messaggio.
Aggiunge un pulsante della Guida nella finestra di
vbMsgBoxHelpButton
16384
messaggio.
Specifica che la finestra di messaggio in primo
VbMsgBoxSetForeground 65536
piano.
vbMsgBoxRight
524288 Il testo allineato a destra.
Specifica che il testo viene visualizzato da destra a
vbMsgBoxRtlReading
1048576
sinistra per i sistemi ebraico e arabo.
Il primo gruppo di valori (0-5) descrive il numero e il tipo dei pulsanti visualizzati nella
finestra di messaggio. Il secondo gruppo (16, 32, 48, 64) descrive lo stile dell'icona. Il terzo
gruppo (0, 256, 512, 768) determina il pulsante predefinito e il quarto gruppo (0, 4096)
determina se la finestra di messaggio a scelta obbligatoria nell'applicazione o nel sistema.
Quando si sommano dei numeri per la creazione di un valore finale dell'argomento buttons,
utilizzare soltanto un numero per ciascun gruppo.

Nota: Il contenuto di questa pagina tratto dalla guida del VBA di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

73

Infine osserviamo la possibilit di inserire pi argomenti Buttons nella


stessa finestra messaggio.
MsgBox Messaggio , vbYesNo + vbExclamation, Titolo

Ma se la finestra messaggio serve solo a fare comunicazioni allutente,


perch in questo ultimo esempio rappresentata la possibilit di scegliere
fra S e No ?
Fra non molto affronteremo anche questo lato di MsgBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

74

Lezione XIV Interazione con lutente


La finestra di input, la seconda delle due finestre di dialogo incorporate del
VBA, ci consente di fare un bel passo avanti nella possibilit di interagire
con i fruitori delle nostre procedure.
Finestra input
La funzione InputBox permette di creare e di visualizzare una semplice
finestra di dialogo che consente limmissione di dati da parte dellutente.
Richiamare lEditor di VB dal menu Strumenti\Macro\Visual Basic
Editor.
Attivare il modulo ModColorare dalla finestra Progetto.
Portarsi alla fine modulo e creare delle righe vuote con degli invii.
Digitare il codice seguente.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo)
7:
MsgBox Contenitore
8: End Sub

Dal menu Strumenti\Macro (Excel o Editor che sia) attivare la


finestra di dialogo Macro ed eseguire la macro Immissione.
Apparir InputBox ove occorrer digitare un nome a piacere.
Confermare cliccando su OK.

Far la sua comparsa una finestra messaggio recante il nome appena


digitato in InputBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

75

La sintassi della macro Immissione, sino alla riga 5, pressoch identica a


quella utilizzata per MsgBox. Anche qui dichiariamo delle variabili, che
saranno poi utilizzate per il titolo e per il messaggio della nostra finestra.
Abbiamo in pi la dichiarazione di una terza variabile di tipo Variant.
Le differenze con le istruzioni di MsgBox, sorgono a partire dalla sesta riga,
come risulta evidente dal codice delle due funzioni messe a confronto.
MsgBox Messaggio, , Titolo

Contenitore = InputBox(Messaggio, Titolo)

La differenza meno rilevante la mancanza nella riga di InputBox


delle due virgole (, ,) che in MsgBox possono essere occupate
dallargomento Buttons, non presente in InputBox.
La seconda differenza, la pi importante, la presenza di una
variabile, Contenitore, ad inizio della riga relativa alla gestione di
InputBox. Associamo alla variabile Contenitore loutput di
InputBox, cio la variabile Contenitore conterr ci che sar digitato
in InputBox.
A questo punto il contenuto della settima riga della procedura Immissione,
dovrebbe essere chiara: MsgBox ci presenter come messaggio il contenuto
della variabile Contenitore, variabile riempita da quello che stato
digitato in InputBox.

Nota: La variabile Contenitore stata dichiarata come tipo Variant, non sapendo a
priori che tipo di dati potrebbero essere digitati.

Loutput verso una cella


Nellesempio precedente abbiamo indirizzato il valore immesso in InputBox
a MsgBox, ma volendo, possiamo anche dirigerlo verso la cella di un foglio
di lavoro.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo, Default)
7:
Range("a1") = Contenitore
8: End Sub

E bastato modificare le istruzioni della settima riga: in luogo della finestra


messaggio abbiamo inserito la cella A1.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

76

Ancora sugli argomenti


A volte linput dellutente abbastanza prevedibile: in tal caso pu risultare
daiuto inserire un testo o un numero predefinito, che potr essere
confermato o alloccorrenza sostituito.
Si dimensioni una terza variabile di tipo string, denominata Default, quindi
sinserisca la seguente riga di codice fra la quinta e la sesta riga
Default= Matteo, Luca e Davide

e modificare la sesta riga, che a questo punto sar diventata la settima in:
Contenitore = InputBox (Messaggio, Titolo, Default)

Metodo InputBox
Il VBA, ogni tanto, presenta degli strani misteri. Uno di questi la
presenza, accanto alla funzione InputBox, di un altro oggetto pressoch
identico, definito metodo InputBox.
Nota: Il VBA pesca i suoi oggetti da varie librerie: la funzione InputBox appartiene
alla libreria di Visual Basic: il metodo InputBox fa parte della libreria di Excel.
Il metodo InputBox presenta un vantaggio rispetto alla omonima funzione:
in grado di filtrare il tipo di dati immesso.
1: Sub SuperImmissione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4: Dim Contenitore As Variant
5:
Titolo = "Corso on line di VBA per Excel"
6:
Messaggio = "Digita il tuo nome"
7:
Default = 10
8:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1)
9:
Range("a1") = Contenitore
10: End Sub

La sintassi del metodo InputBox, come potete vedere nellesempio di fatto


identica alla funzione InputBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

77

Lunica differenza rilevabile alla riga 8. La parola chiave Application


precede InputBox ed presente largomento Type al quale associato il
valore 1, indicante laccettazione di soli valori numerici.

Nellimmagine visibile il
tentativo fallito, di immettere del
testo.

Nota: Application rappresenta lapplicazione Microsoft Excel.

Qui di seguito sono riportati i valori dellargomento Type, atti a specificare


il tipo di dati restituito.
Valore

Significato

Una formula

Un numero

Del testo (una stringa)

Un valore logico (True o False)

Un riferimento di cella, ad esempio un oggetto Range

16

Un valore di errore, ad esempio #N/D

64

Una matrice di valori

A capo
Il codice della macro SuperImmissione, presenta una stranezza: sono
presenti due righe 8. Il VBA non permette di spezzare le righe di codice,
per a volte le righe diventano eccessivamente lunghe e quindi illeggibili.
Si risolve il problema mandando a capo una porzione di codice, dicendo
per al VBA che si tratta di una riga di istruzioni unica. Lultima parola
della riga 8.1, nel nostro esempio, InputBox dopo la quale si creato uno
spazio vuoto con la pressione della barra spaziatrice. Quindi si digitato un
underscore ( _ ) .
8.1:
8.2:

Contenitore = Application.InputBox _
(Messaggio, Titolo, Default, Type:=1)

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

78

Lezione XV Procedura decisionale


In questa lezione daremo sostanza alla realizzazione di una procedura di
interazione fra uomo e macchina. Decideremo di volta in volta qual il
numero massimo di abitanti oltre il quale vogliamo formattare le celle.
Variabili a portata di modulo
Richiamando alla memoria la lezione sulle variabili, sicuramente non avrete
dimenticato il paragrafo dedicato alla portata delle variabili. Nello
svolgimento di questa lezione dovremo ricorrere, per la prima volta, ad una
variabile a livello di modulo.
Attiviamo il modulo ModColorare e posizioniamoci al suo inizio, ove
digiteremo la seguente dichiarazione di variabile.
Dim Contenitore As Variant 'Variabile a livello di modulo

Quindi creiamo una nuova procedura, atta a raccogliere il numero di


abitanti che di volta in volta porremo come limite oltre al quale si dovr
colorare la cella.
1: Sub SceltaPopolazione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Popolazione oltre la quale colorare di giallo"
6:
Default = 9999
7:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1) 'Tipo 1, cio numerico
9: End Sub

La macro SceltaPopolazione, ricalca perfettamente la procedura vista nella


precedente lezione, SuperImmissione.
Lunica differenza appunto la dichiarazione della variabile Contenitore,
fatta a inizio modulo.
La variabile Contenitore conterr il valore digitato nella finestra di input.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

79

Inserire una procedura dentro una procedura


Sempre nel modulo ModColorare cerchiamo la macro Colorare e
immediatamente sotto la prima riga, con un invio, creiamo una riga vuota
ove digitare SceltaPopolazione.
Il risultato non dovrebbe essere dissimile da quello visualizzato nelle righe
sottostanti.
1: Sub Colorare()
2: SceltaPopolazione
'Macro in cui digitiamo la popolazione
3:
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
4:
If ActiveCell > Contenitore Then
'se superiore a 9999
5:
Selection.Interior.ColorIndex = 6
'colora di giallo
6:
End If
fine condizione
7:
ActiveCell.Offset(1, 0).Range("A1").Select
'scende di una cella
8:
Loop
ripeti
9: End Sub

Nota: Incominciando ad aumentare la complessit della procedura i commenti


diventano indispensabili.
Probabilmente avrete gi capito che, la prima istruzione eseguita dalla
macro Colorare sar quella di eseguire le istruzioni della procedura
SceltaPopolazione, posta nella seconda riga.
La procedura SceltaPopolazione, tramite InputBox, richieder il valore
desiderato, che una volta ricevuto memorizzer nella variabile Contenitore.
Terminata SceltaPopolazione, la macro Colorare continuer a processare
le sue istruzioni dalla riga 3 e passata alla riga 4 verificher se il contenuto
della cella attiva superiore al valore contenuto nella variabile
Contenitore.
Tutto ci spiega perch abbiamo dimensionato la variabile a livello di
modulo: essa viene riempita nella procedura SceltaPopolazione, ma il
suo contenuto viene sfruttato allinterno della macro Colorare.
Programmazione strutturata
In questa lezione, inserendo una procedura allinterno di unaltra procedura,
abbiamo adottato la tecnica della programmazione strutturata.
Pi le procedure diventano lunghe e complesse, pi difficile diventa
seguirne il comportamento, correggerle, aggiornarle, sino a diventare
pressoch ingestibili.
Inoltre, a volte, una piccola sottoprocedura pu essere riutilizzata pi volte
allinterno della stessa procedura ospitante, o addirittura da una unaltra
procedura ancora.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

80

Decolorare
Per rendere la nostra applicazione un po pi comoda, registriamo una
macro per togliere il colore dalle celle precedentemente formattate.
Dalla barra degli strumenti Disegno scegliere Casella di testo e
modellarne le forme accanto al pulsante artigianale Verifica,
denominandolo Decolora.
Posizioniamoci in F5, avviamo il registratore di macro,
attribuendogli il nome Decolora e clicchiamo su OK per avviare la
registrazione.
Premere la combinazione di tasti CTRL+SHIFT+ (tasto direzionale
gi) per selezionare tutte le celle contigue
della colonna contenenti dati.
Sulla
barra
degli
strumenti
di
Formattazione agire sul pulsante Colore
riempimento per scegliere Nessun
riempimento.
Attivare la cella F5 per deselezionare.
Interrompere la registrazione.

Sub Decolora()
'Toglie il colore
'Risultato della pressione di CTRL+SHIFT+Tasto direzionale Gi
Range(Selection, Selection.End(xlDown)).Select
Selection.Interior.ColorIndex = xlNone
'No colore
Range("F5").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

81

PARTE 3
Addentrarsi nel VBA
Il viaggio nella conoscenza del VBA, ci porter a perfezionare,
approfondire e assemblare gli strumenti sino ad ora appresi.
Continueremo il discorso su loutput dellutente, impareremo a convivere
con gli errori, a creare finestre di dialogo, a costruire utilit atte a facilitare
il nostro lavoro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

82

Lezione XVI Trova


In questa lezione implementeremo la nostra procedura di colorazione, con
una funzione di ricerca dei comuni.
Pulire lEditor di VB
I moduli collegati al file Comuni incominciano ad essere un po disordinati:
vediamo di fare un po di ordine.
Avviare lEditor di VB.
Dalla finestra Progetto attivare il modulo Modulo3 facendo un
doppio clic.
Con il mouse selezionare le due macro Navigator e Navigator2 e
premere la combinazione di tasti CTRL+X per tagliarle.
Transitare al Modulo2 e posizionarsi al fondo, creando
eventualmente delle righe vuote con degli invii.
Premere la combinazione di tasti CTRL+V per incollare le macro
precedentemente tagliate.
Nella finestra Propriet posizionarsi in corrispondenza di (Name)
per rinominare Modulo2 in Varie.

Nella finestra Progetto cliccare con il


tasto destro su Modulo3 e dal menu
contestuale scegliere la voce Rimuovi
Modulo3

Nota: I nomi, dei moduli menzionati potrebbero non corrispondere esattamente a


quelli creati sul vostro PC. Tale eventualit non dovrebbe comunque
rappresentare un problema.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

83

Far la sua comparsa una finestra mes saggio, con la quale sar richiesto se
si desidera esportare il modulo prima di eliminarlo. Per esportare sintende
creare un file con estensione bas, contenente il codice del modulo in fase di
eliminazione.
Nel nostro caso possiamo tranquillamente ignorare la richiesta di
esportazione e quindi cliccare su NO.

La logica conseguenza, della presenza di una opzione di esportazione, che


sia disponibile anche la possibilit di importare del codice da un file esterno
al nostro progetto. Gi losservazione d el menu contestuale scaturito
dalloperazione di eliminazione del modulo, rileva lopzione Importa file,
richiamabile anche dal menu File dellEditor.
Una macro per trovare
Portandosi nel foglio Comuni, si faccia partire il registratore,
attribuendo alla macro il nome di TrovaComune.
Nella finestra di dialogo Trova e sostituisci, richiamabile dal menu
Modifica di Excel, digitare nella casella Trova: il Comune di Almese
e cliccare su Trova successivo per avviare la ricerca.

Fermare la registrazione.
Attivare lEditor di VB.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

84

La conseguenza dellutilizzo del registratore, sar la creazione del


Modulo1.
Nella finestra Progetto dellEditor di VB effettuiamo un doppio clic su
Modulo1 per visualizzare il codice test registrato.
Sub TrovaComune()
Cells.Find(What:="almese", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub

Nota: Il codice sopra riportato, probabilmente differisce da quello generato dal vostro
registratore nei punti ove va a capo.
La macro generata per trovare il Comune sicuramente troppo logorroica.
D'altronde se osservate la finestra di dialogo Trova e sostituisci, raffigurata
nella pagina precedente, si nota che riproduce tutte le opzioni in essa
presenti. Troppe!
Certamente mettere mano al codice di una macro non necessariamente
semplice, ma possibile.
Si possono eliminare dei pezzi di codice e provare a vedere cosa succede.
Metodo un po empirico, ma a volte funziona.
La guida in linea
Per rendere loperare a tentativi un po pi consapevole, facciamoci aiutare
dalla guida in linea. Si evidenzi il metodo Find e si schiacci il tasto F1:
partir la guida contestualmente alla parola selezionata.
Probabilmente non sar ben comprensibile quello che la guida vi illustrer,
ma con un po di attenzione potrete estrapolare dal tutto il segmento di
codice qui di seguito riportato...
.Find(2, lookin:=xlValues)

dal quale si capisce che Find, tutto sommato, funziona anche con pochi
argomenti.
La guida, inoltre, offre la
possibilit di approfondire
lo studio della sintassi del
metodo Find, cliccando su
Metodo Find applicato
alloggetto Range.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

85

Vediamo adesso come adattare il frammento di codice prelevato dalla guida


alle nostre esigenze

Find

lookin:=xlValues

Cells.Find, come il registratore aveva generato


dovrebbe essere adatto al nostro caso.
con 2 viene cercato un numero e corrisponde al
What:="almese" prodotto dal registratore. Da
ci si deduce che what pu essere omesso e che
volendo cercare del testo lo dovremo inserire fra
virgolette, ottenendo come risultato almese.
questa istruzione specifica il tipo dinformazioni
da cercare, che qui vediamo essere valori
(xlValues), mentre nellesempio della macro
formule (xlFormulas). Se per andiamo a leggere
nel dettaglio la guida in linea, essa ci dice lookin
un argomento facoltativo, quindi, salvo esigenze
specifiche, eliminabile.
Nellesempio tratto dalla guida non presente, ma
Activate presente nel codice della macro che
abbiamo registrato. Indubbiamente serve, poich
una volta localizzato il nome cercato, si vuole
anche attivare la cella che lo ospita.

Sub TrovaComune()
Cells.Find("almese").Activate
End Sub

Niente da dire! Il risultato della rielaborazione della macro iniziale


decisamente pi leggero, con il vantaggio di guadagnarci in velocit di
esecuzione delle istruzioni e di leggibilit.
Il problema che la macro TrovaComune, per quanto stringata
estremamente rigida: cerca solo il Comune di Almese e per variare la
ricerca occorre agire direttamente sul codice, possibilit ovviamente
improponibile per un utente finale.
La prossima lezione sar dedicata a come rendere pi flessibile la ricerca
dei dati.
Nota: Il metodo Activate applicato alloggetto Range (cella), come il metodo Select,
attiva una cella. La differenza fra i due metodi che Select pu agire o su di
una cella singola o si un intervallo di celle, mentre Activate ha influenza su
di una sola cella.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

86

Lezione XVII InputBox e Trova


Partendo dal codice creato nella precedente lezione, cercheremo di creare
una vera e propria procedura di ricerca dati.
Una variabile contro la rigidit
Abbiamo visto nella precedente lezione, che la rigidit della nostra
procedura deriva dal fatto di aver inserito nei suoi argomenti direttamente il
valore da ricercare.
Cells.Find("almese").Activate

Se noi sostituissimo la stringa, che in questo caso indica Almese, con una
variabile, avremmo risolto il problema di poter variare a piacimento
loggetto della ricerca. Quindi dobbiamo trovare il modo di far assumere
alla variabile il valore di volta in volta scelto.
Grazie ad InputBox il problema gi praticamente risolto! Useremo la
finestra di input per chiedere allutente quale Comune vuole ricercare.
Adattare una macro preesistente
NellEditor di VB attivare il Modulo1.
Selezionare e copiare, tramite il menu di scelta rapida che compare
alla pressione del tasto destro, negli Appunti la macro TrovaComune
per andarla ad incollare alla fine del modulo ModColorare.
Nella finestra Progetto, cliccare con il tasto destro su Modulo1 ed
eliminarlo scegliendo dal menu contestuale la voce Rimuovi
Modolo1.
Visualizzare il contenuto del modulo ModColorare, selezionare la
macro SceltaPopolazione e copiarla a sua volta negli Appunti.
Incollare SceltaPopolazione al di sotto della macro TrovaComune e
rinominarla in SceltaComune.
Portarsi allinizio del modulo nellarea Dichiarazioni ed aggiungere
una seconda variabile a livello di modulo denominata, alla faccia
della fantasia, Contenitore2.
Dim Contenitore, Contenitore2 As Variant

Tornare alla fine del modulo e modificare la macro SceltaComune


come di seguito riportato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

87
Sub SceltaComune()
Dim Titolo, Messaggio,Default As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Digita il Comune da trovare"
Default = "Torino"
Contenitore2 = Application.InputBox _
(Messaggio, Titolo, Default, Type:=2)
End Sub

'Tipo 2, cio stringa

Come si pu vedere le variazioni apportate sono veramente minimali.


Si ovviamente variato il messaggio da comunicare, abbiamo precisato che
la variabile ove appoggiare loutput Contenitore2 e che, ovviamente, i
dati sono di tipo stringa.
SceltaComune raccoglie, nella variabile Contenitore2, il Comune da
ricercare e deve passarlo alla procedura TrovaComune. Quindi
SceltaComune rappresenter la prima istruzione di TrovaComune, che a
sua volta andr a cercare il contenuto della variabile Contenitore2.
Largomento What del metodo Find diverr la variabile Contenitore2.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2).Activate
End Sub

Una immagine come pulsante


Abbiamo gi usato la Casella di testo come pulsante alternativo, ma nulla ci
vieta di fare ricorso ad altri oggetti grafici, tipo una clipart.

Dal menu Inserisci\Immagine scegliere clipart.

Modellare limmagine sul foglio e


cliccandoci sopra con il tasto destro, dal
menu contestuale scegliere la voce
Assegna macro, per attribuirgli la macro
TrovaComune.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

88

Lezione XVIII Gestione degli errori


Alcuni manuali di programmazione introducono la gestione degli errori
come primo argomento da affrontare. Ci testimonia la grande importanza
rivestita da tale argomento. Nel nostro corso abbiamo deciso di non
assumere una posizione cos estrema, anche perch una trattazione
approfondita sulla gestione degli errori, rischierebbe di diventare pi
impegnativa dello stesso corso nel suo insieme.
Iniziamo con una presentazione teorica delle tre diverse famiglie di errori

Errori di linguaggio o di sintassi


Derivano da errori di digitazione, tipo lomissione di segni di punteggiatura,
la mancanza di parentesi, o per dimenticanza di una delle parti dei blocchi
di istruzione, quali If senza End If e cos via.
Questi errori possono essere individuati abbastanza facilmente.
Errori di runtime
Si verificano e vengono individuati quando unistruzione tenta di eseguire
unoperazione che non possibile completare in fase di esecuzione. Un
esempio la divisione per zero.
Vediamo un esempio:
Densit = Popolaz \ Superfic

Ove la variabile Superfic assume il valore zero, loperazione diventa


impossibile anche se la sintassi dellistruzione corretta.
Si dice errore di runtime perch viene individuato solo se il codice in
esecuzione.
Questo genere di errori non sempre facilmente individuabile.
Errori logici
In questo ultimo caso, pur in presenza di codice sintatticamente corretto,
che esegue operazioni valide, abbiamo risultati non desiderati.
Visual Basic non individua gli errori logici, pertanto occorre effettuare un
controllo funzionale del codice.
Chiaramente questi tipi di errori risultano essere decisamente infidi.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

89

Il primo errore
Iniziamo subito in salita, affrontando un errore logico, in cui siamo caduti
nellultima lezione con la procedura di ricerca.
Se avete provato a cercare un Comune, la macro TrovaComune ha
sicuramente dato dei buoni risultati, a meno che la scelta sia caduta su
Torino. In tal caso, abbastanza inspiegabilmente, la cella si posiziona
sempre in B2. Guardando con pi attenzione il contenuto della cella,
Comuni Provincia di Torino, scopriamo larcano:
La nostra procedura per default non Confronta intero contenuto della cella,
quindi si ferma in B2 contenente una frase con la parola Torino.
Capito linghippo, per trovare il giusto argomento, che imponga a Find,
di cercare una esatta corrispondenza ai caratteri specificati in InputBox,
andiamo a consultare la guida in linea, che purtroppo non si rivela molto
chiarificatrice.
Questo uno di quei casi, ove simpara ad apprezzare in pieno il
Registratore di macro.
Registriamo le azioni di cercare un valore, qualunque esso sia, con Trova
del menu Modifica, senza attivare lopzione Confronta intero contenuto
della cella, quindi ripetiamo la registrazione, questa volta spuntando
Confronta intero contenuto della cella.
Confrontiamo il risultato delle due registrazioni per individuare ove si
differenziano ed ecco le due istruzioni di nostro interesse.
LookAt := xlPart

LookAt := xlWhole

Anche con un inglese deboluccio si comprende che Part parte e Whole


intero, quindi listruzione che ci necessita LookAt := xlWhole.
Pertanto la macro TrovaComune assumer questa nuova forma.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2, LookAt:=xlWhole).Activate
End Sub

Ancora logica
Rimanendo sempre in tema di errori logici, anche la procedura Colorare
presenta un inconveniente piuttosto fastidioso. Se vogliamo che colori le
celle desiderate, essa ci obbliga a posizionarsi sulla giusta cella di partenza
prima di avviare la macro.
Fortunatamente la soluzione estremamente semplice: nel modulo
ModColorare posizionarsi in corrispondenza della macro Colorare, creare
una riga vuota fra le righe con le istruzioni SceltaPopolazione e Do While

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

90

e digitarvi Range(F5).Select. In tal modo, indipendentemente dalla cella


di partenza, la macro Colorare si posizioner sempre nel punto giusto ove
iniziare a testare i valori delle celle.
Un ultimo ritocco, sempre a Colorare, consiste nel non disorientare lutente
che utilizzer il nostro prodotto. Se d opo aver formattato le giuste celle, il
foglio rimane visualizzato intorno alla trecentesima riga, il che non un
bello spettacolo, oltre ad essere una potenziale fonte di confusione per
utenti non esperti, occorre riposizionarlo allinizio. Dopo listruzione Loop
e prima, ovviamente, di End Sub, inserire Range(A1).Select.
Un errore da runtime
Molto spesso gli errori di runtime sono il frutto di pasticci effettuati con
la tastiera.
Prendiamo sempre la macro Colorare ad
esempio
e
simuliamo
linavvertita
cancellazione dellistruzione Loop, quindi
proviamo ad eseguire suddetta procedura.
Vedremo comparire lavviso di errore a lato
raffigurato, che molto chiaramente spiega
lorigine del guasto.
Dopo aver fatto clic sul pulsante OK sar
visualizzata
la
macro
Colorare,
evidenziata in giallo, ad indicare lo stato
di errore della procedura.
E importante ripristinare la macro andando a cliccare sul pulsante
Ripristina della barra degli strumenti Standard dellEditor di VB.
Naturalmente occorrer anche ins erire nuovamente listruzione Loop.
Un caso ambiguo
Insistiamo con Colorare e questa volta la
nostra sbadataggine ci fa eliminare If finale,
lasciando vedovo End.
Provando ad eseguire la macro sar
nuovamente comunicato un errore: il
problema che il VBA, prendendo farfalle,
ci dir Loop senza Do. Cos un piccolo
refuso da tastiera rischia di diventare un
tormentone, contro il quale lunica cura
leggersi con cura il listato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

91

Un errore ortografico
Per ultima affrontiamo la prima tipologia di errori: gli errori di linguaggio o
di sintassi.
Un po sgrammaticati digitiamo While senza H e facciamo clic sulla riga
successiva. Immediatamente saremo ammoniti del nostro erroraccio.

Un errore spaziale
Induciamo la macro Colorare a commettere un errore grossolano,
modificando il secondo valore di Offset da 0 a -10, cio da nessun
movimento in orizzontale a dieci celle a sinistra.
ActiveCell.Offset(1, -10).Range("A1").Select

Ecco
una
nuova
finestra di segnalazione
errori, ove dovremo
cliccare sul pulsante
Debug.

Non finiscono mai


Il problema che non cos semplice: la casistica degli errori ben pi
ampia di quella illustrata in queste poche pagine.
Molte volte le varie categorie di errori sembrano mescolarsi fra di loro e pi
i programmi diventano grandi, pi diventa complicato venirne a capo.
Fortunatamente il VBA possiede degli strumenti in grado di darci una mano
in questi frangenti. La prossima lezione sar appunto dedicata ad
approfondire le tematiche sulla gestione degli errori e il controllo sul flusso
delle procedure.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

92

Lezione XIX Debug


In VBA sono disponibili strumenti di debug che consentono di analizzare il
funzionamento delle macro e che risultano particolarmente utili per
individuare le cause degli errori. Questi strumenti possono inoltre essere
utilizzati per provare, capire e modificare le procedure create da altri
sviluppatori.
Punti di interruzione
Per riuscire a rintracciare la causa di errori, molte volte si dovr scorrere le
istruzioni di una procedura passo per passo.
Lesecuzione a passo singolo di tutte le istruzioni di una procedura pu
diventare decisamente faticosa, ma solo in alcuni casi veramente
necessario scorrere tutte le righe del programma.
Fortunatamente, il VBA consente di eseguire la maggior parte del codice a
velocit normale e passare in modalit Interruzione, cio a processare una
riga per volta, solo quando vengono eseguite particolari istruzioni
allinterno del codice.
Un punto di interruzione una riga allinterno del codice evidenziata da una
striscia di colore marrone, con al suo fianco un pallino dello stesso colore.
Quando incontra un punto dinterruzione, il VBA passa dalla normale
esecuzione del codice alla modalit Interruzione. Usando i punti di
interruzione possibile seguire la maggior parte di una procedura a velocit
piena e passare in modalit I nterruzione solo quando il VBA raggiunge
listruzione che occorre esaminare con attenzione.
Effettuare il debug
Per effettuare il debug di una procedura occorre visualizzare la barra degli
strumenti Debug, richiamabile dal menu Visualizza\Barre degli strumenti
dellEditor VB.

Attiviamo il modulo ModColorare e cerchiamo la macro Colorare, quindi


in corrispondenza della terza riga
della suddetta procedura fare clic
allinterno del margine sinistro per
impostare il punto di interruzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

93

Quindi fare clic sul pulsante Esegui Sub, posto sulla barra degli
strumenti Debug.
Saranno immediatamente eseguite
le istruzioni della sotto procedura
SceltaPopolazione,
per
poi
fermarsi in corrispondenza della
riga con il punto dinterruzione.
A questo punto fare clic sul pulsante Esegui Istruzione, posto sulla
barra degli strumenti Debug per eseguire un passo alla volta.

Dopo il clic sul pulsante Esegui Istruzione la riga gialla si sposta nella riga
in basso. In questa fase stata eseguita listruzione della riga iniziale
(quella marrone) e il VBA in attesa di eseguire listruzione della riga
colorata di giallo.
Eseguendo nuovamente clic sul pulsante Esegui Istruzione, viene
controllato il valore contenuto nella variabile Contenitore che, nel caso
illustrato nellimmagine sottostante, deducibile essere inferiore al valore
della cella, perch invece di passare allistruzione successiva, ove avrebbe
colorato la cella, salta immediatamente a End If.

Continuando a cliccare su Esegui Istruzione processeremo riga per riga,


sino a quando, terminate le esigenze di indagine del codice,
interromperemo il debug cliccando sul pulsante Ripristina.
E importante ricordarsi di togliere il punto dinterruzione, risultato
ottenibile eseguendo le stesse operazioni richieste per definirlo, cio
cliccando sopra il pallino marrone.
Nota: Il pulsante Esegui Sub, utilizzato senza lintermediazione del punto
dinterruzione esegue il flusso della procedura tutto di un fiato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

94

E possibile eseguire il debug anche senza lausilio del punto


dinterruzione. In tal caso posizioniamo il cursore in corrispondenza della
procedura che si desidera verificare e cliccando sul pulsante Esegui
istruzione sar eseguita una istruzione alla volta, partendo dallinizio della
macro. Per interrompere il debug, anche in questo caso, ricorrere al pulsante
Ripristina, oppure, per far scorrere velocemente tutto il codice, fare clic sul
pulsante Esegui Sub.
Intercettare gli errori di runtime
Per quanti sforzi si facciano in fase di sviluppo di un programma, non sar
possibile sterminare tutti gli errori, specie se linput dei dati dipende dagli
utenti. Citando lesempio della precedente lezione, pu accadere che
lutente, perfido, immetta in InputBox uno 0 come divisore.
Il VBA dotato di un sistema di rilevazione degli errori che permette di
evitare la visualizzazione dei messaggi di errore.
Tale risultato ottenibile dalla seguente sintassi:
On Error GoTo SaltaErrore

Specificando che SaltaErrore un nome di fantasia, definito etichetta


(label), possiamo tradurre il codice in:
In caso di errore salta alletichetta SaltaErrore.
Sub StudioErrori()
Dim Popolaz, Densit, Superfic As Long
Popolaz = 2000
Superfic = 0
On Error GoTo SaltaErrore
Densit = Popolaz \ Superfic
MsgBox "Ogni abitante dispone di " & Densit & " metri quadri"
Exit Sub
SaltaErrore:
MsgBox "Impossibile dividere per zero", vbCritical
End Sub

Dallesempio si pu vedere che letichetta SaltaErrore: stata posizionata


per entrare in azione in caso di errore, al termine delle normali istruzioni.
Si dovuto, inoltre, aggiungere listruzione Exit Sub per terminare in
anticipo la macro, in modo che non esegua le istruzioni relative agli errori,
se errori non ci sono.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

95

Lezione XX I Forms
Fino a questo momento abbiamo preso confidenza con le due finestre di
dialogo incorporate del VBA: la funzione MsgBox e la funzione/metodo
InputBox. Sebbene questi due oggetti possano garantire ad un programma
una buona dose di interattivit, il loro utilizzo non permette di raggiungere
un elevato grado di flessibilit e di personalizzazione.
Fortunatamente il VBA permette di creare delle finestre di dialogo
personalizzate, conosciute con il nome di Forms.
Il primo form
Dal menu Inserisci, dellEditor di VB, scegliere la voce UserForm.

Faranno la loro
comparsa
due
nuovi elementi: un
form denominato
UserForm1 e la
barra
degli
strumenti Casella
degli strumenti.

A seguito dellinserimento del Form, la finestra


Progetto visualizza una ulteriore ramificazione con
la cartella Form e al suo interno, il Form appena
generato UserForm1.

Osservando la finestra delle Propriet,


con il Form selezionato, si nota come
siano decisamente aumentati gli elementi,
le propriet appunto, in essa presenti .
Modifichiamo la propriet nome ( Name)
in Dialogo, quindi modifichiamo anche la
propriet Caption in Form di Studio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

96

Potremo osservare che a seguito della modifica della


propriet Caption cambiato il nome presente sulla
barra del titolo del Form.
A questo punto occorre fare un po di chiarezza sulla
differenza fra le propriet Name e Caption, che
probabilmente,
non
risulta
immediatamente
comprensibile.
Name il nome delloggetto, tramite il quale
identificabile tra altri oggetti.
Caption una semplice etichetta descrittiva.
Forms e pulsanti
Il foglio di lavoro Comuni, incomincia ad essere un po troppo affollato da
pulsanti di vario genere. Spostiamo questi controlli sulla finestra di dialogo.
Selezionare Pulsante di comando dalla barra degli strumenti Casella degli
strumenti e modellarlo nel Form Dialogo.
Notate che con il Pulsante di comando selezionato, la finestra delle
Propriet si aggiorna automaticamente alloggetto selezionato.

Personalizzare il pulsante tramite la finestra delle Propriet.


In un Form, per modificare laspetto di un Pulsante di comando, o di un
altro controllo, occorre agire sulle sue propriet.
Cambiare la descrizione del pulsante in Verifica agendo sulla
propriet Caption.
Cambiare il colore della scritta grazie alle tavolozze dei colori della
propriet ForeColor.
Infine grassettare la scritta agendo sulla propriet
Font.
Agendo sulla propriet Font stato visualizzato il pulsante Genera (quello
con i tre puntini), sul quale occorre fare clic per visualizzare una finestra di
dialogo con le relative propriet.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

97

Evento clic
Ora dovremmo associare al pulsante il listato della procedura Colorare, ma
ormai, non siamo pi in un foglio di lavoro: quindi se nel menu contestuale,
richiamato con il clic del tasto destro sul pulsante, cercheremo la voce
Assegna macro, non ne troveremo traccia.
Siamo entrati nella logica della programmazione ad eventi.
Un evento un azione riconosciuta da un oggetto, per la quale possibile
definire una risposta. Esempi di eventi possono essere: il clic del mouse o la
pressione su di un tasto. Un evento pu essere originato dallintervento di
un utente o da una macro.
Nella finestra Progetto fare doppio clic su ModColorare.
Selezionare il codice della macro Colorare, escludendo le righe di
inizio e fine procedura e copiarlo negli Appunti (Modifica\Copia).
Attivare il form Dialogo.
Posizionare il puntatore del mouse sopra il pulsante di comando ed
eseguire un doppio clic.
Apparir un modulo relativo al Form Dialogo, impostato sullevento
Click del pulsante.

Posizionarsi nel corpo della procedura CommandButton1_Click( ) e


incollare il contenuto degli Appunti, cio il listato della macro
Colorare.
Private Sub CommandButton1_Click()
SceltaPopolazione 'Macro in cui digitiamo la popolazione
Range("F5").Select
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then 'se superiore a xxxx
Selection.Interior.ColorIndex = 6 'colora di giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

98

Verifichiamo il funzionamento del nostro operato assicurandoci


che il form Dialogo sia attivo e clicchiamo sul pulsante Esegui
Sub/User Form.

La finestra di dialogo Dialogo, per


quanto un po sgraziata, far la sua
comparsa nel foglio di lavoro. Ma
amara la sorpresa nel constatare che
cliccando sul pulsante Verifica, dopo
aver diligentemente digitato il valore
richiestoci da InputBox, otteniamo
un'unica uniforme pennellata di giallo.

Perch questo errore? Ricordate il discorso delle variabili con la portata


estesa a livello di modulo? Bene, dichiarando la variabile Contenitore
nellarea di dichiarazione dei moduli labbiamo resa disponibile a livello di
tutto il modulo, ma non disponibile fra moduli diversi, come invece
necessita in questo caso.
Occorre rendere la variabile Contenitore disponibile per tutti i moduli della
Cartella, risultato ottenibile sostituendo, nellarea di dichiarazione del
modulo ModColorare, la parola chiave Dim con Public.
Public Contenitore, Contenitore2 As Variant

Pubbliche e Private
Presentando la parola chiave Public, balzer allocchio per analogia che, la
macro CommandButton1 preceduta da Private.
Le procedure in VBA per default sono Public, cio accessibili per tutte le
altre routine in tutti i moduli. Si utilizza la dichiarazione Private per rendere
una procedura accessibile alle sole routine incluse nel modulo di
appartenza.
Si dichiarano le procedure come Private quando si vogliono evitare
indesiderate interferenze fra routine di vari moduli e per risparmiare
preziosa memoria.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

99

Lezione XXI Forms: atto II


Nella precedente lezione abbiamo lasciato il nostro Form un po
incompiuto. Per poterlo vedere in azione, dallEditor abbiamo agito sul
pulsante Esegui Sub/User Form, prospettiva improponibile per un utente
finale.
Dare vita ad un Form
Attivare il foglio di lavoro Comuni.
Eliminare i pulsanti che richiamano le procedure TrovaComune (il
microscopio) e Decolora, cliccandoci sopra con il tasto destro e
scegliendo Taglia.
Fare clic sul pulsante Verifica tenendo premuto il tasto CTRL e
modificare il testo descrittivo in Scegli opzioni.
Attivare lEditor, visualizzare il modulo ModColorare e
posizionarvisi alla fine digitando la seguente procedura:
Sub LanciaDialogo()
Dialogo.Show
End Sub

Ritornare sul foglio Comuni e cliccando con il tasto destro sullo


unico pulsante rimasto, associargli la macro test creata:
LanciaDialogo.

La sintassi per eseguire una finestra di dialogo, come si pu vedere,


estremamente sintetica: nome oggetto, che nel nostro caso il Form
Dialogo, seguito dal metodo Show.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

100

Chiudere un Form
Il Form Dialogo per essere chiuso ci obbliga ad agire sulla X posta sulla
barra del titolo. Volendo porre un pulsante espressamente adibito alla
chiusura del Form, seguiamo i seguenti passi.
NellEditor di VB attivare il Form Dialogo.
Generarci sopra un nuovo pulsante e
denominiamolo Chiudi.
Fare doppio clic sul pulsante test
creato.
Digitare listruzione END nel corpo
della procedura, per ottenere il risultato
visualizzato nel sottostante codice di
esempio.

Private Sub CommandButton2_Click()


End
End Sub

Se poi si vuole che la finestra di dialogo venga chiusa immediatamente


dopo aver eseguito la procedura Colorare, connessa al pulsante Verifica,
aggiungere listruzione End prima dellultima riga.
End
End Sub

Verificate il funzionamento dei due pulsanti.


Aggiungere un altro pulsante
Aggiungiamo un terzo pulsante al Form Dialogo per gestire la
decolorazione.
Nella finestra Progetto dellEditor VB eseguire un doppio clic sul
modulo ModColorare per visualizzarlo.
Selezionare il codice della routine Decolora escludendo la prima e
lultima riga e copiarlo negli Appunti.
Nella finestra Progetto dellEditor VB eseguire un doppio clic sul
Form Dialogo per visualizzarlo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

101

Nella Casella degli strumenti cliccare sul Pulsante di comando e


modellarlo sul Form.
Variare la propriet Caption del nuovo pulsante in Decolora.
Fare doppio clic sul pulsante etichettato Decolora, per visualizzare
un modulo relativo al Form Dialogo, impostato sullevento Click del
pulsante.
Posizionarsi nel corpo della procedura CommandButton3_Click() e
incollare il contenuto degli Appunti, cio il listato della macro
Decolora.
Aggiungere End come ultima istruzione della procedura, cio prima
dellutima riga, per chiudere il Form.

Duplicare i pulsanti
I pulsanti di un Form, in linea di massima, devono avere tutti le stesse
dimensioni, tipo di carattere e cos via. Loperazione di generare il pulsante
etichettato Decolora stata piuttosto lenta e imprecisa, costringendoci a
reimpostare tutte le propriet sul modello del precedente pulsante
etichettato Verifica.
Per evitare una simile trafila, selezionare il pulsante da usare come modello
ciccandoci sopra, quindi premere la combinazione di tasti CTRL+C per
copiarlo negli Appunti, infine cliccare in un punto vuoto qualsiasi del Form
e premere la combinazione di tasti CTRL+V per incollare un clone del
primo pulsante.
A questo nuovo pulsante si dovr cambiare la propriet Caption e a seguito
del doppio clic associare il codice di pertinenza. E abbastanza intuitivo che
con questo sistema riprodurre anche un gran numero di pulsanti tutti uguali,
non rappresenterebbe un problema.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

102

Lezione XXII Allora Se


Questa lezione, grazie anche allapprofondimento della struttura decisionale
If, dedicata a rendere pi flessibile ed interattiva la procedura di
colorazione delle celle.
Chiedere conferma
Prima di eseguire delle modifiche, molte volte, le procedure chiedono
conferma allutente tramite una finestra messaggio.
Per implementare la suddetta modifica seguire i seguenti passi.
Attivare il modulo ModColorare, e portarsi allinizio nellarea
Dichiarazioni ed aggiungere una terza variabile a livello di modulo,
denominata Risul.
Public Contenitore, Contenitore2, Risul As Variant

Successivamente digitare la seguente procedura.


Sub Messaggi1()
Dim Mess, Titolo As String
Mess = "Sei sicuro di voler procedere."
Titolo = "Corso on line di VBA per Excel"
Risul = MsgBox(Mess, vbYesNo + vbQuestion, Titolo)
End Sub

Abbiamo
creato
una
procedura
espressamente dedicata alla gestione di
messaggi per lutente. Posizionando il
cursore in corrispondenza di una riga della
procedura Messaggi1, cliccate sul
pulsante Esegui Sub/ User Form per
visualizzare questa nuova finestra
messaggio.
Notate la presenza di due pulsanti in luogo dellunico esemplare presente
negli altri esempi con MsgBox. Chiaramente i due pulsanti sono generati
dallistruzione vbYesNo. Un altro particolare da non trascurare la
variabile, a livello di modulo, Risul che ricever loutput del pulsante sul
quale lutente avr fatto clic.
Portarsi nel Form Dialogo e cliccare due volte sul pulsante etichettato
Verifica.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

103

Apportare alla Sub CommandButton1_Click le variazioni evidenziate in


grassetto visibili nel codice sottostante.
Private Sub CommandButton1_Click()
SceltaPopolazione
Range("F5").Select
Messaggi1
procedura di visualizzazione messaggio
If Risul = vbNo Then Exit Sub se cliccato sul pulsante No esce
Do While ActiveCell <> ""
If ActiveCell > Contenitore Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
Range("a1").Select
End
End Sub

Se in seguito alla visualizzazione della finestra messaggio, generata dalla


procedura Messaggi1, si clicca sul pulsante NO, la procedura viene subito
terminata. Altrimenti saranno eseguite tutte le istruzioni per colorare le celle
che contengono pi di tot abitanti.
Scegliere un colore
Nella creazione del messaggio di conferma, abbiamo fatto ricorso alla
struttura decisionale If, nella sua forma pi semplice: in realt If pu
esprimere ben altri livelli di strutturazione. Poniamo il caso di voler dare
allutente della nostra applicazione, la possibilit di attingere il colore con
cui formattare le celle da una tavolozza di almeno tre colori: il giallo, il
rosso e il verde. Sappiamo che nellindice della tavolozza dei colori il giallo
corrisponde al 6. Per conoscere il valore corrispondente al rosso e al verde,
registrare una macro che colora due celle rispettivamente dei due colori
desiderati. Il rosso corrisponde al 3 ed il verde al 4.
I Pulsanti di opzione
Ma come fare a dare allutente la possibilit di comunicare alla procedura il
colore da lui preferito? Usando i Pulsanti di opzione!
Attivare il Form Dialogo.
Eventualmente ingrandirlo per facilitare lintroduzione di nuovi
oggetti.
Sulla Casella degli strumenti fare clic sul pulsante Cornice e
modellare il controllo sul Form, tenendo conto che dovr
contenere tre Pulsanti di opzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

104

Dalla Casella degli strumenti scegliere il Pulsante di opzione e


modellarlo allinterno delloggetto Cornice teste introdotto nel
Form.
Ripetere le operazioni del paragrafo precedente per altre due volte.
Modificare, nella finestra Propriet, la propriet Caption del
Pulsante di opzione OptionButton1 in Giallo, ricordando che il
controllo in oggetto deve essere selezionato..
Procedere nel modificare la propriet Caption degli altri due Pulsanti
di opzione, in Rosso e Verde.
Modificare la propriet Caption della Cornice in Colore.
Fare clic sul pulsante Esegui Sub / User Form per verificare il
funzionamento dei Pulsanti di opzione.
I Pulsanti di opzione si escludono reciprocamente, quindi il loro
funzionamento corretto quando uno solo di essi rimane selezionato. Sono
stati introdotti allinterno di una Cornice poich in caso contrario non
funziona lesclusione vicendevole.
Nelleventualit
si
riscontrassero
dei
problemi nel rendere uniforme laspetto dei
Pulsanti di opzione agire sulla propriet
Height (altezza) ed uniformarne il valore.
Occorre poi definire qual il colore
predefinito, che nel caso dellimmagine a lato
il giallo. Per ottenere suddetto risultato,
impostare la relativa propriet Value su True,
controllando che la propriet Value degli altri
due Pulsanti di opzione sia impostata su
False.
IfThenElse IfElseEnd If
NellEditor di VB visualizzare il Form Dialogo e dal menu Visualizza
scegliere la voce Codice, per accedere al modulo del Form. Nellarea di
dichiarazione, cio allinizio del modulo, dimensionare una variabile
denominata Pennello con portata a livello di modulo.
Dim Pennello As Integer

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

105

Quindi digitare la seguente procedura.


Sub ScegliColore()
If OptionButton1.Value = True Then
'se il primo pulsante
Pennello = 6
'giallo
ElseIf OptionButton2.Value = True Then 'altrimenti se il secondo
Pennello = 3
'rosso
Else
'altrimenti il terzo
Pennello = 4
'verde
End If
End Sub

Questa volta la struttura decisionale If ha scelto fra tre possibilit.


Dopo la prima possibilit IfThen passato alla seconda ElseIfThen,
infine lultima con Else senza il Then.
Se invece di avere tre scelte, ne avessimo avute quattro, la terza sarebbe
stata ElseIfThen e la quarta Else.
Infine modificare la procedura CommandButton1_Click legata alla
formattazione delle celle come di seguito riportato.
Private Sub CommandButton1_Click()
SceltaPopolazione
'Macro in cui digitiamo la popolazione
ScegliColore
Macro per scegliere il colore
Range("F5").Select
Messaggi1
Macro per scegliere se controllare
If Risul = vbNo Then Exit Sub
Do While ActiveCell <> "" ' esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then
'se superiore a 9999
Selection.Interior.ColorIndex = Pennello 'colora
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End
End Sub

Dopo la procedura SceltaPopolazione, abbiamo introdotto la procedura


ScegliColore adibita a raccogliere la scelta del colore dai Pulsanti di
opzione.
Per lindicazione del colore da usare con
Selection.Interior.ColorIndex = abbiamo introdotto la variabile Pennello
contenente il valore del colore scelto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

106

Case
La struttura If ElseIf, consente di nidificare al suo interno altre strutture If o
anche If ElseIf, un po come in Excel nidifichiamo la funzione Se, con la
differenza che in VBA le possibilit sono enormemente pi elevate.
Per se la scelta dovesse avvenire fra molti elementi, una decina per
esempio, la struttura If EsleIf, pur funzionando, non rappresenterebbe
lideale. Se ciascuna istruzione ElseIf esegue un confronto della stessa
espressione con valori diversi, questo approccio risulta complicato. In tal
caso, consigliabile utilizzare listruzione Select Case.
Sub StudioCase()
Dim Numero As Integer
Number = 7
' Inizializza la variabile
Select Case Number
Case 1
' Numero 1
MsgBox "S uno", vbExclamation
Case 6, 7, 8
' Numeri tra 6 e 8
MsgBox "S da 6 a 8", vbExclamation
Case 9 To 12
' Numeri da 9 a 12
MsgBox "S da 9 a 12", vbExclamation
Case Else
'Gli altri numeri
MsgBox "Altro", vbExclamation
End Select
End Sub

Per verificare il funzionamento di questultima procedura, sostituire il


contenuto della variabile Number.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

107

Lezione XXIII Ciclo For Next


Il ciclo For Next (Per Successivo), consente di eseguire un
determinato gruppo di istruzioni, un certo numero di volte. Un ciclo For
un modo sintetico per scrivere un gran numero di istruzioni che fanno
sostanzialmente la stessa operazione.
Osserviamo questo semplice esempio.
Sub Saluti()
Dim Conta As Integer
For Conta = 1 To 5
MsgBox "Ciao"
Next
End Sub

Eseguite questa macro e la finestra messaggio vi saluter per cinque


volte. Se non avessimo usato il ciclo For per ottenere lo stesso risultato
avremmo dovuto scrivere la procedura nel seguente modo.
Sub Saluti()
MsgBox
MsgBox
MsgBox
MsgBox
MsgBox
End Sub

"Ciao"
"Ciao"
"Ciao"
"Ciao"
"Ciao"

Forse lesempio illustrato non rende ancora giustizia alle potenzialit del
ciclo For, ma osservate questaltro listato.
Sub ProvaFor()
Dim Conta, Elabora As Long
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
For Conta = 1 To 5
Elabora = Elabora * 2
Next
MsgBox Elabora
End Sub

La variabile Conta il contatore del ciclo For: ogni volta che il ciclo viene
eseguito la variabile Conta aumenta di uno. Nella prima esecuzione del
ciclo essa conterr uno, nellultima ripetizione, se il ciclo viene ripetuto
cinque volte, conterr cinque.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

108

Il numero di volte che il ciclo viene ripetuto dato dal valore espresso dopo
la parola chiave To, cio il 5.
1 To 5, che pu essere tradotto in : dallinizio (1) alla fine (5).
Quindi la variabile Elabora, che prima dellinizio del ciclo, ha assunto il
valore digitato in InputBox (per facilitare lesposizione dellesempio
poniamo sia 3), assume il valore di se stessa moltiplicata per 2, cio 3*2= 6.
Il ciclo giunge a Next e da inizio alla seconda ripetizione con la variabile
Elabora che avr un valore di 6 e gl i sar assegnato il valore di se stessa
per 2, cio 6*2 = 12.
E cos continuando sino alla quinta esecuzione, ove consegue il risultato di
96, visualizzato nella finestra messaggio.
Ricavare dati da una cella
Il ciclo For pu diventare anche pi flessibile rendendo dipendente il
numero di ripetizioni da una variabile. Invece di avere
1 To 5 , possiamo proporre 1 To NomeVariabile.
Preparare questo nuovo esempio, controllando che nella cartella in cui
stiamo lavorando sia presente un foglio di lavoro denominato Foglio1, e
digitare nella cella A1 il valore 5. Il numero di ripetizioni sar determinato
dal valore presente nella cella A1 del foglio Foglio1.
Nel codice sottostante possiamo vedere che nella riga 3 la variabile
Raccogli, assume il valore della cella A1. Nella riga 5 il numero di
ripetizioni determinato dalla variabile Raccogli.
1: Sub ProvaFor()
2: Dim Conta, Elabora, Raccogli As Long
3: Raccogli = Sheets("Foglio1").Range("a1")
4: Elabora = Application.InputBox("Digita un numero", , , Type:=1)
5:
For Conta = 1 To Raccogli
6:
Elabora = Elabora * 2
7:
Next
8: MsgBox Elabora
9: End Sub

Verificare il funzionamento di questa procedura posizionando il cursore in


un punto qualsiasi di ProvaFor e cliccare sul pulsante Esegui Sub. Noterete
che cambiano il valore della cella A1 in Foglio1 cambier il risultato finale.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

109

Errore di Overflow
Ma in agguato c un
errore. Provate a
digitare 1020 in A1 e
20 in InputBox. Far
la sua comparsa una
finestra di dialogo
comunicante
un
errore di Overflow.
Un Overflow pu
essere il risultato di
un'assegnazione
superiore al valore massimo previsto. Inseriamo nella nostra procedura la
gestione degli errori, come visto nelle precedenti lezioni.
Sub ProvaFor()
Dim Conta, Elabora, Raccogli As Long
Raccogli = Sheets("Foglio1").Range("a1")
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
On Error GoTo Salta
For Conta = 1 To Raccogli
Elabora = Elabora * 2
Next
MsgBox Elabora
Exit Sub
Salta:
MsgBox "Numeri troppo alti"
End Sub

Proteggere e sproteggere
Molte volte si deve lavorare con cartelle di lavoro contenenti un gran
numero di fogli, che per esigenze procedurali dobbiamo consegnare
allutente finale protetti. Durante la lavorazione e successivi aggiornamenti
si dovr procedere alla protezione e sprotezione dei fogli di lavoro pi
volte, attivit decisamente lunga e noiosa, anche perch non effettuabile in
multifoglio.
Le due procedure qui di seguito riportate proteggono e sproteggono tutti i
fogli di una cartella di lavoro in un battibaleno, inserendo anche una
password, che naturalmente pu essere variata a piacere.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

110
Sub Proteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Protect Password:="lilli"
Next
Worksheets(1).Select
End Sub
Sub Sproteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Unprotect Password:="lilli"
Next
Worksheets(1).Select
End Sub

Rispetto agli esempi precedenti sono presenti I seguenti elementi di


innovazione.
spro = Worksheets.Count

La propriet C ount restituisce il numero di fogli di lavoro presenti in una


cartella di lavoro.
Worksheets(fog).Select

Un foglio di lavoro, oltre che dal nome individuabile dalla posizione che
occupa nella cartella di lavoro, quindi Worksheets(1) rappresenta il primo
foglio di lavoro. Nel nostro caso Worksheets(fog) , il luogo del valore c la
variabile fog . Se alla variabile fog viene associato il valore 1, indicher il
primo foglio, associandogli 2, il secondo foglio e cos via.
ActiveSheet.Protect

Ovviamente protegge il foglio di lavoro attivo, mentre Unprotect lo


sprotegge. E possibile omettere listruzione Password, in tal caso la
protezione avverr senza nessuna parola segreta.
Utilizzando InputBox anche possibile permettere allutente di
personalizzare la password.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

111

Lezione XXIV Nidificare For Next


Un ciclo ForNext pu essere inserito allinterno di un altro ciclo
ForNext, operazione comunemente definita nidificazione.
Per mettere in pratica questa potente possibilit offertaci dal VBA,
creeremo una routine che automaticamente ordiner i fogli di lavoro di una
cartella.
Il codice di ordinamento
Il listato sottostante, piuttosto astruso ad una prima occhiata, ordina
alfabeticamente tutti i fogli di una cartella di lavoro.
Sub OrdinaFogli()
Dim ordina As Integer, ordfog As Integer
For ordina = 1 To Sheets.Count
For ordfog = 1 To Sheets.Count 1
If Sheets(ordfog).Name > Sheets(ordfog + 1).Name Then
Sheets(ordfog).Move after : =Sheets(ordfog + 1)
End If
Next ordfog
Next ordina
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

112

For ordina = 1 To Sheets.Count

For ordfog = 1 To Sheets.Count 1

If Sheets(ordfog).Name >
Sheets(ordfog + 1).Name Then

Sheets(ordfog).Move after :
=Sheets(ordfog + 1)
End If
Next ordfog
Next ordina

Esegue il ciclo For per il numero di fogli presenti


nella Cartella di lavoro. Tale valore determinato
dallistruzione Sheets.Count che conta il n di fogli
presenti nella cartella. Count una propriet che
restituisce il numero degli oggetti presenti in un
insieme.
Questo secondo ciclo For esegue la medesima
operazione del precedente, ma una volta in meno.
Nella prima esecuzione del ciclo For il
Foglio(ordfog), cio il primo della cartella viene
confrontato con il secondo foglio della Cartella, e se
alfabeticamente successivo (>) vengono eseguite le
istruzioni della riga sottostante. Nella seconda
esecuzione del ciclo For, il confronto avverr fra il
secondo e il terzo foglio e cos via.
Queste istruzioni vengono eseguite se la condizione
della riga precedente VERA. I due fogli vengono
invertiti di posizione, per ordinarli alfabeticamente.
Fine condizione
Fine del secondo ciclo For, con l'istruzione Next
(successivo) viene ripetuto.
Fine del primo ciclo For, con l'istruzione Next
(successivo) viene ripetuto.

La sintassi di questa procedura abbastanza semplice, quello che


probabilmente risulta un po ostico da intuire il perch occorrono due cicli
For, cio la loro nidificazione. Illustriamo il risultato dell'esecuzione della
procedura OrdinaFogli dopo aver disabilitato il primo ciclo For.

Nell'immagine
a sinistra
vediamo i fogli
di una cartella
da ordinare di
una cartella.

Nell'immagine a
destra la stessa
Cartella dopo
l'esecuzione della
procedura
OrdinaFogli con il
primo ciclo For
disabilitato.

Un poco di ordine stato fatto, ma non a sufficienza! Praticamente con


l'esecuzione del secondo ciclo For stato messo a posto solo il primo foglio
della cartella. Soltanto riabilitando il primo ciclo For il secondo ciclo sar
eseguito per il numero di volte corrispondente al numero dei fogli, in modo
tale che ad ogni esecuzione del primo ciclo For il secondo ciclo For mette
in ordine un foglio della Cartella di lavoro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

113

PARTE 4
Controllare Excel
Una delle grandi prerogative del VBA, la possibilit di creare nuove
funzioni da affiancare alle funzioni incorporate di Excel, di manipolare e
spostare dati, di determinare le opzioni di apertura di una cartella, di
eliminare la comparsa di messaggi di avvertimento; insomma, di assumere
il controllo di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

114

Lezione XXV Le Function

Tipi di routine
In Visual Basic, quindi VBA, possibile creare due tipi di routine, ovvero
la gi ampiamente sperimentata Sub e la routine Function.
La routine Sub ununit di codice racchiusa tra le istruzioni Sub e End Sub
che esegue delle operazioni, senza restituire alcun valore.
Una routine Function ununit di codice racchiusa tra le istruzioni
Function e End Function che esegue unoperazione specifica restituendo un
valore.
Le routine Function possono essere utilizzate in sostituzione di formule
complesse, direttamente nei fogli di lavoro, proprio come si utilizzano le
funzioni incorporate di Excel.
Creare una nuova funzione per Excel
Grazie alle formule di Excel, riusciamo a risolvere problemi veramente
complessi. Purtroppo, a volte, determinati problemi risultano essere
superiori al nostro retroterra culturale. Ad esempio, personalmente non
capisco assolutamente niente di finanza, quindi non sarei in grado di
calcolare limporto delle singole rate mensili, derivanti dal finanziamento
chiesto ad una banca per acquistare unauto. Fortunatamente Excel ci mette
a disposizione la funzione Rata, cos il problema risolto in poche battute
sulla tastiera.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

115

Come si pu vedere nellimmagine, la finestra di dialogo Incolla funzione


raccoglie un bel numero di Categorie, le quali a loro volta, contengono una
ulteriore ricca scelta di funzioni. Ma, il destino birbone, state tranquilli, far
in modo che la funzione per voi, in quel momento indispensabile, non sia
contemplata nella pur ricca collezione di Excel.
Ed proprio qui che entrano in ballo le routine di tipo Function.

Analisi del problema


Attenzione! Si presuppone che, se pensiamo di creare una funzione per
aiutare lutente, o anche noi stessi, il problema da affrontare sia dotato di
una discreta complessit. E quindi, indispensabile effettuare una accurata
analisi delle problematiche da affrontare e del come risolverle.
Il pretesto preso per il nostro esempio, attinge la sua ispirazione da una
forma di lavoro che sempre pi si sta diffondendo, soprattutto fra i pi
giovani: la collaborazione coordinata e continuativa. In molti si saranno
scoraggiati di fronte alla complessit del calcolo della ritenuta dacconto e
delle ritenute previdenziali, cos da lasciare una parte dei propri, non gi
lauti guadagni, nelle tasche di qualche commercialista.

Come trovare limporto netto


Illustreremo adesso i passi occorrenti, per ricavare dallimporto lordo, la
corrispondente cifra netta, utilizzando i criteri di calcolo validi sino al
31/12/2000.
A titolo esemplificativo partiamo da un importo lordo di un milione.
Rispetto la cifra di partenza, un milione, occorre calcolare il 20% a
titolo di ritenuta dacconto.
Sempre dalla cifra lorda, un milione, calcolare il 95% per ricavare
limponibile (la cifra) sul quale calcolare i contributi previdenziali.
Laliquota previdenziale nel 2000 era del 13% o del 10%, di cui la
quota a carico del lavoratore corrispondeva ad un terzo .
Nel foglio elettronico, scegliendo per semplicit la laliquota previdenziale
del 10%, la formula per ottenere limporto netto la seguente.
=1000000*0,8-1000000*0,95*0,1*0,333333333333333

Teoricamente si tratta di una formula piuttosto semplice, ma ne illustriamo


ugualmente alcuni passaggi salienti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

116

La prima parte del calcolo consiste nel calcolare il compenso epurato dal
20% della ritenuta di acconto e che i pi svolgono in questo modo:
1000000-(1000000*20%)

anche se in realt abbreviabile nel seguente a lgoritmo:


1000000*0,80

Un secondo passaggio degno di nota riguarda lo scrivere 1/3. Nella formula


lo si vede rappresentato da un 0,333333333333333, ma in realt stato
digitato proprio come un terzo (1/3). I pi attenti avranno sgranato gli
occhi,sapendo che se in un foglio di Excel si scrive 1/3, questi viene
riconosciuto come 1 marzo. Per far metabolizzare ad Excel un valore
frazionario si deve procedere nel seguente modo:
Digitare uno zero (0), premere spazio (barra spazio) , infine digitare 1/3.
Se qualcuno si stupito per lassenza di parentesi nella formula, non
dimentichi la regola della precedenza fra operatori aritmetici.
CompensoNetto
Passiamo alla creazione della funzione. Attiviamo un modulo e digitiamo il
seguente codice.
Function CompensoNetto(Lordo, Ritenuta, CTR)
Dim Netto, LordoXCTR, CTRLavor As Long
Netto = Lordo - Lordo * Ritenuta
LordoXCTR = Lordo * 0.95
CTRLavor = LordoXCTR * CTR / 3
CompensoNetto = Netto - CTRLavor
CompensoNetto = Round(CompensoNetto, 0)
End Function

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

117

Function CompensoNetto(Lordo,
Ritenuta, CTR)

Netto = Lordo - Lordo * Ritenuta

LordoXCTR = Lordo * 0.95

CTRLavor = LordoXCTR * CTR / 3

CompensoNetto = Netto - CTRLavor

CompensoNetto =
Round(CompensoNetto, 0)
End Function

CompensoNetto il nome della funzione. I nomi


inseriti fra le parentesi sono gli argomenti della
funzione, utilizzabili allinterno della funzione come
variabili predefinite.
Lordo = corrisponde al compenso lordo
Ritenuta = corrisponde alla ritenuta d'acconto (20%)
CTR = corrisponde al CTR del 10% o del 13 %.
Netto il nome della variabile che assume il valore
ottenuto dalla sottrazione della variabile Lordo, meno
il valore ottenuto dalla variabile Lordo per la variabile
Ritenuta.
Es. Se Lordo = 1.000.000 e Ritenuta 20% sar
eseguito il seguente calcolo: 1.000.000 - 1.000.000 *
20% = 800.000
LordoXCTR la variabile che assume il valore
ottenuto dalla variabile Lordo * 95%, cio
l'imponibile sul quale calcolare i CTR
Es. Sar eseguito il seguente calcolo: 1.000.000 * 95%
= 950.000
CTRLavor la variabile che assume il valore
ottenuto dalla variabile LordoXCTR moltiplicato per
il valore della variabile CTR diviso per 3, cio la
quota di CTR a carico del consulente.
Es. Se CTR = 10% sar eseguito il seguente calcolo:
950.000 * 10% / 3 = 31.666
CompensoNetto la variabile e il nome della
funzione che assume il risultato finale, ottenuto
sottraendo dalla variabile Netto la variabile
CTRLavor .
Es. Sar eseguito il seguente calcolo:
800.000 - 31.666 = 768.334
In questa riga viene arrotondato il risultato con
lausilio della funzione Round.
Fine della funzione.

A questo punto siamo pronti ad utilizzare CompensoNetto in un foglio di


lavoro, come una qualsiasi funzione. Ad esempio se nella cella A1
contenuto il valore 1.000.000 corrispondente al compenso lordo, in A2
troviamo 20% equivalente alla ritenuta d'acconto e in A3 10%
corrispondente al CTR previdenziale, si potr in una cella libera qualunque
inserire le seguenti istruzioni: =CompensoNetto( A1; A2; A3 ) per
ottenere il compenso netto del collaboratore.
Ricordatevi, se volete rendere la funzione utilizzabile in tute le cartelle di
lavoro, di collocarla nella cartella di lavoro speciale Personal.xls.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

118

Lezione XXVI Manipolare i dati


Molte volte, siamo chiamati ad operare elaborazioni su dati, provenienti da
altre applicazioni, che si presentano, come dire, inquinati. Diventa
fondamentale bonificarli togliendo caratteri superflui, spazi e altre
eventuali imperfezioni.
Costruire lesempio
In tutte le celle, relative alla colonna dei Comuni,
inseriamo uno spazio vuoto e il CAP. Per realizzare
tali condizioni attenersi ai seguenti passi.
Innanzi tutto, per sicurezza, duplichiamo il foglio Comuni.
o Con il puntatore del mouse portarsi sulla scheda del foglio
Comuni, tenere premuto CTRL, tenere premuto il tasto
sinistro del mouse e spostarsi un po pi a destra per generare
il foglio Comuni(2), clone perfetto di Comuni.
Nel foglio Comuni(2) attivare la cella G5, digitarvi la formula
=A5& &B5 trascinandola sino alla corrispondenza dellultima
riga con dati, la 319.
Premere la combinazione di tasti CTRL+C per copiare negli Appunti
la colonna, ancora selezionata, di dati test generata.
Posizionarsi in A5 e dal menu Modifica scegliere Incolla speciale.
Dalla finestra di dialogo Incolla speciale scegliere Valori e
confermare ciccando su OK.
Cancellare i dati della colonna G ed eliminare la colonna B, quella
del CAP, sino ad ottenere il risultato illustrato nellimmagine.

Naturalmente, anche senza ricorrere al VBA, sarebbe possibile con le


funzioni di Excel, ripulire i nomi dei comuni dallo spazio vuoto e dal CAP:
ma occorre ricordarsi che un utente avanzato opera per creare agli altri
utenti un ambiente software pi amichevole, dotato di tutti gli agi portati
dallautomatismo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

119

Funzioni Len e Left


NellEditor di VBA, agendo sul menu Inserisci, aggiungere un nuovo
modulo, quindi digitarvi il codice di seguito illustrato.
1: Sub Pulisci()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6:
bb = Len(ActiveCell) 6
7:
aa = Left(ActiveCell.Cells, bb)
8:
ActiveCell.Offset(0, 6).Range("A1").Select
9:
ActiveCell = aa
10:
ActiveCell.Offset(1, -6).Range("A1").Select
11: Loop
12: Trasporta
13: Range("a1").Select
14: End Sub
Range("a5").Select
Do While ActiveCell <> ""

bb = Len(ActiveCell) 6

aa = Left(ActiveCell.Cells, bb)

ActiveCell.Offset(0, 6).Range("A1").Select
ActiveCell = aa
ActiveCell.Offset(1, -6).Range("A1").Select
Loop
Trasporta

Si posiziona sulla prima cella con dati


Ripete le istruzioni successive per fermarsi
quando incontra una cella vuota.
La variabile bb assume il risultato della
funzione Len che conta il numero di
caratteri del testo inserito nella cella attiva
meno 6. Sei composto dai 5 caratteri del
CAP + lo spazio. Quindi sottraendo alla
lunghezza complessiva della stringa 6,
veniamo a sapere di quanti caratteri
composto il nome del comune contenuto in
quella cella.
La variabile aa assume il valore della
funzione Left, che restituisce un numero
specificato di caratteri partendo da sinistra,
contenuti nella cella attiva. Il numero di
caratteri che preleva dato dalla variabile
bb.
Si sposta a destra di 6 celle.
La cella attiva assume il valore della
variabile aa.
Scende di una cella e torna a sinistra di sei
celle.
Ripetere.
Finito il ciclo Do While, esegue il listato
della procedura Trasporta.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

120
Sub Trasporta()
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste
End Sub

Si posiziona sulla cella G5, la prima


Range("G5").Select
della nuova colonna, appena creata da
Pulisci.
Range(Selection, Selection.End(xlDown)).Select Seleziona tutte le celle contenenti dati.
Taglia.
Selection.Cut
Seleziona la cella A5.
Range("A5").Select
Incolla il contenuto della colonna G.
ActiveSheet.Paste

Riepiloghiamo lazione della procedura Pulisci, coadiuvata dalla procedura


Trasporta.
La procedura Pulisci, grazie allausilio del ciclo Do..While passa in
rassegna tutte le celle contenenti i nomi dei comuni, sporcati dal CAP.
Quindi avvalendosi delle funzioni Len e Left estrae il nome pulito del
comune che sposta sei celle a destra, cio nella colonna G. A questo punto
entra in azione la procedura Trasporta che seleziona lintero intervallo di
nomi ripuliti, li Taglia via, per andare ad incollarli in sostituzione dei dati
originali.
Ottimizzare
Ma vediamo che con un po di spirito dosservazione possiamo ottimizzare
il codice della procedura Pulisci.
1: Sub Pulisci2 ()
2: Dim aa As String
3: Dim bb As Integer
4: Range("a5").Select
5: Do While ActiveCell <> ""
6:
bb = Len(ActiveCell) - 6
7:
aa = Left(ActiveCell.Cells, bb)
8:
ActiveCell = aa
9:
ActiveCell.Offset(1, 0).Range("A1").Select
10: Loop
11: Range("a1").Select
12: End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

121

Sino al punto 7 la procedura Pulisci e la procedura Pulisci2, sono identiche,


ma nel punto 8 abbiamo la svolta!
In realt basta associare subito il risultato della variabile aa alla cella attiva.
Avendo entrambe le procedure sotto gli occhi pu sembrare evidente
lerrore commesso con la prima routine: in realt estremamente facile
commettere simili sviste e creare procedure che, vero, funzionano, ma con
mille contorcimenti, creando alla lunga dei rallentamenti nellesecuzione
del codice non indifferenti.
Passare i dati ad un nuovo foglio
La procedura PulisciSposta, qui di seguito riportata, pressoch identica a
Pulisci2 sino al punto 12, salvo alla riga 4, ove per essere sicuri che la
macro sia eseguita nella giusta locazione, stato indicato il foglio sul quale
eseguire le operazioni di pulizia.
1: Sub PulisciSposta()
2: Dim aa As String
3: Dim bb As Integer
4:
Sheets("Comuni").Select
5:
Range("a5").Select
6:
Do While ActiveCell <> ""
7:
bb = Len(ActiveCell) - 6
8:
aa = Left(ActiveCell.Cells, bb)
9:
aa = LTrim(aa)
10:
ActiveCell = aa
11:
ActiveCell.Offset(1, 0).Range("A1").Select
12:
Loop
13:
Range("a4").Select
14:
Range(Selection, Selection.End(xlDown)).Select
15:
Selection.Copy
16:
Sheets.Add
17: On Error GoTo salta
18:
ActiveSheet.Name = "Arrivo"
19:
Range("a4").Select
20:
ActiveSheet.Paste
21:
Columns.AutoFit
22:
Range("a1").Select
23:
Exit Sub
24: salta:
25:
MsgBox "Il foglio Arrivo " & vbCr & _
26:
" gi presente", vbCritical
27: End Sub

Commentiamo le successive istruzioni.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

122

Range("a4").Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add
On Error GoTo salta
ActiveSheet.Name = "Arrivo"
Range("a4").Select
ActiveSheet.Paste
Columns.AutoFit
Range("a1").Select
Exit Sub
salta:

MsgBox "Il foglio Arrivo " & vbCr & _

" gi presente", vbCritical

Si posiziona sulla prima cella della


colonna dati.
Seleziona lintera colonna di dati:
corrisponde alla combinazione di tasti
CTRL+SHIFT+ .
Copia la selezione negli Appunti.
Aggiunge un foglio di lavoro.
In caso di errore si sposta alletichetta
salta.
Rinomina il foglio appena inserito.
Seleziona A4 del foglio Arrivo.
Incolla dagli Appunti la selezione
precedentemente copiata.
Autodimensiona la larghezza della
colonna alla cella contenente il nome di
comune pi lungo.
Seleziona la cella A1.
Esce dalla procedura per evitare di
eseguire le istruzioni relative allerrore.
Etichetta a cui saltano le istruzioni in
caso di errore,
Messaggio di avvertimento, basato sul
pi probabile errore che potrebbe
capitare, cio il foglio Arrivo gi
presente nel momento che la procedura
nella riga 18 cerca di rinominare il foglio
appena aggiunto in Arrivo.
E interessante notare come nella riga
precedente stata usata la costante vbCr
per mandare a capo in un punto
determinato il testo del messaggio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

123

Pulire solo se
Ipoteticamente potremmo voler applicare la bonifica dei nomi soltanto se
questi rientrano in determinate condizioni: ad esempio, solo quando hanno
una popolazione inferiore ai 1000 abitanti o superiore ai 10000.
1: Sub Pulisci3()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6::
ActiveCell.Offset(0, 4).Range("A1").Select
7:
If ActiveCell < 1000 Or ActiveCell > 10000 Then
8:
ActiveCell.Offset(0, -4).Range("A1").Select
9:
bb = Len(ActiveCell) - 6 e sottrae
10:
aa = Left(ActiveCell.Cells, bb)
11:
ActiveCell = aa
12:
ActiveCell.Offset(1, 0).Range("A1").Select
13:
Else
14:
ActiveCell.Offset(1, -4).Range("A1").Select
15:
End If
16: Loop
17: Range("a1").Select
18: End Sub

Sino al punto 5 la procedura Pulisci3 identica alla precedente.


ActiveCell.Offset(0, 4).Range("A1").Select
If ActiveCell < 1000 Or ActiveCell > 10000
Then
ActiveCell.Offset(0, -4).Range("A1").Select
Dal punto 9 al punto 12
Else
ActiveCell.Offset(1, -4).Range("A1").Select
End If

Si sposta verso la quarta cella a destra,


cio la popolazione.
If si avvale delloperatore OR per
definire le due condizioni in base alle
quali operare la ripulitura.
Se soddisfatte ritorna alla cella del
comune.
Esegue la ripulitura e scende di una
cella.
Altrimenti, se non soddisfatte.
Scende di una cella e torna ai comuni,
senza effettuare nessuna ripulitura.
Fine della struttura di controllo If

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

124

Lezione XXVII Auto_Apri_Chiudi


Anche se in questo corso non stato previsto affrontare temi relativi alluso
della grafica in Excel, innegabile che la creazione di un buon programma
sia legato alla cura posta nella sua interfaccia grafica.
In queste lezioni dedicheremo spazio a quelle istruzioni VBA che
permettono di valorizzare laspetto dei nostri programmi, di personalizzarli,
di renderli pi usabili, sicuri e automatizzati.

Auto_Apri
Avrete notato, che se si salva una cartella di lavoro con attivo il Foglio2,
posizionato nella cella Z100, alla successiva riapertura questa si presenter
con il Foglio2 in Z100.
Peccato! Magari avevate previsto una bella pulsantiera nel Foglio1 e per
rendere guidata la navigazione allinterno della cartella , avevate anche
tolto le Schede indicatrici dei fogli.
Fortunatamente il VBA mette a disposizione una procedura speciale che
permette di indicare con precisione le azioni che Excel deve compiere in
fase di apertura della cartella di lavoro.
Il trucco consiste nel dare alla procedura il nome di Workbook_Open.
Sub Workbook_open()
MsgBox Ciao
End Sub

E di inserirla
ThisWorlbook.

nel

modulo

speciale

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

125

Auto_Chiudi
E molto probabile che anche in fase di chiusura della cartella di lavoro, si
vogliano eseguire automaticamente alcune operazioni, fosse solo il
ripristinare i settagli modificati in fase di apertura.
Tale procedura dovr assumere il nome di Workbook_BeforeClose(Cancel
As Boolean). Anche in questo caso la procedura dovr dimorare allinterno
del modulo ThisWorkbook.
Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox Arrivederci
End Sub

Un po di storia
Ogni tanto si vedono delle procedure di apertura e di chiusura chiamate
rispettivamente Auto_Open e Auto_Close. Si tratta di macro risalenti alle
versioni 5 e 7 di Excel, ormai tollerate dal VBA per esigenze di
compatibilit, ma non certamente amate: quindi non usatele.
A proposito nelle versioni di Excel 5 e 7, era prevista la versione del VBA
in italiano e le macro di apertura e di chiusura automatica, erano
denominate Auto_Apri e Auto_Chiudi.
Istruzioni varie
Vengono adesso presentate una serie di istruzioni, che possono essere
utilizzate sia allinterno delle due procedure di apertura, di chiusura, o di
altre macro.
Personalizzare la barra del titolo della cartella di lavoro.
Application.Caption = Corso di VBA on line

In chiusura, salva la cartella attiva senza chiedere conferma.


ActiveWorkbook.Save

Chiude la cartella di lavoro senza salvare le modifiche


ActiveWorkbook.Saved = True

Impostando la propriet Saved su True un po come ingannare Excel,


dicendogli che la cartella gi stata salvata, anche se non vero.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

126

Non visualizza la finestra di dialogo di conferma: per spiegarci


meglio, quella che compare quando si vuole eliminare un foglio di
lavoro.
Application.DisplayAlerts = False

Per ripristinarla sostituire False con True. E importante ricordarsi di


ripristinare la visualizzazione del messaggio di conferma; pu essere molto
pericolosa la mancanza di un elemento con il quale gli utenti sono abituati
ad interagire.
Disattiva laggiornamento dello schermo durante lesecuzione di una
macro.
Application.ScreenUpdating = False

E importante inserire sempre listruzione di ripristino dellaggiornamento


impostando la propriet ScreenUpdating siu True.
Aprire un file di Excel.
Workbooks.Open FileName:="C:\Documenti\Comuni.xls"

Esempi di Auto_Apri e Auto_Chiudi


Il listato illustra un esempio di utilizzo della procedura di apertura
automatica, discretamente articolato.
Sub Workbook_open()
With Application
.ScreenUpdating = False
Disattiva laggiornamento dello schermo
.DisplayFormulaBar = False
Toglie la barra della formula
.DisplayStatusBar = False
Toglie la barra di stato
End With
With ActiveWindow
.DisplayHorizontalScrollBar = False Toglie la barra di scorrimento orizzon.
.DisplayVerticalScrollBar = False
Toglie la barra di scorrimento vertic.
.DisplayWorkbookTabs = False
Toglie le schede indicanti I fogli
End With
ActiveWindow.WindowState = xlMaximized
Excel a tutto schermo
Application.Caption = " Corso di VBA on line"
Sheets("Comuni").Select
Si apre sul foglio Comuni
Range("a1").Select
Application.ScreenUpdating = True
Ripristina laggiornamento dello schermo
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

127

E importante in chiusura, ripristinare gli elementi di Excel che sono stati


modificati o eliminati in fase di apertura.

Sub Workbook_BeforeClose(Cancel As Boolean)


With Application
.ScreenUpdating = False
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
End With
Application.Caption = Empty
'Svuota la barra del titolo
ActiveWorkbook.Saved = True
Application.ScreenUpdating = True
End Sub

Proteggere
Se volete essere sicuri che nessuno modifichi il vostro lavoro, o peggio
faccia dello sciacallaggio, proteggete il codice delle macro.
Portarsi nellEditor di VB.
Dal menu Strumenti scegliere la voce Propriet di VBAProject .
Attivare la scheda Protezione.
Mettere il flag su Proteggi progetto dalla visualizzazione.
Inserire la password e confermare ciccando su OK.

Nota: Non fate troppo affidamento su questo tipo di protezione, nella rete sono
reperibili dei programmi che decriptano facilmente le password dei progetti
VBA.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

128

Lezione XXVIII I macro virus


I virus informatici, "grazie al cielo", non sono mai stati una razza che ha
corso il rischio di estinguersi, ma in questi ultimi tempi, con il proliferare
incontrollato dei macro virus, incominciamo a sentire il bisogno di
effettuare un abbattimento "selettivo", per evitare danni eccessivi
all'ambiente dei nostri pc.

Come difendersi
La prima regola in assoluto quella di essere dotati di un antivirus
aggiornato. Si noti che un aggiornamento efficace deve avere una cadenza
minima mensile, meglio se settimanale.
Scandire sempre i nuovi documenti di Word, Excel, Power Point ed Access,
sia che provengano da supporti magnetici tipo floppy o CD-ROM, che da
posta elettronica. Pu essere brutto a dirsi, ma non fidatevi di nessuno.
Word ed Excel sono dotati di una procedura che riconosce e segnala in fase
di apertura l'eventuale presenza di una macro nel documento. Alcuni utenti
infastiditi da tale segnalazione, che avviene anche per macro non infette, la
disabilitano. Non fatelo assolutamente!
Per ripristinare la procedura di protezione da macro virus, dal menu
Strumenti di Excel, scegliere Macro\Protezione e impostarla su Media.
Nota: La protezione da macro virus stata introdotta con Office 97 e a seconda della
versione e dellapplicativo, pu presentare delle piccole differenze nelle
impostazioni di disabilitazione e riabilitazione.

Scrivere una macro, abbiamo visto nel nostro corso, non molto difficile,
ma sono ugualmente pochi quelli che sono capaci di farlo e anche quelli in
grado di scriverne non necessariamente le creano: quindi se all'apertura di
una cartella di Excel, o peggio di un documento di Word, vi viene segnalata
la presenza di una macro e non vi stato comunicato che effettivamente
doveva esserci, non attivatela.
Se avete attivato una macro, dopo l'avvertimento della sua presenza e al
successivo riavvio di quel documento, l'avviso non vi viene pi proposto,
siete sicuramente "infetti".

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

129

Difesa artigianale
Dalle osservazioni del paragrafo precedente si ricava una idea semplice, ma
abbastanza efficace per trovare i macro virus.
Reperire un file di Excel contenente una macro, possibilmente non
infetta, e copiarlo su un dischetto protetto da scrittura.
Inserire il floppy nel lettore del PC sospetto e lanciare il file di
Excel.
Se la procedura di rilevamento macro entra in funzione, probabilmente la
macchina sana, altrimenti il dado tratto, siete infestati.
Per toccare con "mano" l'entit virale r ichiamate dal menu Strumenti\Macro
l'Editor di Visual Basic e qui se siete abbastanza smaliziati, potete anche
provare a estirpare a "mani nude" il maligno.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

130

Appendici
In questa sezione finale del corso, presentiamo alcune realizzazioni
probabilmente ritenute inconsuete per Excel.
Probabilmente dopo averle visionate vi chiederete che cosa non possibile
fare con il nostro foglio elettronico.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

131

Unanimazione con Excel


Una delle idee pi deleterie che pu circolare su Excel, quella di crederlo
un programma per rigidi contabili. Nulla di pi falso!
In piena era internettiana imperversano programmi tipo Flash, che
sembrano gli unici a poter offrire grafica ed animazioni. In realt anche il
nostro foglio elettronico in grado, anche se un po timidamente, di dire la
sua in fatto di animazioni.
Costruiremo una piccola animazione per misurare le prestazioni
del nostro PC.
Procuriamoci una piccola immagine a piacere, ad esempio un
ciclista. Lidea di far scendere il ciclistino di una ventina di
celle e di farlo risalire al punto di partenza, dando limpressione
della pedalata. Per ottenere un simile effetto occorre una seconda
immagine speculare del ciclista, facilmente ottenibile con un
programma di grafica, tipo Paint Shop Pro.
La nostra procedura dovr fare in modo che mentre le due
immagini scendono lungo il foglio, siano alternativamente visibili
per dare appunto limpressione della pedalata.
Inseriamo le due immagini allinizio di un foglio, facendo
attenzione a sovrapporle con precisione, quindi, se le immagini
sono su sfondo bianco, come quelle del nostro esempio, colorare il
foglio di lavoro di bianco.
Passare nellEditor Di VB e digitare il codice della procedura
CorsaCiclista.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

132

Il codice
1: Sub CorsaCiclista()
2:
Dim VarDisegno As Picture
3:
Dim ContCorsa, Contatore, risul As Integer
4:
Dim VelocitPc As Variant, Mess, tit As String
5:
Sheets("Corsa").DrawingObjects("Picture 1").BringToFront
6:
Mess = "Confermando verr eseguita un'animazione la" & Chr(13) & _
7:
"cui esecuzione potrebbe risultare eccessivamente" & Chr(13) & _
8:
"lunga con PC non molto potenti."
9:
tit = "Corso di VBA on line"
10: risul = MsgBox(Mess, vbYesNo, tit)
11: If risul = vbNo Then
12:
Range("a1").Select
13:
Exit Sub
14:
End If
15:
VelocitPc = Timer
16:
For ContCorsa = 1 To 144
17:
With Sheets("Corsa").DrawingObjects("Picture 1")
18:
.Visible = True
19:
.Top = .Top + 2
20:
.Visible = False
21:
End With
22:
With Sheets("Corsa").DrawingObjects("Picture 2")
23:
.Top = .Top + 2
24:
.Visible = True
25:
End With
26:
Next
27:
For ContCorsa = 1 To 73
28:
With Sheets("Corsa").DrawingObjects("Picture 1")
29:
.Visible = True
30:
.Top = .Top - 2.5
31:
.Visible = False
32
End With
33:
With Sheets("Corsa").DrawingObjects("Picture 2")
34:
.Visible = True
35:
.Top = .Top - 2.5
36:
End With
37:
Next
38:
With Sheets("Corsa").DrawingObjects("Picture 1")
39:
.Visible = True
40:
End With
41:
MsgBox (Timer - VelocitPc) & " Secondi"
42: End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

133

Sheets("Corsa").DrawingObjects("Picture Nel foglio Corsa, la prima immagine del


ciclista, Picture 1, deve essere in primo piano.
1").BringToFront
Dal punto 6 al punto 14
VelocitPc = Timer
For ContCorsa = 1 To 144
With Sheets("Corsa").DrawingObjects
("Picture 1")
.Visible = True
.Top = .Top + 2
.Visible = False
End With
With Sheets("Corsa").DrawingObjects
("Picture 2")
.Top = .Top + 2

Con una finestra messaggio chiediamo conferma


per continuare o meno la procedura.
Associa alla variabile la misurazione del tempo
data dalla funzione Timer.
Ripete le operazioni successive per 144 volte.
Con loggetto Picture 1
Imposta la propriet di visibile su vero.
Sposta in basso loggetto di due punti.
Rende invisibile limmagine del primo ciclista e
cos rimane visibile la seconda immagine.
Fine enunciato Con.
Passa alla seconda immagine.

E la sposta in basso di due punti.


Confermandone la visibilit.
.Visible = True
Fine enunciato Con.
End With
Ripete da capo il ciclo. Quindi, mentre visibile
, fa scendere di due punti il primo ciclista e lo
nasconde. A questo punto passa al secondo
Next
ciclista, che non pi coperto dal primo ciclista,
scende a sua volta di due punti. Ricompare il
primo ciclista e per 144 volte.
Esegue le operazioni di risalita, che avendo un
ciclo ripetuto meno volte e spostamenti pi
Dal punto 27 al punto 37
lunghi pi rapido della discesa.
Terminata lanimazione rende visibile la prima
With Sheets("Corsa").DrawingObjects
immagine.
("Picture 1")
Visualizza il tempo impiegato a percorrere il
MsgBox (Timer - VelocitPc) & " Secondi"
giro del foglio.

Nota: Ad essere scrupolosi, DrawingObjects un oggetto nascosto, perch ormai


considerato obsoleto.

Certo, i ragionieri continueranno ad usare Excel per la grigia contabilit


aziendale, ma magari, con langolo della bocca piegato verso lalto, ad
abbozzare un tiepido sorriso.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

134

Controllare la risoluzione dello schermo


Quando si realizza un applicazione con Excel, si predispone con cura anche
il suo layout grafico: cos pu succedere, che dopo averlo impostato su una
risoluzione di 800x600, scopriamo che la met dei potenziali utilizzatori del
nostro lavoro imposta il suo video a 1024x768 pixel.
Quindi, non sarebbe male verificare in fase di avvio della procedura, quale
risoluzione utilizzata dallutente e regolare conseguentemente la modalit
di visualizzazione.
Il problema che, il VBA, come anche il Visual Basic, non sono in grado di
effettuare operazioni di cos basso livello; per tale ragione si dovr
effettuare delle chiamate direttamente alle API di Windows.
Nota: Occorre tenere conto che un uso maldestro delle API pu di bloccare il sistema.
Per utilizzare lAPI di Windows allinterno del VBA occorre usare
listruzione Declare che permette di accedere alle DLL non appartenenti
allinsieme di quelle messe a disposizione di Excel. Listruzione Declare v
usata nellarea di dichiarazione del modulo, cio allinizio.
Impostazioni
La nostra procedura sar visualizzata a tutto schermo, impostazione di
default, in presenza di una risoluzione video di 800 x 600 pixel. Se la
risoluzione fosse di 1024 x 768 la finestra andr disegnata con proporzioni
che rispecchino la risoluzione di 800 x 600, per non perdere il layout
grafico. Naturalmente una risoluzione di 640 x 480 pixel dovr essere
ritenuta fuori standard.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

135

Listato
1: Public Declare Function GetSystemMetrics Lib "user32" _
2: (ByVal asIndex As Long) As Long
3: Public Const risx = 0
4: Public Const risy = 1
--------------------------------------------------------------------------------------------------------------------5: Function Risoluzione()
6: Dim aaa As Variant, bbb As Variant
7: Dim parole1 As String
8: Dim opzioni1 As Byte, scelta1 As Byte
9:
aaa = GetSystemMetrics(risx)
10: bbb = GetSystemMetrics(risy)
----------------------------------------------------------11:
If aaa = 800 Then
12:
Application.WindowState = xlMaximized
13:
ElseIf aaa = 1024 Then
14:
Application.WindowState = xlNormal
15:
Application.Left = 78
16:
Application.Top = 63
17:
Application.Width = 605
18:
Application.Height = 437
19: ElseIf aaa = 640 Then
20:
parole1 = "La risoluzione del monitor impostata a " & aaa & " x " & bbb & _
21:
" - si consiglia di cliccare su SI per uscire dalla procedura" & _
22:
"e cos impostarla a800 x 600 per consentire una corretta visualizzazione "
23:
opzioni1 = vbQuestion + vbYesNo
24:
scelta1 = MsgBox(parole1, opzioni1)
25:
If scelta1 = vbYes Then Application.Quit
26: Else
27:
parole1 = "La risoluzione del monitor impostata ad una risoluzione non" & _
28:
" prevista - si consiglia di cliccare su SI per uscire dalla procedura" & _
29:
"e cos impostarla a800 x 600 per consentire una corretta visualizzazione "
30:
opzioni1 = vbQuestion + vbYesNo
31:
scelta1 = MsgBox(parole1, opzioni1)
32:
If scelta1 = vbYes Then Application.Quit
33:
End If
34: End Function

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

136

Il commento del codice


Public Declare Function
GetSystemMetrics Lib "user32" _
(ByVal asIndex As Long) As Long
Public Const risx = 0
Public Const risy = 1
aaa = GetSystemMetrics(risx)

La gi citata istruzione Declare, che fa riferimento


alla libreria (file) user32.dll , presente nella cartella
Windows\System.
Dichiarazione delle costanti necessarie alle API per
riconoscere la risoluzione. I valori sono desumibili
nella documentazione Microsoft relativa
allinterfaccia API di Windows.
Si associa alla variabile il valore della risoluzione
orizzontale.

bbb = GetSystemMetrics(risy)

Si associa alla variabile il valore della risoluzione


verticale.

If aaa = 800 Then

Se la risoluzione orizzontale uguale a 800 pixel

Application.WindowState =
xlMaximized

manda la finestra di Excel a tutto schermo

ElseIf aaa = 1024 Then

Altrimenti se 1024 pixel

Application.Left = 78

posiziona la distanza dal margine sinistro dello


schermo al margine sinistro della finestra principale
di Microsoft Excel, espressa in punti.

Application.Top = 63

posiziona la distanza tra il margine superiore dello


schermo e il margine superiore della finestra
principale di Microsoft Excel.

Application.Width = 605

determina la distanza tra il margine sinistro e il


margine destro della finestra dell'applicazione. In altre
parole la larghezza.

Application.Height = 437

determina laltezza della finestra principale


dell'applicazione.

ElseIf aaa = 640 Then

Altrimenti se 640 pixel

Dalla riga 20 alla riga 24

Imposta un MsgBox.

If scelta1 = vbYes Then


Application.Quit

Se si clicca su OK di MsgBox viene chiuso Excel.

Else

Altrimenti

Dalla riga 27 alla riga 31

Imposta un MsgBox

If scelta1 = vbYes Then


Application.Quit

Se si clicca su OK di MsgBox viene chiuso Excel.

Dalla riga 33 alla riga 34

Fine If, fine funzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

137

Nota: Una funzione come Risoluzione chiaramente da eseguire automaticamente


allavvio di Excel e quindi si pu essere portati ad individuare la sua
collocazione allinterno del modulo speciale ThisWorkbook. In realt se il
codice di Risoluzione, o meglio la dichiarazione di Declare, fosse collocata
allinterno di suddetto modulo, la nostra procedura non funzionerebbe. Quindi
per fare in modo che la funzione Risoluzione venga eseguita in fase di avvio di
Excel, bisogna inserire il solo riferimento ad essa allinterno di
Workbook_Open, come nellesempio sottostante.
Sub Workbook_open()
ActiveWindow.WindowState = xlMaximized
Application.Caption = " Corso di VBA on line"
Risoluzione
End Sub

Il bello della procedura Risoluzione, o meglio del VBA, che il suo


codice, con poche variazioni, pu essere utilizzato anche per le altre
applicazioni della suite Microsoft Office. Ad esempio, io ho appreso gli
strumenti per il controllo delle impostazioni del video, studiando Access.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

138

File allegato
Oltre al file di Excel Comuni.xls, da utilizzare per le esercitazioni previste
nel corso, questo CD contiene un secondo file, denominato ComuniCD.xls,
contenente il codice di alcuni esempi.
Nel dettaglio, sono presenti le seguenti procedure:
CompensoNetto;
CorsaCiclista;
Proteggi;
Risoluzione;
Sproteggi.
Inoltre sono presenti due semplici macro di navigazione fra i fogli.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

139

Conclusioni
Questo corso di programmazione, avrete letto nella presentazione, stato
allestito, non per i programmatori professionisti, ma per utenti avanzati
(power user), che volevano estendere le potenzialit, gi ampie, offerte da
Excel.
Con questo non si inteso dare adito ad una interpretazione riduttiva, del
tipo: i corsi per programmatori sono di serie A, gli altri di serie B.
In realt sono due aspetti dellinformatica costellati da molte diversit.
Il programmatore, molte volte, appartiene ad un team, sviluppa una
porzione specifica dellintero progetto, in taluni casi non conosce neanche
molto bene quali sono le finalit del software su cui sta lavorando e
sicuramente non ha esperienza diretta in quello specifico ambito lavorativo.
A lui si chiede di costruire una struttura solida, sicura e magari duratura nel
tempo.
Lutente avanzato generalmente inserito nel contesto lavorativo ove le sue
applicazioni dovranno funzionare e molte volte dovr realizzarle nei ritagli
di tempo. Dovr allestire piccole e agili procedure in pochi giorni per far
fronte a problemi imprevisti, magari in attesa del rilascio della procedura
ufficiale, che dovr uscire da l a poco.
Questo non vuol dire che le due figure siano inavvicinabili, anzi a volte gli
utenti avanzati crescono cos tanto a livello di conoscenze tecniche da
diventare dei veri e propri programmatori. Purtroppo pi difficile il
processo inverso. E raro che un programmatore puro riesca a stabilire un
punto di contatto, o meglio a comunicare con i fruitori del suo software.
Se avete fatto vostri i concetti espressi da questo corso, sarete sicuramente
in grado di realizzare applicazioni professionali di tutto rispetto. Per, non
dimenticatevi che in realt abbiamo solo scalfito limmenso universo del
VBA.
Non stato neppure preso in considerazione un blocco di costruzioni
fondamentali come gli Oggetti, per non parlare dellassoluta assenza di
riferimenti allintegrazione con altre applicazioni Office.
Poi, per chiunque lavori in una azienda di medie o grandi dimensioni, non
da trascurare la tematica legata alle intranet e alla interazione fra pagine
WEB e applicativi Office.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

140

Indice rapido

Voce
Costanti
Debug
Declare
Do UntilLoop
Do WhileLoop
Editor di VB
Errori
ForNext
Forms
IfThen
IfThen ElseIfElseEnd If
InputBox
Left
Len
Macro virus
Moduli
MsgBox
Notazione scientifica
On Error GoTo
Personal.xls
Registrare una macro
Select Case
ThisWorkbook
Variabili
Workbook_BeforeClose(Cancel As Boolean)
Workbook_Open

Pagina
69
92
134
64
63 - 119 - 123
47
88
107 - 111 - 132
95 - 99
60 - 132
104 - 135
74
119
119
128
34 40
70
68
94
27
15
106
48 - 125
66
125 - 127
124 126

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Dipartimento del Tesoro

EXCEL 2000 Base

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Sommario
1.

AVVIO DI EXCEL..........................................................................................................4
1.1

GUARDIAMOCI INTORNO ...........................................................................................6

1.3

IL RUOLO DEL MOUSE...............................................................................................9

1.4

CALCOLO AUTOMATICO ........................................................................................ 12

1.5
2.

UN PICCOLO ASSAGGIO............................................................................................4

1.2

FARSI AIUTARE DA EXCEL ....................................................................................... 12

PRIMA INTERAZIONE................................................................................................. 14
2.1

UN PASSO AVANTI................................................................................................. 17

2.3
3.

CONTROLLARE IL CONTO CORRENTE......................................................................... 14

2.2

COLLEGARE I FOGLI ............................................................................................... 23

QUALCOSA DI SOLIDO.............................................................................................. 26
3.1

UN MODULO PER IL RIMBORSO SPESE ........................................................................ 26

3.2

FORMATI E INTERVALLI .......................................................................................... 27

3.3

STAMPARE UN FOGLIO DI LAVORO............................................................................ 28

3.5

INTESTAZIONI E PI DI PAGINA .................................................................................. 29

3.6

AUTOCOMPOSIZIONE FUNZIONE ............................................................................... 31

3.7

FORMATTAZIONE DI UN FOGLIO DI LAVORO ................................................................ 32

3.8

CAMBIARE LA FORMATTAZIONE DEL CARATTERE ........................................................ 33

3.9

APPLICARE IL FORMATO NUMERICO, DATA O ORA...................................................... 34

3.10
4.

LE ALTRE FORMULE............................................................................................... 27

3.4

ALLINEARE IL TESTO O NUMERI ................................................................................ 34

ORGANIZZIAMOCI MEGLIO........................................................................................ 35
4.1

CHE COS UN DATABASE ....................................................................................... 35

4.2
5.

POSSIBILIT E VINCOLI .......................................................................................... 35

4.3

UN DATABASE PER LE FATTURE ................................................................................ 37

LA CREAZIONE DEI GRAFICI...................................................................................... 40


5.1

LA PROCEDURA DI CREAZIONE DEI GRAFICI ................................................................. 40

5.2

TERMINOLOGIA RELATIVA AI GRAFICI........................................................................ 41

5.3

CREAZIONE DI UN GRAFICO ...................................................................................... 42

5.4

APERTURA DI UN GRAFICO PER LA MODIFICA............................................................... 47

5.6
6.

SALVATAGGIO DEI GRAFICI ..................................................................................... 47

5.5

STAMPA DEI GRAFICI ............................................................................................. 48

FUNZIONI................................................................................................................... 51
6.1

CHE COSA SONO LE FUNZIONI ................................................................................... 51

6.2

SCRIVERE UNA FORMULA CONTENENTE FUNZIONI ......................................................... 51

6.3

FUNZIONI TIPICHE DEI FOGLI DI LAVORO. .................................................................... 53

6.4

SOMMA............................................................................................................. 53

6.5

MIN.................................................................................................................... 54

6.6

MAX .................................................................................................................. 55

6.7

MEDIA ............................................................................................................... 55

6.8

CERCA.VERT E CERCA.ORIZZ............................................................................. 56
2

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base


6.9

ADESSO E OGGI ................................................................................................ 57

6.10

SINISTRA E DESTRA .......................................................................................... 57

6.11

CONCATENA (&) ................................................................................................ 58

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

1. Avvio di Excel
La schermata con cui si presenta Excel fin troppo ricca di elementi e potrebbe intimidire chi se la
trova davanti la prima volta. In questa situazione, la cosa giusta da fare concentrarsi sugli aspetti
essenziali e pi immediatamente intuitivi, rimandando ad un secondo tempo lesplorazione del
resto. quello che faremo adesso.
1.1 UN PICCOLO ASSAGGIO
Con Excel si possono fare molte cose, ma alla base di tutto c il foglio di lavoro. Lavorare con
Excel significa essenzialmente immettere numeri in un foglio di lavoro ed eseguire calcoli sui
numeri immessi.

Figura 1 - La finestra di Avvio di Excel

Il foglio di lavoro occupa la parte centrale della schermata di apertura di Excel, ed formato da una
serie di caselle, che si chiamano celle, definite dallincrocio di righe e colonne: le righe sono
identificate da una numerazione progressiva sul lato sinistro dello schermo e le colonne si
distinguono luna dallaltra in base ad una lettera dellalfabeto, che fa da intestazione per ciascuna
colonna.

Figura 2 - L'immissione di un numero nella cella A1

Per usare il foglio di lavoro si scrivono nelle celle i dati da elaborare, operazione che si esegue
molto facilmente con il mouse: si porta il puntatore del mouse sulla cella dove si intende scrivere
qualcosa e di fa clic. Intorno alla cella appare un bordo nero, per indicare che stata selezionata e il
puntatore del mouse assume la forma di una croce quadrata, segno che la cella pronta a ricevere
dati.
4

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

I dati (numeri o lettere) si scrivono, ovviamente, con la tastiera. Per rompere il ghiaccio e veder
come funziona il tutto, portiamo il puntatore del mouse sulla prima cella in alto a sinistra del foglio di
lavoro, quella individuata dallincrocio della colonna A con la riga 1 e sulla tastiera premiamo il tasto
con numero uno. Questa operazione crea tre effetti:
1. Nella cella selezionata compare il carattere 1.
2. Nella parte alta dello schermo, sopra la griglia del foglio di lavoro compare il numero 1.
3. Il puntatore del mouse si trova nella cella selezionata e ha cambiato forma unaltra volta,
diventando una sottile riga verticale.
Adesso premiamo il tasto INVIO per confermare che vogliamo immettere il numero 1 nella cella A1.
Questa operazione fa scomparire il richiamo del numero 1 che era presente nella barra orizzontale,
immette materialmente il carattere 1 nella cella A1 e provoca la selezione della cella
immediatamente sotto, quella individuata dalla riga 2 e dalla colonna A.
Adesso che abbiamo fatto la prima e pi elementare delle operazioni che si possono eseguire su
un foglio elettronico, immettere un dato, ripetiamo loperazione sulla cella A2, che gi selezionata,
immettendovi il numero 5 e premendo subito dopo il tasto INVIO, cosa che provoca la selezione
automatica della cella A3.

Figura 3 - La serie di numeri inseriti nelle celle A1 e A2

In questa cella scriviamo la seguente serie di caratteri (possiamo scrivere sia in maiuscolo che
minuscolo):

=A1+A2
Dopo limmissione dei caratteri premiamo INVIO e nella cella A3 possiamo vedere che al posto dei
caratteri che abbiamo appena scritto ora si trova il numero 6, che appunto, il risultato della
somma del contenuto della cella A1 con quello della cella A2.

Figura 4 - La formula per il calcolo della somma

Portiamo il puntatore del mouse sulla cella A1, facciamo clic col pulsante sinistro e scriviamo in
questa cella il numero 7, premendo poi INVIO. La cella A1 prima conteneva il numero 1 e ora
contiene il numero 7. Il contenuto della cella A2 rimasto uguale (5), mentre nella cella A3 che
presentava il numero 6, adesso c il numero 12.
Con queste semplici e intuitive operazioni abbiamo colto lessenza del foglio di lavoro
automatizzato: nelle celle A1 e A2 abbiamo immesso due valori (1 e 5 per cominciare, e7 e 5
dopo); nella cella A3 abbiamo scritto la formula che calcola la somma dei contenuti delle celle A1 e
A2.
Quando di cambia il contenuto di una delle celle A1 o A2, il risultato della formula contenuto in A3
viene modificato automaticamente, in modo da corrispondere alla nuova situazione; prima la
5

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

somma dei contenuti di A1 e A2 (1 e 5) generava 6, poi la stessa operazione, riferita alle stesse
celle, ha generato 12, perch in A1 non cera pi un 1 ma un 7.
Nelle celle del foglio di lavoro si possono scrivere dati o formule. Per dati si intende qualunque
sequenza o stringa di caratteri; un numero intero o decimale, una frase, una sequenza di lettere,
numeri e segni di interpunzione, fino a un massimo di 255 caratteri per cella.
Quando si immettono dati nelle celle occorre rispettare un solo vincolo: il primo carattere non pu
essere il segno di uguale, perch nella convenzione di Excel serve a distinguere i dati dalle formule.
Nellesempio che abbiamo appena visto, la presenza di un segno di uguale davanti ai caratteri
A1+A2 dice a Excel che si tratta di una formula, cio di un comando da eseguire sui contenuti delle
celle A1 e A2.
Proviamo a scrivere in A3 semplicemente A1+A2 senza il segno di uguale: nella cella compare
quello che abbiamo scritto, non il risultato di un calcolo. Non essendoci il segno di uguale allinizio
della stringa di caratteri, Excel la interpreta come un dato e la inserisce pari pari nella cella.
Dopo aver constatato che molto semplice e intuitivo ottenere da un foglio di lavoro Excel qualche
risultato utile, possiamo dedicare un po' di tempo ad esplorare lambiente in cui ci troviamo,
identificando i vari elementi che lo compongono.
1.2 GUARDIAMOCI INTORNO
Quando si avvia Excel lo schermo del computer si riempie completamente di una finestra articolata
in vari elementi e si chiama finestra dellapplicazione. Si tratta di una finestra strutturata come la
gran parte delle finestre di Windows 95: in testa compare la barra del titolo, ha un colore blu scuro,
con una scritta in bianco. Allestrema destra della barra del titolo si trovano i tre pulsanti per il
ridimensionamento della finestra. In fondo alla finestra sul lato destro troviamo le barre di
scorrimento orizzontale e verticale.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 5 - La finestra principale di Excel

La finestra dellapplicazione ne contiene una seconda, detta finestra del documento, nella quale si
immettono i dati e formule. Siamo quindi in presenza di due finestre, una dentro laltra. La finestra
dellapplicazione il contenitore ed ingrandita al massimo, in modo da poter accogliere una
finestra del documento.
In questa modalit di ingrandimento, lunica indicazione che le finestre sono due e non una sola
viene dal fatto che ci sono due gruppi di pulsanti per il ridimensionamento delle finestre, sovrapposti
nellangolo in alto a destra. I pulsanti superiori pilotano le dimensioni della finestra dellapplicazione
(cio la finestra di Excel), mentre quelli che stanno sotto servono per ingrandire, rimpicciolire o
ridurre a icona la finestra del documento sul quale si lavora.
La barra del titolo contiene i titoli delle due finestre, separati da un trattino. Il documento vuoto che si
predispone allavvio di Excel prende il nome di Cartel, abbreviazione convenzionale del suo nome
completo, che cartella di lavoro 1. Se si vuole distinguere la finestra del documento da quella
dellapplicazione, basta fare clic sul pulsante di ridimensionamento del secondo gruppo di pulsanti,
ottenendo un risultato simile a quello che si vede in figura.
Sotto la barra del titolo, nella finestra dellapplicazione, si trovano normalmente quattro barre:
1.2.1 Barra dei menu.
Raccoglie i menu dei comandi attivabili in Excel, raggruppati per famiglie.

Figura 6 - La barra dei menu

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

1.2.2 Barra degli Strumenti Standard.


Raccoglie una serie di pulsanti, identificati da una icona che rappresenta un comando. Facendo
clic su un pulsante in questa barra si attiva direttamente il comando al quale il pulsante associato.
I pulsanti delle barre degli strumenti servono per attivare i comandi direttamente, senza passare per
i menu.

Figura 7 - La barra degli strumenti Standard

1.2.3 Barra degli strumenti Formattazione.


Funzionalmente analoga alla precedente, che aggrega i pulsanti per i comandi di uso pi frequente,
questa barra raggruppa i pulsanti con i quali si attivano i comandi per dare un formato al documento
o a sue parti: stile dei caratteri, dimensioni, posizione delle scritte nelle celle, etc.

Figura 8 - La barra degli strumenti Formattazione

1.2.4 Barra della Formula.


Quando una cella del foglio di lavoro stata selezionata con un clic del mouse, in questa barra
viene evidenziato il contenuto della cella, in modo che sia pi agevole modificarla. Se la cella
contiene una formula, del tipo che abbiamo visto in precedenza nellesempio, nella cella compare il
risultato della formula, mentre nella barra della formula si vede la formula che produce quel
risultato.

Figura 9 - La barra delle Formule

1.2.5 Barra di Stato.


In fondo alla finestra dellapplicazione, sotto la barra di scorrimento orizzontale, questa barra
fornisce informazioni sui comandi selezionati con il mouse o con la tastiera. Contiene anche, nella
parte a destra, un funzione automatica che esamineremo pi avanti. Allinterno della finestra
dellapplicazione si trova il documento con il quale si lavora. Se non si danno indicazioni diverse
Excel, allatto dellavviamento, presenta una cartella di lavoro nella quale sono contenuti 16 fogli di
lavoro vuoti.

Figura 10 - La barra di Stato

Questi fogli sono indipendenti luno dallaltro, possono essere rimossi o spostati ed possibile
attribuire loro nomi personalizzati, in sostituzione di quelli convenzionali, attribuiti in fase di apertura.
Per non creare un effettivo affastellamento delle immagini, nella finestra del documento viene
visualizzato un foglio di lavoro per volta.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 11 - I fogli di lavoro di Excel

Quello visualizzato si chiama Foglio attivo e lo si riconosce perch il suo nome (scritto nella
linguetta in basso) appare in chiaro, rispetto alle restanti che sono in grigio. Si passa da un foglio di
lavoro allaltro in due modi:
Con un clic sulla linguetta.
Agendo su una particolare pulsantiera, che sta a sinistra della barra di scorrimento orizzontale.
Nello spazio in fondo alla finestra del documento coesistono le schede dei fogli di lavoro e la barra
di scorrimento orizzontale.
possibile dare pi spazio alle schede dei fogli restringendo la barra di scorrimento. Per ottenere
questo risultato si porta il puntatore del mouse nel punto di intersezione fra lestremit sinistra della
barra di scorrimento e lultima scheda visibile. Il puntatore assume laspetto di una doppia barretta
verticale, con due frecce che puntano a destra e a sinistra. Tenendo premuto il pulsante sinistro del
mouse si trascina il puntatore verso destra per restringere la barra di scorrimento.
Il foglio di lavoro articolato in celle che si trovano allintersezione delle righe (numerate a sinistra) e
delle colonne (codificate in alto).
Ogni foglio di lavoro composto da 65.536 righe e da 256 colonne che intersecandosi formano
16.777.216 celle.
1.3 IL RUOLO DEL MOUSE
In Excel si lavora col mouse, uno strumento molto potente e flessibile: praticamente indispensabile,
per cui bene imparare a dominarlo fin dal primo momento.
Il mouse un dispositivo di input col quale si inviano segnali al computer, segnali che vengono
intercettati dai programmi e si trasformano in sequenze di istruzioni, che a loro volta fanno
accadere eventi della natura pi varia. I segnali generati dal mouse sono di cinque tipi diversi e si
producono:
1. facendo scorrere il mouse senza toccare i pulsanti che stanno sulla sua parte anteriore;
2. trascinandolo mentre si tiene premuto il pulsante che sta sul lato sinistro;
3. premendo con un solo scatto netto il pulsante che sta sul lato sinistro;
4. eseguendo due volte la stessa operazione: sempre sul pulsante di sinistra, in rapida
successione;
5. premendo con un solo scatto netto il pulsante destro del mouse.
Siccome le operazioni dalla (3) alla (5) che si possono fare sui pulsanti provocano un leggero
suono, una specie di clic, si indicano rispettivamente con le espressioni fare clic, fare doppio clic
e fare clic a destra.
Come dice il suo nome, il puntatore serve per puntare ad elementi costitutivi della finestra di Excel
ed eseguire su e con questi elementi vari tipi di operazioni, che illustriamo per sommi capi
nellelenco che segue:
1.3.1 Selezione di Celle.
Quando si attiva Excel, la prima casella nel foglio di lavoro, la cella A1, appare circondata da un
bordo nero, pi spesso dei bordi che definiscono le atre celle.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 12 - Selezione di celle

Questa caratteristica indica che la cella selezionata, cio pronta a ricevere input. Il puntatore del
mouse assume la forma di una croce quadrata per indicare che c una selezione attiva. Per
selezionare una cella diversa, basta portarvi sopra il puntatore a croce del mouse e fare clic. Se si
porta il puntatore del mouse allinterno di una cella selezionata e si fa doppio clic, il puntatore
cambia forma e diventa una sottile barra verticale, trasformandosi cos in un segnale di
inserimento. Trascinando il mouse su pi celle mentre si tiene premuto il tasto sinistro si genera
una selezione multipla, riconoscibile per il fatto che tutte le celle interessate dal trascinamento,
sono circondate da un bordo pi spesso e assumono un colore di sfondo scuro.
1.3.2 Copia e spostamento.
Una cella selezionata pu essere spostata o copiata con il mouse. Portando il puntatore a croce su
uno dei bordi della cella selezionata, il puntatore assume la forma si una freccia inclinata a sinistra.
Trascinando il bordo sul quale appoggiato il puntatore, la cella viene spostata nel punto in cui si
interrompe il trascinamento.

Figura 13 - Spostamento di celle

Per fare una copia con il mouse di una o pi celle selezionate, occorre appoggiare il puntatore del
mouse nel quadratino che si trova nellangolo in basso a destra del bordo scuro che delimita la
selezione: il puntatore prende la forma di una piccola croce nera e trascinandolo verso destra o
verso sinistra o in unaltra direzione, si crea una copia della cella o delle celle selezionate.
1.3.3 Selezione dei comandi.
Nella finestra dellapplicazione Excel si danno i comandi selezionandoli dalla barra dei menu o
agendo sui pulsanti della barra degli strumenti. Facendo clic su una delle nove voci che
compongono la barra dei menu si fa scendere una finestrella che contiene un elenco di comandi.
Un ulteriore clic su una di queste voci dellelenco attiva il comando corrispondente. Nel menu sono
elencati tutti i comandi che si potrebbero dare a Excel. Alcuni di questi, per, non sono sempre
disponibili, ma lo diventeranno in certe circostanze particolari. Le opzioni assoggettate a questo
vincolo sono scritte in un carattere grigio e non sono sensibili al clic del mouse. Le barre degli
Strumenti, visualizzate sotto la barra dei menu, sono formate da pulsanti la cui finalit richiamata
da un piccolo disegno che lo copre, chiamato icona. Appoggiando il puntatore del mouse sullicona
10

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

e attendendo un breve istante compare la descrizione della finalit del pulsante, allinterno di una
casellina gialla. Una scritta pi esplicativa la si trova sulla barra di stato. Un clic sul pulsante attiva il
comando corrispondente.
1.3.4 Menu di scelta rapida.
Facendo clic a destra su una cella selezionata si provoca luscita di una finestrella rettangolare pi
o menu lunga, che contiene un certo numero di scritte, del tutto simile ad un menu. infatti il menu
di scelta rapida o anche menu contestuale.

Figura 14 - Il menu di scelta rapida attivabile con il tasto destro del mouse

Questo tipo di menu una versione sintetica di uno dei menu principali, e elenca soltanto alcune
voci che sono congrue con la situazione in cui stato fatto clic e servono per selezionare
rapidamente un comando. Per chiudere questo menu senza scegliere nulla basta premere il tasto
ESC.
1.3.5 Dimensioni di righe e colonne.
Quasi tutti gli aspetti di un foglio di lavoro che si presentano in modo predefinito allavvio di Excel
possono essere modificati e adattati alle esigenze particolari dellutente. Gran parte di queste
modifiche si attivano con il mouse. Il caso pi frequente la modifica o ladattamento della
larghezza delle colonne o dellaltezza delle righe.
Nel foglio di lavoro le colonne sono predisposte per ricevere circa 8 caratteri nel formato standard
die caratteri usati da Excel. La larghezza pu essere portata fino ad una capacit di 255 caratteri.
Laltezza standard delle righe definita in 12,75 punti tipografici e pu essere incrementata fino a
409,5 punti.
Per modificare col mouse la larghezza delle colonne si fa clic sullintestazione della colonna,
provocando una selezione dellintera colonna. che viene evidenziata con un colore scuro. Quindi si
porta il cursore sulla linea di separazione fra la colonna selezionata e quella alla sua destra e si fa
clic. Il puntatore assume la forma di una doppia barretta verticale con due frecce: trascinando il
mouse verso destra o verso sinistra si allarga o si restringe la colonna.
Per le righe, loperazione da farsi concettualmente identica, lunica differenza che la selezione
della riga si fa con un clic sulla casella di intestazione a sinistra, che porta il numero dordine della
colonna.

11

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Se in una colonna si trovano gi dei dati, si pu adattare la larghezza della colonna in modo che
corrisponda a quella del dato pi lungo facendo semplicemente doppio clic sulla linea di
separazione fra lintestazione della colonna e quella alla sua destra.
1.4 CALCOLO AUTOMATICO
Nella parte destra della barra di stato compare una scritta: normalmente, Somma=0. Dietro questa
scritta si nasconde una funzionalit chiamata Calcolo Automatico, aggiunta di recente a Excel che
straordinariamente comoda mentre si costruisce un foglio di lavoro.
Per capire come funziona e a che cosa serve basta provarla. Immettiamo una serie di numeri a
caso, uno sotto laltro in una colonna qualunque del foglio di lavoro.

Figura 15 - La funzione Calcolo Automatico nella Barra di Stato

Selezioniamo la serie dei numeri trascinandovi sopra il mouse: nella barra di stato la funzione
Calcolo Automatico si attiva e invece di dire sibillinamente Somma=0 adesso indica il risultato della
somma dei valori selezionati.
Questo strumento contiene anche delle funzioni che si riferiscono sempre ai contenuti delle celle
selezionate al momento, per cui possibile farsi indicare al volo al media dei valori selezionati, il
valore massimo, quello minimo, quante sono le celle selezionate che contengono qualcosa e
quante sono quelle che contengono numeri.
Per scegliere la funzione che interessa attivare si fa clic a destra sulla scritta nella barra di stato,
provocando cos luscita di un menu di scelta rapida sul quale, con un opportuno clic, si predispone
la funzione, che rimane attiva fino a quando non la si sostituisce con unaltra.
1.5 FARSI AIUTARE DA EXCEL
Le funzionalit disponibili in Excel sono numerosissime e le opzioni associate a ciascuna
funzionalit spesso sono decine; anche gli utenti pi esperti, a fronte di una tale gamma di
possibilit, possono a volte aver bisogno di una guida o di un suggerimento. Per soddisfare questa
necessit Excel mette a disposizione una serie di strumenti di guida e orientamento per lutente,
che elenchiamo qui di seguito:
Barra degli Strumenti. Oltre alle barre degli Strumenti standard e Formattazione che vengono
presentate automaticamente dallapplicazione allavvio di Excel, possibile attivare una barra
chiamata Suggerimenti. Si seleziona il menu Visualizza facendovi sopra clic con il pulsante sinistro
del mouse e fra le opzioni disponibili si sceglie Barra degli Strumenti. Nella finestra di dialogo che si
apre si fa clic sulla casella di selezione accanto alla dicitura Barra dei Suggerimenti. Questa barra
presenta un conciso suggerimento che cambia a mano amano che si danno comandi o si
selezionano parti del foglio di lavoro.
Guida Contestuale. In molte finestre di dialogo che si aprono quando si attivano determinati
comandi, sono presentate varie opzioni tra cui scegliere quella corretta ai fini delloperazione che si
vuole eseguire.
Queste finestre presentano di solito un quadratino in alto a destra, nel quale inserito un punto
interrogativo. Se si fa clic sopra di esso con il pulsante sinistro del mouse, il puntatore assume
laspetto di un grosso punto interrogativo. Appoggiando il puntatore cos trasformato su una delle
12

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

caselle di selezione presenti nella finestra di dialogo e facendo clic, si provoca luscita di un testo
esplicativo che descrive la finalit delloperazione.
Guida in Linea. Nella finestra dellapplicazione la dicitura dellultimo menu a destra non una parola
ma un punto interrogativo. Un clic su questo menu attiva le funzionalit della Guida in Linea.

13

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

2. Prima Interazione
In questo capitolo prenderemo confidenza con Excel creando un foglio di lavoro basato su un
esempio concreto. La semplice lettura del testo che segue pu essere inutile e noiosissima. Per
evitare questa lettura, bisogna seguire il testo eseguendo in successione sul computer tutte le
operazioni che vengono descritte qui di seguito. Tiriamo fuori dal cassetto dove conserviamo i
vecchi documenti bancari, il blocchetto delle matrici di un libretto di assegni esaurito e teniamolo
aperto accanto alla tastiera: ricaveremo i dati di esempio dalle matrici dei vecchi assegni.
2.1 CONTROLLARE IL CONTO CORRENTE
Sullo schermo del computer aperta una cartella di lavoro chiamata Cartel1 nella quale visibile il
primo foglio di lavoro, che si chiama Foglio1. Portiamo il puntatore del mouse sulla cella C4 e
facciamo clic. La cella si circonda di un bordo pi scuro, segno che stata selezionata ed pronta
per ricevere input. Rileviamo limporto segnato sulla prima matrice e lo trascriviamo nella cella
selezionata.

Il numero compare nella cella C4 e contemporaneamente nella barra della formula. La barra della
formula presenta tre pulsanti alla sinistra del numero immesso: un clic su quello con la croce di
SantAndrea rossa annulla limmissione, un clic sul segno di spunta verde la conferma , mentre se
facessimo clic sul simbolo di funzione
potremmo introdurre una funzione. Trascuriamo per ora
questi pulsanti e limitiamoci a premere il tasto di INVIO, per confermare limmissione del dato. La
barra della formula si vuota e la cornice di selezione della cella passa su quella immediatamente
sotto, la cella C5, che ora risulta attiva.
Incoraggiati dal successo di questa prima operazione, proseguiamo con altri valori. Per non farla
troppo lunga, ne immettiamo solo altri quattro dalla cella C4 alla cella C8.
Portiamo il puntatore sulla cella C10 e facciamo clic. Esploriamo la barra degli strumenti Standard
e scorriamola col mouse fino ad appoggiare il puntatore sul pulsante marcato con il simbolo
.
Subito sotto il puntatore comparir una casellina gialla con la scritta Somma Automatica mentre
nella barra di Stato, in basso, verr evidenziata la scritta Inserisce la funzione Somma e propone il
relativo intervallo.
Ed proprio quello che succede facendo clic su questo pulsante.

14

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 16 - La casella C10 con la funzione predisposta SOMMA

Il pulsante col simbolo di sommatoria una scorciatoia per arrivare pi comodamente a un risultato
che potremmo ottenere digitando manualmente la formula nella cella dove ci interessa averla.
Per immettere materialmente la formula predisposta che viene evidenziata nella barra della
formula, basta fare clic sul pulsante col segno di spunta che si trova in questa barra.
La formula che viene preparata per noi dal programma formata dai seguenti elementi:
= segno di uguale, che, come gi sappiamo dagli esempi precedenti il codice che distingue un
dato da una formula.
SOMMA la parola chiave, che identifica loperazione aritmetica di somma, Va scritta
esattamente cos.
(C4:C9) questi caratteri indicano lintervallo sul quale si deve eseguire la sommatoria. In Excel si
chiama intervallo u n gruppo di celle contigue e lo si definisce col nome della prima cella seguito da
un segno di due punti e dal nome dellultima cella.
Lespressione =SOMMA(C4:C9) immessa nella cella C10 vi far apparire il risultato della somma di
tutti i numeri immessi nelle celle che formano lintervallo da C4 a C9.
I singoli importi e la loro somma, immessi in parte a mano e in parte automaticamente nellintervallo
che va da C4 a C10, non sono molto leggibili: mancano i separatori delle migliaia, che aiutano a
leggere i numeri grandi; inoltre noi sappiamo che i numeri rappresentano importi di denaro, ma cos
come sono presentati questo non si capisce. il caso di dare un formato ai numeri, ovvero, come
si usa dire in gergo formattarli.
Quando di vuole agire sul contenuto di una o pi celle , come intendiamo fare in questo momento,
bisogna prima informare Excel di questa intenzione selezionando le celle interessate da questa
operazione che si andr a fare. A questo scopo trasciniamo il mouse dalla prima allultima casella
dellintervallo C4:C10. Tutto lintervallo si colora di nero, per indicare che quel gruppo di celle
selezionato.
Fatta la selezione, andiamo a cercare un altro pulsante, ma questa volta non nella barra strumenti
Standard, ma in quella che si chiama Formattazione e che viene subito sotto. In questa barra un
pulsante raffigura unicona che rappresenta una banconota e delle monete
: appoggiandovi
sopra il puntatore del mouse e facendo clic il nostro intervallo diventa un guazzabuglio illeggibile.
Cosa accaduto?
Lattribuzione del formato Valuta a un numero lo allunga, aggiungendo alcuni caratteri e
precisamente L. per indicare che si tratta di lire e un punto per separare le migliaia.

15

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

La colonna C, essendo di ampiezza standard, pu contenere otto caratteri numerici: laggiunta del
simbolo di valuta e dei separatori delle migliaia ha fatto superare ai numeri la larghezza della
colonna, per cui non potendoli visualizzare correttamente, Excel ha mandato un segnale di errore
trasformando in una serie di # tutti i caratteri che non riesce a visualizzare in quello spazio troppo
ristretto.

Figura 17 - Allargando la colonna i numeri vengono visualizzati correttamente

Poco male. Portiamo il puntatore del mouse sullintestazione della colonna C, sulla linea di
demarcazione con la colonna D. Il puntatore assume la forma di una barretta verticale: facciamo
doppio clic e la colonna si allarga quanto basta per consentire la visualizzazione completa e
corretta di tutti i numeri nel formato valuta. La stessa operazione si pu fare a mano, trascinando il
mouse verso destra nel punto di intersezione delle due colonne, fino al momento in cui tutti i numeri
appaiono visualizzati correttamente.
Arrivati a questo punto facciamo una pausa. Per non perdere il lavoro e per riprenderlo in un
secondo tempo, occorre registrare su disco la cartella di lavoro. Loperazione si pu eseguire in
due modi diversi:
Facendo clic sul pulsante Salva nella barra degli strumenti Standard

Facendo clic sul menu File nella barra dei menu e poi scegliendo Salva fra le opzioni disponibili.
In entrambi i casi, trattandosi della prima volta che salviamo una cartella di lavoro nuova, Excel apre
la finestra di dialogo Salva con Nome, nella quale possibile selezionare il disco su cui creare il
nuovo file, scegliere la cartella che lo conterr e attribuire un nome al file.

16

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 18 - La finestra di dialogo Salva con Nome

La finestra di dialogo Salva con Nome la tipica finestra di sistema di Windows, la cui struttura
sostanzialmente uguale in tutti i programmi applicativi. nel caso di Excel lunica differenza di rilievo
data dalla casella di selezione Salva come Tipo, che appare predisposta con la dicitura Cartella
di lavoro Microsoft Excel (*.xls). Questo sta a significare che ci baster definire un nome per il file,
mentre i tre caratteri dellestensione (.xls) verranno assegnati automaticamente dal programma.
2.2 UN PASSO AVANTI
Con queste prime operazioni abbiamo imparato qualcosa su come si mettono numeri e formule in
un foglio di lavoro e come si attribuiscono loro un formato, ma il nostro progetto ancora molto
indietro. Vediamo di svilupparlo con lobiettivo di creare qualcosa che possa essere utilizzato anche
da chi ha ancora meno pratica di Excel di quella che abbiamo noi.
Per prima cosa ci serviranno un po di colonne in pi e qualche intestazione. In un conto corrente
bancario non ci sono soltanto operazioni di prelievo con assegno ma anche altri tipi di prelievo
(bancomat, Ordini di Bonifico) e, c da sperare, ci saranno anche versamenti. Potremmo
distinguere i movimenti di prelievo da quelli di versamento con un segno algebrico, ma ormai
abbiamo cominciato a registrare gli importi degli assegni come valori assoluti e tanto vale
continuare cos. Stabiliamo allora di creare una colonna per i versamenti e una per i prelievi. Inoltre,
visto che il conto corrente non nato oggi, ma ha gi un po di storia, avremo bisogno di un saldo
iniziale dal quale partire.
Cominciamo quindi dalle colonne e dalle loro intestazioni.
Portiamo il puntatore del mouse sulla cella A2 e scriviamo Data. Premiamo il tasto Tab. In questo
modo ci spostiamo sulla colonna successiva, nella stessa riga, quindi in B2. In B2 digitiamo
Documento, poi passiamo a C2 dove scriveremo Prelievi, in D2 dove immetteremo Versamenti
e infine scriviamo Saldo in E2.
Esteticamente lintervallo A2:E2 piuttosto povero: le diciture Documento e Versamenti appaiono
troncate e linsieme delle scritte contrasta poco con il resto dei dati. Sar il caso di provvedere
ancora con la formattazione.
17

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Selezioniamo lintervallo che ci interessa trascinando il puntatore del mouse da A2 a E2 e facciamo


della barra Formattazione. Le scritte appaiono ora in grassetto, ma
clic sul pulsante marcato
la situazione degli ingombri peggiorata, perch i caratteri in grassetto sono pi lunghi di quelli
normali.
Spostiamoci ora col puntatore del mouse sul bordo destro dellintestazione della colonna B e
trasciniamo il bordo verso destra fino a mettere bene in vista la parola Documento. Nelle tre
colonne successive (C,D,E) sappiamo che andremo a mettere numeri in formato valuta. Di queste
colonne la C gi larga abbastanza, mentre le altre due sono ancora della larghezza standard,
Proviamo a vedere quanto larga C per regolarci con le altre due.
Selezioniamo lintera colonna C con un clic sulla sua intestazione, quindi facciamo clic sul menu
Formato; in questo scegliamo Larghezza. Apparir una finestra che dice Larghezza colonna 11,71.
Lunit di misura per la larghezza delle colonne il numero di caratteri. Selezioniamo
contemporaneamente le tre colonne C,D,E, facciamo ancora scendere il menu Formato e
scegliamo Larghezza. La finestra che compare adesso vuota perch le colonne selezionate
hanno valori differenti. Nella casella vuota digitiamo 15 e facciamo clic su OK. Ora le tre colonne
hanno tutte la stessa larghezza pi che adeguata per contenere numeri nel formato valuta. Gi che
ci siamo selezioniamo lintervallo C2:E10 e attribuiamogli subito il formato Valuta agendo sul
pulsante Stile Valuta.
Ancora un piccolo tocco di formattazione. Riselezioniamo lintervallo A2:E2 e facciamo clic sul
pulsante della barra Formattazione

che serve per centrare il testo nelle caselle.

Dopo gli interventi di formattazione e con linserimento delle diciture ala tabella comincia ad avere
un aspetto pi chiaro. Proseguiamo immettendo le date degli assegni e il numero che li identifica.

Nella colonna Documento riportiamo il numero di ogni assegno. Per non farla troppo complicata
limitiamoci alle ultime quattro cifre di ogni numero.
Nella colonna Data digitiamo una dopo laltra le date degli assegni. Per scrivere la data si usa la
barra / per separare i giorni, i mesi e lanno (04/04/96).
Questa rappresentazione delle date quella predefinita o di default. Se ne possono avere altre
selezionando le celle della colonna Data e attivando il comando Celle nel menu Formato.
Si presenta una finestra di dialogo articolata in varie schede la prima delle quali si intitola Numero e
in questa facciamo scorrere lelenco Categoria fino a vedere le possibili opzioni di formato per la
data:

18

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 19 - La finestra di dialogo Formato Celle

In questa finestra scegliamo lopzione che rappresenta le date nel formato 4-mar-95 e facciamo
clic su OK. La finestra si chiude e le date nella colonna Data ora si presentano nel modo indicato,
Per la colonna Documento non il caso di attribuire un formato particolare, quindi lasciamo quello
predefinito.
Prima di proseguire salviamo il lavoro fatto. Siccome la cartella di lavoro gi stata salvata una
prima volta, il comando Salva pu essere impartito con un clic sullicona corrispondente.
Uninformazione essenziale nella gestione di un conto corrente il saldo iniziale. Quanto cera in
banca prima che staccassimo gli assegni che abbiamo registrato nella tabella? Prendiamo questa
informazione dallultimo estratto conto e digitiamo limporto nella cella E3, subito sotto lintestazione
Saldo.
La cella non nel formato per i numero. Proviamo a creare il formato valuta con una tecnica nuova.
Selezioniamo una delle celle dove si trova un numero di formato valuta e facciamo clic sul pulsante
Copia Formato, identificato dallicona di un pennello da imbianchino,
nella barra degli strumenti
Standard. Allontanando il puntatore del mouse dopo aver fatto clic su questo pulsante, notiamo che
viene trascinato insieme con il puntatore a croce anche il disegnino del pennello. Facciamo clic
sulla cella da formattare e, come ci era stato indicato nella barra di stato, il formato prelevato dalla
cella che conteneva un numero in formato valuta, adesso stato applicato anche sulla cella che
contiene limporto del saldo iniziale.
Adesso facciamo lavorare Excel sul serio. Finora, infatti, lo abbiamo usato soltanto per scrivere
numeri e parole. ma la orza di Excel sta nelle sue capacit di calcolo e di elaborazione in generale
dei dati immessi nelle celle dei fogli di lavoro.
Facciamo clic sulla cella E4 per selezionarla e, nella barra della formula, scriviamo:

= E3 - C4+D4
Con un clic sul pulsante di conferma, la formula passa nella cella E4, dove viene eseguita
visualizzando il risultato, che limporto del saldo iniziale, meno limporto del primo prelievo, pi
leventuale importo del primo versamento.
Dal momento che ci sono pi importi nella colonna dei versamenti, nella cella E4 troviamo la
differenza fra il saldo iniziale e il prelievo.
19

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 20 - La formula in E4

Ci piacerebbe vedere il saldo del nostro conto corrente subito dopo ogni operazione di prelievo o
versamento. Basta copiare la formula della cella E4 nelle celle sottostanti della stessa colonna E.
Potremmo fare questa operazione con la tecnica comune a tutti i programmi che operano sotto
Windows 95, chiamata Copia e Incolla.
Questa tecnica si pu attivare in tre modi diversi, dopo aver selezionata la cella o le celle da
copiare:
Con la barra dei menu:
clic sul menu Modifica, scelta del comando Copia.
clic sulla cella di destinazione, ancora clic sul menu Modifica e scelta del comando Incolla.
Scegliendo gli stessi comandi e ripetendo le stesse operazioni premendo il pulsante destro del
mouse prima sulloggetto da copiare e poi sulla destinazione.
Con i tasti:
1. tenendo premuto il pulsante CTRL e il tasto C.
2. selezionare la cella di destinazione e premere CTRL-V.
Excel ricco di comandi addizionali per cui consente di fare queste operazioni in un colpo solo. Se
osserviamo attentamente il bordo nero che circonda una cella selezionata, noteremo che
nellangolo in basso a destra c un quadratino.
Non unimperfezione del disegno, ma uno strumento che si chiama Quadratino di Riempimento.
Agganciando quel quadratino come una maniglia e trascinandolo verso il basso, il bordo della cella
selezionata si allunga e in tutte le celle che vengono cos coperte dal bordo allungato si genera una
copia della cella selezionata.
Il puntatore del mouse assume, quando in prossimit del quadratino di riempimento, la forma di
un segno pi tracciato con un tratto continuo, per indicare che pronto per agganciare il quadratino
e trascinarlo.
Fatta una copia della formula di E4 nelle celle da E5 a E8 con un qualunque metodo, possiamo
notare che, nelle celle in cui stata copiata, la formula originale ha mantenuto la sua struttura, ma
sono cambiati i riferimenti alle celle. Mentre in E4 avevamo:

=E3-C4+D4
nella cella E5 sottostante troviamo:
20

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

=E4-C5+D5
e la stessa modifica appare nelle altre copie.
Quando si copia una formula da una cella in unaltra Excel suppone che lutente voglia avere la
stessa formula in unaltra cella, non con gli stessi indici. reinterpreta, quindi, i riferimenti alle celle e,
mantenendo costanti gli operatori aritmetici, modifica i riferimenti alle celle, in modo che nelle celle
di destinazione questi siano uguali ai riferimenti della formula originale.
Nella cella E4, la formula originale dice sostanzialmente questo: prendi il valore contenuto nella
cella che sta in questa colonna, ma nella riga sopra (E3), sottrai il valore che si trova sue celle a
sinistra in questa stessa riga (D4) e somma il valore che c nella prima cella a sinistra, sempre
sulla stessa riga (C4).
Incollando in E5 una copia della formula che c in E4 la formula viene rigenerata, per conservare i
riferimenti relativi: il valore di partenza (il saldo) non pi quello contenuto in E3, ma ora quello in
E4, gli altri due operandi sono sulla riga sotto e quindi adesso stanno in C5 e D5.
Sfruttiamo ancora il Riempimento Automatico per avere una copia della formula che sta in C10.
Selezioniamo C10, agganciamo con il mouse il quadratino di riempimento e trasciniamolo verso
destra: in D10 troveremo la formula:

= SOMMA(D4:D9)
Non essendoci valori in questintervallo, la cella presenter il simbolo di valuta e un trattino, per
segnalare che l c qualcosa, anche se non lo si vede.
Come si ricorder, per ottenere la formula della sommatoria nella cella C10 avevamo usato il
pulsante Somma Automatica. In questo caso, se avessimo fatto la stessa operazione sulla cella
D10, richiamando Somma Automatica su una colonna vuota non avremmo ottenuto nulla, perch
questa funzione predisposta per sommare tutti i valori che sono presenti nelle celle
immediatamente superiori: non essendoci valori, la formula non verrebbe generata, o meglio, si
genererebbe una formula inutile.
La riga 10 presenta ora due totali, in corrispondenza delle colonne intestate Prelievi e Versamenti.
Per simmetria e per avere un riscontro della correttezza delle nostre formule, creiamo unaltra cella
di totali, questa volta nella posizione E10, alla base della colonna dei saldi. La formula che
immetteremo in questa cella simile a quella del saldo dinamico, ma fa riferimento ai due totali
generali:

=E3-C10+D10
per evidenziare il significato delle celle calcolate che stanno nella riga 10 selezioniamo la cella A10,
scriviamo Totale e, mentre la cella selezionata, facciamo clic sul pulsante G dalla barra
Formattazione per assegnare lo stile grassetto.
Ci accorgiamo per che non abbiamo spazio per inserire nuove operazioni di prelievo o
versamento, perch la riga 10, quella dei totali, chiude la tabella. Portiamo la riga dei totali nella riga
1.
Esiste un modo elegante che si chiama Trascina Selezione per eseguire loperazione taglia e
incolla in un colpo solo:
si seleziona lintervallo da spostare e si porta il puntatore del mouse nellangolo in alto a destra
dellarea selezionata, senza fare clic.
il puntatore cambia aspetto e, da croce, diventa una freccia.
si preme il pulsante sinistro del mouse (premere non fare clic) e si trascina il puntatore nella
zona in cui si vuole spostare la selezione.
21

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

lintero intervallo viene trascinato, liberando larea che occupava prima.


quando lintervallo arrivato a destinazione si rilascia il pulsante del mouse: i contenuti delle
celle si stabiliscono, come se avessimo eseguito loperazione in due passaggi con taglia e
incolla.
Adesso che abbiamo liberato il fondo della tabella, possiamo predisporla per ricevere limmissione
dei dati.
Controlliamo che le celle della riga 9 siano come quelle della riga precedente per quanto riguarda i
formati (Data in A9, generale in B9, Valuta in C9:E9) e che in E9 vi sia la stessa formula che
presente nelle celle che stanno sopra. Selezioniamo lintera riga formata dallintervallo A9:E9 e
agendo sul quadratino di riempimento automatico, trasciniamo il mouse fino a quando il conteggio
delle righe ci indica che siamo arrivati alla riga 100.
Arrivati a quel punto rilasciamo il pulsante del mouse e ci ritroviamo con una bella colonna di valori
ripetuti: leffetto della riproduzione della formula che da E9 stata ricopiata automaticamente fino
a E100.
Per tornare alla testa del foglio, la cella A1 si pu premere la combinazione dei tasti CTRL-HOME o
utilizzare le barre di scorrimento verticali.
Infine unultima messa a punto fondamentale ai fini del risultato: due delle tre celle delle formule per
i totali che stanno nella riga 1, vanno ora modificate, per tenere conto del fatto che abbiamo
predisposto un centinaio di righe per ricevere gli importi dei versamenti e dei prelievi.
Facciamo quindi clic su C1, nella barra della formula troviamo:

=SOMMA(C4:C9)
portiamo la barretta nel punto di inserimento a sinistra del 9 e digitiamo 100, cancellando il 9 in
modo che la formula risulti:

=SOMMA(C4:C100)
Ripetiamo la stessa operazione nella cella D1.
Con questa semplice modifica tutti gli importi che verranno inseriti in una qualunque cella della
colonna C o D compresa fra la riga 4 e la 100 saranno totalizzati e resi visibili nella prima riga del
foglio di lavoro.
Con un foglio di lavoro di questo tipo si pu tenere sotto controllo landamento dei movimenti di un
conto corrente.
Visto che il foglio cos prodotto utile al nostro scopo, possiamo pensare di utilizzare 12 fogli della
nostra cartella, uno per ogni mese dellanno.
Per assegnare ai primi dodici fogli di lavoro il compito di registrare i movimenti separati per mese
dobbiamo semplicemente cambiare nome ai fogli, che nelle linguette che li identificano, in fondo alla
finestra del documento, portano il nome predefinito di Foglio1, Foglio2, Foglio3, etc.
Per eseguire un certo numero di operazioni su un foglio di lavoro bisogna portare il puntatore del
mouse sul bordo destro della linguetta che contiene il nome del foglio e fare clic a destra.
Comparir un menu di scelta rapida che contiene il comando Rinomina. fatto clic su Rinomina, una
piccola finestra di dialogo ci chiede di immettere il nuovo nome da dare al foglio e in questa
digiteremo Gennaio. Ripetendo loperazione per dodici volte otteniamo dodici foglio di lavoro,
ciascuno col nome di un mese diverso.

22

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Come possiamo fare per i dati e le formule?


La prima cosa da fare selezionare tutta la parte attiva del primo foglio di lavoro, cio lintervallo
che va da A1 alla cella E100.
Si possono selezionare tutte le celle o con il mouse o con una combinazione di tasti:
MAIUSC+CRTL+FINE avendo cura di posizionarsi prima in A1.
Effettuata la selezione, utilizziamo il comando Copia dal menu Modifica e facciamo clic sul foglio
Febbraio; attiviamo il comando Incolla sempre nel menu Modifica e in un sol colpo, otteniamo una
copia dei dati del foglio di gennaio.
Lunica cosa da modificare la larghezza delle colonne, come stato fatto per il foglio Gennaio:
selezione delle colonne e scelta del comando Larghezza nel menu Formato / Colonna.
2.3 COLLEGARE I FOGLI
Quando siamo arrivati alla fine di gennaio, possiamo passare a lavorare sul foglio che abbiamo
chiamato febbraio. Per farlo, selezioniamo le celle che contengono dati ed eliminiamo i loro
contenuti con il tasto CANC. A mano a mano che proseguiamo nella cancellazione vediamo che i
due totali dei prelievi e dei versamenti nella riga 1 scompaiono, e infine resta un solo numero,
ripetuto su tutta la colonna E, che limporto del saldo iniziale di gennaio.
Se cominciassimo a immettere i dati per il mese di febbraio facendo riferimento al saldo iniziale che
avevamo impostato sul foglio gennaio, faremmo a noi stessi un pessimo servizio. Per lavorare
correttamente serve che limporto della cella E3 del foglio Febbraio contenga il saldo finale di
Gennaio, non quello iniziale dellanno.

23

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 21 - La finestra di dialogo Incolla Speciale

Questa informazione disponibile: il valore contenuto nella cella E1 del foglio Gennaio. Quindi per
far si che il saldo finale di Gennaio diventi quello iniziale di Febbraio ci basta copiare il contenuto
della cella E1 del foglio di Gennaio e incollarlo nella cella E3 del foglio Febbraio.
un gioco da ragazzi, ormai abbiamo imparato come si fa: clic su E1 in Gennaio, Copia,
passaggio al foglio di Febbraio, clic su E3 in questo foglio e via col comando Incolla.
Excel spara un segnale acustico di allarme e compare una finestra con lavviso di errore di
riferimento circolare. (premere su OK per chiudere la finestra).
La cella E1 in tutti i fogli di lavoro che abbiamo copiato a partire dal primo contiene la formula

=E3-C1+D1
che significa qui ci va il contenuto di E3, meno quello che c in C1 pi il contenuto di D1.
Immettendo questa formula, che quando in E1 funziona benissimo, nella cella E3 di un altro foglio
si crea una situazione di circolarit.
Nella cella E3 dei nostri fogli ci deve essere un valore assoluto, non una formula: non dobbiamo
quindi copiare il contenuto della cella E1 del foglio Gennaio per incollarlo nella cella E3 del foglio
Febbraio: quello che dobbiamo copiare il valore di E1.
Facciamo clic su E1 nel foglio gennaio e scegliamo il comando Copia dal menu Modifica. Ci
portiamo sul foglio Febbraio, facciamo clic su E3 e scegliamo dal menu Modifica il comando Incolla
Speciale. Compare una finestra di dialogo con un notevole numero di opzioni.
Scegliamo lopzione Valori.
Finalmente il foglio di Febbraio pronto per ricevere i dati sui prelievi e i versamenti.
Per stabilire un collegamento dinamico fra il foglio gennaio e il foglio Febbraio in modo tale che se
varia un valore in una determinata cella di Gennaio, la stessa variazione risulti in una cella collegata
a Febbraio, utilizziamo ancora la funzione Incolla Speciale del menu Modifica.
Selezioniamo la cella E1 del foglio gennaio e scegliamo il comando Copia.

24

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Posizioniamoci su E3 di Febbraio e attiviamo il comando Incolla Speciale e nella finestra di dialogo


omonima scegliamo il pulsante Incolla Collegamento che sta sul lato destro della finestra.
Nella cella E3 del foglio Febbraio vediamo il valore della cella E1 del foglio Gennaio, ma nella barra
della formula compare una scritta nuova:

=Gennaio!$E$1
Ora possiamo tranquillamente lavorare sul foglio di Febbraio sapendo che, se dovessimo tornare
indietro e fare qualche modifica sui valori immessi nel foglio di Gennaio, il saldo iniziale del foglio di
Febbraio rispecchier fedelmente le conseguenza di quelle modifiche.

25

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

3. Qualcosa di Solido
3.1 UN MODULO PER IL RIMBORSO SPESE
Prepariamo un foglio di lavoro secondo lo schema che si pu vedere nella figura che quello di un
modulo per raccogliere i dati. Ci serviremo di questa cartella di lavoro per esaminare quali servizi e
funzionalit di Excel si possono utilizzare per migliorare lefficacia e lefficienza di un tipico modulo
per acquisire dati.
La cartella di lavoro gi stata registrata in un file con un clic col nome Rimborso spese.xls. In
questo caso sfruttiamo la flessibilit nella definizione dei nomi offerta dalla versione 7.0 di excel
sotto Windows 95.
Chi lavora con versioni precedenti pu nominare il file Rimborso.xls.
Il foglio1 presenta uno schema ricorrente nella prassi di molte aziende dove ci sono dipendenti che
viaggiano spesso per lavoro. Limpostazione varia ovviamente, da caso a caso ma le informazioni
che servono sono come minimo le seguenti:
Commessa (B1)

Codice che identifica la commessa di lavoro o il


progetto o il nome del cliente a carico del quale
stato fatto il viaggio.

Viaggio (B2)

Itinerario della trasferta

Dipendente (B3)

Nome del dipendente che chiede il rimborso

Data Presentazione (E3)

Data in cui stata presentata la richiesta di


rimborso

Tariffa chilometrica (F1)

Tariffa per il calcolo della liquidazione del


rimborso per viaggi

Data (B5:F5)

Date in cui sono state effettuate le spese

Totali (G5:G17)

Totali per riga

Biglietti A (B6:F6)

Importi dei biglietti di viaggio pagati


anticipatamente dallazienda

Auto/Km (B7:F7)

Km percorsi dal dipendente

Auto/Rimborso (B8:F8)

Valorizzazione, in base alla tariffa chilometrica,


dei Km percorsi

Biglietti R (B9:F9)

Importi dei biglietti di viaggio acquistati dal


dipendente

Taxi (B10:F10)

Spese per Taxi

Pedaggi (B11:F11)

Pedaggi autostradali

Albergo (B12:F12)

Spese per pernottamento

Pasti (B13:F13)

Spese per pasti

Varie (B14:F14)

Spese di varia natura

Totale Spese (B15:F15)

Totale delle spese sostenute

Anticipo cassa (B16:F16)

Anticipi ricevuti dal dipendente

Rimborso Richiesto

Differenza Tra spese e anticipi.


26

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

(B17:F17)
Le informazioni che si raccolgono in questo modulo servono per:
Conteggiare correttamente quanto dovuto al dipendente e per quali ragioni
Ripianare gli scoperti di cassa di contabilit generati dagli anticipi
Aggiornare il costo industriale della commessa che ha generato il viaggio.
3.2 FORMATI E INTERVALLI
Le caratteristiche delle informazioni che si raccolgono con questo foglio di lavoro sono di per s
evidenti e possiamo predisporre i subito formati.
Definiremo quindi un formato Data per la cella E3 e per lintervallo B5:F5.
Le celle B1, B2 e B3 dovranno ricevere caratteri di testo, quindi pu andare bene il formato
Generale.
Lintero intervallo di celle che va da B6 a G17 destinato a ricevere numeri, non tutti per del
formato valuta, visto che ci sono anche i Km percorsi (B7:F7).
Scegliamo quindi per questo intervallo il formato numerico con separatore delle migliaia.
Per attivarlo, dopo aver selezionato lintervallo B6:G17, possiamo far scendere la finestra di dialogo
Formato Celle dal menu Formato o possiamo scegliere il pulsate Stile Separatore contraddistinto
dallicona con tre zeri nella barra degli strumenti Formattazione.
Per quanto riguarda lo stile dei caratteri attribuiamo a tutti lo stile Grassetto.

Le formule che sono presenti un questo foglio di lavoro non sono molto complesse e approfittiamo
delloccasione per utilizzare un altro metodo per inserirle.
3.3 LE ALTRE FORMULE
Nella cella B15 andremo a inserire la formula:

=SOMMA(B8:B14)
27

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

e poi dopo averla selezionata, eseguiremo unazione di Riempimento Automatico per copiarla
nellintervallo C15:F15. In questo caso i riferimenti relativi ci fanno gioco, perch in ciascuna cella la
formula far riferimento alla colonna sovrastante, che esattamente quello che vogliamo ottenere.
Per conteggiare quanto dovuto al dipendente si dovr eseguire una sottrazione nellipotesi che il
dipendente abbia sostenuto spese superiori allanticipo ricevuto. La formula da immettere in B17
sar:

=B15-B16
che verr poi copiata nelle celle adiacenti della stessa riga, sempre con la tecnica del riempimento
Automatico, fino alla cella F17.
Che cosa succede se il dipendente spende meno dellanticipo ricevuto?
Il risultato della sottrazione sar un valore negativo e il valore assoluto della cella B17 sar la cifra
che il dipendente dovr restituire allUfficio cassa.
nella colonna G, dalla riga 7 alla riga 17 ripetiamo la stessa formula che nella cella G7 sar:

=SOMMA(B7:F7)
e nelle celle sottostanti sar ripetuta con la modifica automatica dei riferimenti.
3.4 STAMPARE UN FOGLIO DI LAVORO
Per stampare un foglio di lavoro si possono seguire diverse strade. Quando il foglio piccolo e
semplice si pu fare clic sul pulsante Stampa della barra degli strumenti Standard. Il foglio sar
stampato con una struttura predefinita.
Le cose si fanno pi difficili quando il foglio di lavoro abbastanza complesso e molto grande
Per fortuna degli utenti Excel mette a disposizione una funzionalit della Anteprima di stampa,
richiamabile direttamente con un clic sul pulsante omonimo, che sta subito a destra del pulsante di
stampa. Con dice il suo nome, Anteprima di Stampa, permette di vedere il foglio di lavoro come
verr stampato, senza farlo materialmente.
Facciamo subito una prova e attiviamo lanteprima di Stampa per il foglio Rimborso Spese.
Una prima sorpresa: la barra di stato in fondo a questa schermata informa che il foglio produrr a
stampa due pagine e non una sola.
Per vedere la seconda pagina in Anteprima di stampa facciamo avanzare la barra di scorrimento e
possiamo constatare che rimasta fuori dalla prima pagina, una sola colonna.

28

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 22 - L'Anteprima di Stampa

Facciamo clic sul pulsante Imposta per attivare una finestra di dialogo con diverse schede tra le
quali scegliamo Orientamento del Foglio.
Un clic sul pulsante si opzione Orientamento Orizzontale e un secondo clic di conferma su OK ci
riportano alla finestra Anteprima di Stampa, dove abbiamo la soddisfazione di vedere che il nostro
modulo ora entra in ununica pagina.
Dalla finestra di Anteprima si possono attivare due funzioni importanti come Margini e Imposta.
Quando si fa clic su Margini compaiono sui bordi del documento una serie di tacche che
evidenziano le attuali impostazione dei margini del foglio e le larghezze delle colonne. possibile
regolare a vista i margini e le distanze fra le colonne agendo sulle tacche con il mouse e
spostandole.
Lo stesso risultato lo si pu ottenere digitando opportuni valori numerici nelle caselle che
contengono le dimensioni dei margini e che vengono visualizzate della scheda Margini della finestra
di dialogo Imposta Pagina.
3.5 INTESTAZIONI E PI DI PAGINA
Se non riceve disposizioni in merito Excel stampa il foglio di lavoro inserendo una intestazione che
porta il nome del foglio di lavoro e un pi di pagina col parola Pagina seguita dal numero della
pagina stessa.
Naturalmente possibile modificare questo comportamento. Per farlo si seleziona la scheda
Intest/Pi di pagina nella finestra di dialogo Imposta Pagina.

29

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Sono gi disponibili una serie di testi predefiniti per lintestazione e il pi di pagina, costruiti con
termini ricorrenti nella burocrazia aziendale e utilizzando varie informazioni reperite da Excel nel
sistema. Questi testi standard si possono reperire nella casella a discesa che compare sotto i due
riquadri a sinistra.
Se le diciture predefinite non sono adeguate, se ne possono creare di nuove, agendo sui rispettivi
pulsanti Personalizza. La finestra di dialogo che si presenta uguale per lintestazione sia per il pi
di pagina e permette di comporre uno di questi testi articolandolo in tre sezioni, che verranno
stampate in tre bande di uguali dimensioni. Il testo da stampare pu essere immesso direttamente
in una delle caselle disponibili, intitolate A Sinistra, Al Centro e A Destra. Non obbligatorio
utilizzarle tutte e tre.

Il testo immesso in queste caselle pu essere formattato scegliendo carattere, stile e dimensione
da una finestra di dialogo che viene attivata premendo il pulsante marcato con la lettera A. Agendo
sugli altri pulsanti che stanno alla destra di quello che serve a formattare il testo, si possono
immettere nelle tre caselle codici automatici che richiamano:
il numero della pagina;
il numero delle pagine in cui si sviluppa lintero documento stampato;
la data;
30

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

lora;
il nome del file della cartella di lavoro;
il nome della scheda (del foglio di lavoro).
3.6 AUTOCOMPOSIZIONE FUNZIONE
La tendenza al gigantismo di Excel si manifesta in tutto il suo splendore nella dotazione di funzioni
predefinite: sono esattamente 274 suddivise in categorie
Lautocomposizione Funzione si avvia automaticamente quando si sceglie il comando Funzione dal
menu Inserisci. Pu essere attivata anche dal pulsante Fx nella barra degli strumenti Standard
oppure dallo stesso pulsante che si trova nella barra delle formule in forma ridotta.

Lautocomposizione si sviluppa in due soli passaggi. Il primo serve per selezionare la funzione che
si vuole utilizzare mentre il secondo guida lutente allinserimento degli argomenti.
Quando lautocomposizione ha ricevuto le informazioni richieste dalle sue due finestre, inserisce
automaticamente la formula nella cella selezionata.
La prima finestra di dialogo a sinistra elenca le categorie in cui sono raggruppate le funzioni.
Selezionando il nome della categoria, lelenco delle funzioni che ne fanno parte compare nella
selezione di destra.
Per facilitare la ricerca, nella casella Categoria sono disponibili altri due raggruppamenti:
Tutte, che sviluppa la lista completa di tutte e 274 le funzioni disponibili in ordine alfabetico.
Usate pi di Recente. Fa comparire nella casella Nome Funzione un elenco ridotto delle funzioni
che sono state usate nellultima sessione di Excel e in quella in corso.
Scelta la funzione che interessa, ad esempio Media, si fa clic su Avanti.

31

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Si apre la seconda finestra. Una dicitura spiega che gli argomenti indicati come num1, num2....
possono essere da 1 a 30 e devono essere numerici. In alcuni casi esistono argomenti facoltativi e
altri obbligatori.
Quelli obbligatori sono visualizzati in grassetto, mentre gli altri sono da ritenersi opzionali.
Per la funzione media richiesto come minimo un argomento che deve essere o un numero
costante o un intervallo di celle che contengono numeri.
Per indicare largomento lutente pu digitarlo direttamente nella casella oppure pu puntare col
mouse la cella che contiene il valore che intende immettere. In entrambi i casi, una volta introdotto
un argomento, il valore che ha in quel momento nel foglio di lavoro compare nella parte destra della
casella in cui stato immesso. Contestualmente allimmissione degli argomenti, nella casella in
alto a destra, con letichetta valore, si presenta il risultato della funzione per gli argomenti immessi
fino a quel momento.
Un clic sul pulsante Fine provoca la chiusura dellautocomposizione e limmissione della funzione
nella barra della formula.
Da li premendo il tasto INVIO si pu immettere la funzione nella cella che era stata selezionata
allinizio del ciclo.
3.7 FORMATTAZIONE DI UN FOGLIO DI LAVORO
Una volta creato un foglio di lavoro possibile formattarlo per evidenziare le informazioni e creare
dei rapporti pi efficaci.
La barra degli strumenti Standard contiene gli strumenti e le opzioni di formattazione pi comuni,
quali grassetto, allineamento e bordatura delle celle.
Per disporre di pi opzioni di formattazione direttamente sul foglio di lavoro possibile visualizzare
la barra degli Strumenti Formattazione tramite la scheda Barre degli Strumenti nel menu Visualizza.
anche possibile utilizzare i comandi nel menu Formato.
3.7.1 Formattazione con bordi e ombreggiature
In Excel le celle possono essere racchiuse in una cornice e ombreggiate. possibile disegnare
una qualsiasi combinazione di linee orizzontali e verticali, a sinistra e a destra, in alto e in basso
rispetto alla cella. anche possibile creare sottolineature doppie e linee di colonna.
Il comando Celle nel menu Formato consente di visualizzare le schede Bordi e Sfondo che
permettono di controllare il formato dei bordi e delle ombreggiature.
Le celle adiacenti condividono i bordi. Inserire, ad esempio, un bordo inferiore in una cella equivale
ad inserire un bordo superiore nella cella sottostante.
possibile far risaltare i bordi, sottolineature doppie e ombreggiature nascondendo le griglie in un
foglio di lavoro.
32

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Per nascondere le griglie di riferimento quando si visualizza o si stampa un foglio di lavoro scegliere
il comando Opzioni dal menu Strumenti e selezionare la scheda Visualizza. Disattivare la casella di
controllo Griglia.
3.7.2 Aggiungere bordi e ombreggiature
1. Selezionare la cella o le celle da Formattare.
2. Scegliere il comando Celle dal menu Formato.
3. Selezionare la scheda Bordi.

4. Selezionare le opzioni desiderate.


5. Scegliere OK.
Ombreggiare le celle con dei motivi
1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.
3. Selezionare la scheda Motivo.

4. Selezionare il motivo dellombreggiatura ed i colori di primo piano e di sfondo desiderati.


5. Scegliere OK.
3.8 CAMBIARE LA FORMATTAZIONE DEL CARATTERE
1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.
3. Selezionare la scheda Carattere.

4. Selezionare le opzioni desiderate.


5. Scegliere OK.

33

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

3.9 APPLICARE IL FORMATO NUMERICO, DATA O ORA


1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.

3. Selezionare la scheda Numero.


4. Selezionare le opzioni desiderate.
5. Scegliere OK.
3.10 ALLINEARE IL TESTO O NUMERI
1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.

3. Selezionare la scheda Allineamento.


4. Selezionare le opzioni desiderate.
5. Scegliere OK.

34

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

4. Organizziamoci meglio
Le funzionalit di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per
registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e ricavarne molte informazioni: il
caso pi tipico quello delle analisi di bilancio, che abbiamo esaminato precedentemente.
4.1 CHE COS UN DATABASE
Il termine database si potrebbe rendere in italiano con base di dati, ma linglese ha dalla sua il
vantaggio della compattezza, che ce lo fa preferire. Con questo nome si caratterizza una qualsiasi
raccolta di dati omogenei, conservati su un supporto di registrazione in una forma strutturata.
Come il borghese di Molire, che parlava in prosa senza saperlo, tutti noi viviamo in mezzo ai
database e ce ne serviamo quotidianamente, anche se non sappiamo che si chiamano cos. Sono
infatti da considerarsi database le guide del telefono, le rubriche di indirizzi che teniamo in tasca o
sul tavolo di lavoro, le matrici degli assegni bancari e altri semplici oggetti di uso quotidiano.
Ci che caratterizza un database il fatto che contiene dati omogenei, registrati in forma
strutturata. Un bilancio non un database, perch i dati sono s, strutturati, ma si riferiscono a
realt diverse (attivit e passivit, per esempio), mentre pu essere considerato un database un
libro giornale di contabilit, perch tutte le righe contengono informazioni omogenee, disposte
sempre nello stesso modo (strutturate, quindi): numero di registrazione, data, documento, conto di
addebito, conto di accredito, importo.
In un database i dati sono organizzati secondo una gerarchia di contenitori che si chiamano campi,
record e tabelle. Questi termini tecnici si possono ricondurre a semplici realt della vita di tutti i
giorni. In un tipico database, qual la guida telefonica distribuita da Telecom, i campi contengono i
dati elementari che caratterizzano labbonato: cognome, nome, indirizzo, numero di telefono.
Mettendo insieme i campi di un singolo abbonato si ottiene un record, che corrisponde alla riga
stampata. Linsieme delle righe o record forma la tabella. Tutto qui.
La struttura data dallordine con cui sono disposti i campi nei record: nel caso della guida
telefonica, viene sempre prima il cognome, seguito dal nome, dallindirizzo e dal numero di telefono.
Un altro elemento qualificante lomogeneit dei contenuti: nel campo del numero di telefono non
compare mai un nome o un indirizzo.
Se mettiamo uno sotto laltro i record di una guida del telefono e diamo la stessa larghezza ai
campi, la tabella che ne risulta assume un aspetto molto familiare: i record potrebbero essere righe
e i campi colonne di un foglio di lavoro Excel. Lidentit strutturale fra un foglio di lavoro e una tabella
di database la base logica che consente di usare Excel anche per creare e gestire database e
non soltanto per analizzare dati numerici disposti su un foglio di lavoro.
Ben consapevoli di questa possibilit, i creatori di Excel hanno messo a punto una serie di
strumenti specializzati per agevolare luso di questo programma come gestore di database.
Vedremo in questo capitolo quali sono questi strumenti e come si possono utilizzare in concreto.
4.2 POSSIBILIT E VINCOLI
In merito alla logica interna dei database, alle correlazioni fra tabelle, campi e record, si sviluppata
negli anni una solida dottrina, che attinge alla logica matematica e alla teoria degli insiemi. Non il
caso qui di farvi riferimento, perch questo insieme di concetti di estremo interesse per
limpostazione e la gestione di database estremamente grandi, quali potrebbero essere larchivio
anagrafico dellINPS o il database per le prenotazioni dei posti di una linea aerea internazionale, ma
ha scarso rilievo per i database che si possono costruire con Excel, le cui dimensioni sono
decisamente molto pi contenute.
35

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Perch mai verrebbe fatto di chiedersi? Non vero, forse, che una cartella di lavoro Excel pu
contenere fino a 256 fogli e che in ciascun foglio si possono utilizzare 16.384 righe, ognuna
composta da 256 colonne? Non sarebbe possibile, quindi, creare una cartella di lavoro che ospiti un
database formato da 4.194.304 record (cio 16.384 righe per 256 fogli di lavoro)?
In teoria s, ma in pratica esiste un limite, imposto dalla dimensione della memoria RAM del
computer col quale si lavora. Per lavorare su una cartella di lavoro, Excel deve richiamarla dal disco
rigido in cui stata salvata e travasarla per intero nella RAM del computer, cio nellarea di lavoro
delle istruzioni che formano il programma, in modo che il contenuto della cartella sia
permanentemente accessibile senza che sia necessario accedere al disco per richiamarne dei
pezzi.
Unipotetica cartella di lavoro che contenesse quattro milioni di record - anche se ciascuno non
fosse pi lungo di 10 caratteri - avrebbe bisogno di uno spazio pari a 40 milioni di caratteri. Un
simile fabbisogno non potrebbe essere soddisfatto da un normale personal computer, perch la
dimensione delle RAM nei modelli pi diffusi raramente supera gli 8MB (milioni di byte) e anche
nelle macchine destinate a impieghi professionali non si va oltre i 16, massimo 32MB.
4.2.1 Campi e record
Per utilizzare le funzionalit di database presenti in Excel occorre attrezzare, per cos dire, il foglio
di lavoro, cio preparare uno schema vuoto che definisca i campi in cui si articolano i record che
formeranno la tabella, vale a dire il database vero e proprio.
Abbiamo gi visto in altre occasioni che bene riflettere un po prima di mettere dati e formule in un
foglio di lavoro, per non trovarsi in seguito incastrati in spazi troppo esigui ed essere costretti a
spostare tutti gli intervalli per lavorare meglio.
Una riflessione preliminare si impone ancora di pi quando si decide di creare un database per
utilizzare le relative funzioni di Excel.
opportuno anzitutto analizzare preliminarmente i dati che si hanno a disposizione (o che si
vogliono generare) per stabilire che uso se ne vuol fare e come andranno organizzati.
In un database ogni campo deve contenere un dato univoco, diverso da quello che pu essere
registrato in altri campi: se previsto che ci sia un cognome, deve contenere un cognome e un non
nome e cognome insieme; i campi che ospiteranno date dovranno contenere date e non descrizioni
e importi in denaro e cos via. Vanno inoltre eliminate le ridondanze, ogni informazione deve essere
presente una sola volta in un record.
Lunivocit dei singoli campi determina lunivocit dei record, ognuno dei quali deve
necessariamente essere diverso dagli altri. Anche se abbiamo due amici che si chiamano Mario
Rossi e per combinazione abitano entrambi a Milano in Corso Garibaldi 49, i loro numeri di telefono,
almeno, saranno diversi e questo render univoci i loro record in un ipotetico database di indirizzi.
Se per una qualunque ragione si ha motivo di pensare che i record potrebbero non essere univoci,
si aggiunga ai record un campo separato, che faccia da numeratore, in modo che si possano
comunque distinguere i singoli record in base a una numerazione progressiva.
Inoltre, quando possibile, bene suddividere su pi campi informazioni che allorigine possono
presentarsi aggregate in uno solo: per esempio, se si intende gestire un database di fatture, sar
bene prevedere un campo separato per limponibile e un altro per laliquota IVA, cos da poter
creare automaticamente il contenuto dei campi destinati a contenere limporto dellIVA e del totale
della fattura.
In generale, pi sono numerosi i campi elementari, pi il database flessibile e si presta a fornire
informazioni combinate del tipo pi diverso. Naturalmente, siccome ogni cosa ha un prezzo, la
flessibilit ottenuta in questo modo si paga con maggior impegno nellacquisizione dei dati.
36

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

4.2.2 Posizioni e nomi dei campi


Scelti i campi, occorre disporli in successione, uno a fianco allaltro per formare il record. bene
selezionarli in modo che la loro successione rispecchi una certa logica pratica, raggruppando i
campi che contengono informazioni simili. Per esempio, se si crea un database di fatture,
affiancare lidentificazione dei singoli record.
Per definire i campi si deve dar loro un nome. La scelta del nome deve rispettare i seguenti vincoli:
ogni nome deve essere diverso dagli altri
ciascun nome deve stare in una cella separata
i nomi non possono contenere spazi, numeri o formule
i nomi vanno disposti su una sola riga
Oltre ai vincoli, ci sono considerazioni di buon senso da tener presente:
uno nome pu essere formato da un minimo di un carattere a un massimo di 255, ma bene
usare nomi compatti, di pochi caratteri, perch verranno richiamati nelle formule per gestire il
database e pi sono lunghi pi facile sbagliare a digitarli;
non esagerare con la compattezza, per, perch nomi di due sole lettere, per esempio,
rischiano di coincidere con i nomi delle colonne in Excel, creando ambiguit per il programma di
gestione.
Dopo aver passato in rassegna i dati da gestire come database, scelti i nomi e stabilito lordine di
successione, possiamo creare materialmente il database.
4.3 UN DATABASE PER LE FATTURE
Per Excel un database un intervallo di righe, composte da un numero uguale di colonne. Le
colonne formano i campi, mentre le righe sono considerate record, eccetto la prima, che fa da
intestazione e contiene i nomi dei campi.
Anche un intervallo di poche righe e poche colonne pu essere considerato un database e trattato
come tale, ma se si prevede di lavorare con una discreta quantit di dati opportuno dedicare al
database un foglio di lavoro separato, cominciando col piazzare nella prima riga i nomi dei campi.
I nomi dei campi rispettano le convenzioni che abbiamo indicato nel paragrafo precedente. La
formattazione (carattere grassetto e bordo) delle celle della prima riga non influisce sul
funzionamento del database, serve soltanto a dare una maggiore evidenza ai nomi.

Figura 23 - Lo Schema di un database, con i nomi dei campi nella prima riga.

I campi dei record, dalla riga 2 in avanti, possono venire formattati in funzione dei dati che
conterranno: date, importi in valuta, descrizioni e cos via Il contenuto dei campi pu essere un
qualunque valore consentito in Excel: stringhe di testo, numeri, formule aritmetiche o formule
logiche.
Dopo aver creato lo schema, si possono immettere i dati effettivi in vari modi: digitando i valori
direttamente nei campi, uno dopo laltro, oppure eseguendo operazioni di copia/incolla da un altro
foglio di lavoro. Per esempio i campi IVA, Totale, Scadenza e Ritardo contengono formule, che
37

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

elaborano il contenuto di campi adiacenti, quindi non necessario immettervi dei dati, perch il loro
contenuto risulter dallo sviluppo delle formule.
Il primo campo, chiamato Doc (abbreviazione di Documento), per esempio, serve per assicurare
lunivocit di ciascun record. Contiene un codice identificativo formato dal numero della fattura e da
quello dellanno di emissione. Le fatture vanno numerate progressivamente, come impone la legge
fiscale. Possiamo farci aiutare da Excel per creare i codici delle fatture con numerazione
progressiva. Vediamo come.
Nella cella A2, che il primo campo dati dellarea del database, digitiamo il codice iniziale:

9601
e ripetiamo la stessa operazione nella cela A3, immettendo per 9602. Selezioniamo le due celle e
trasciniamo verso il basso il quadratino di riempimento della selezione, come per eseguire
unoperazione di riempimento automatico. Ed esattamente quello che accade: nelle celle sulle
quali si esegue il trascinamento va a inserirsi una successione di valori che prosegue la serie 9601,
9602, incrementando il numero di 1 a mano a mano che procede il riempimento.
Il meccanismo di riempimento automatico, che avevamo incontrato e utilizzato precedentemente
per creare copie differenziate di una formula, vale anche per i numeri e in casi come questo, in cui
occorre una serie di valori consecutivi, si dimostra molto comodo ed efficace.

Figura 24 - Con il Riempimento automatico si possono generare serie consecutive di numeri.

Per avere un piccolo campione di database col quale lavorare immettiamo i dati corrispondenti a
una quindicina di record, in modo da completare le righe da 2 a 16.

Figura 25 - Un database completo di dati.

4.3.1 Interventi sui record


Una volta creata di intestazione, si possono aggiungere ed eliminare record con le normali tecniche
di intervento sulle righe di in foglio di lavoro.
I nuovi record si possono semplicemente accodare a quelli esistenti. Se si preferisce - per una
qualsiasi ragione - inserirli in una posizione intermedia, basta selezionare una riga con un clic sulla
sua intestazione (lintestazione di una riga, ricordiamolo, la casella allestrema sinistra che
contiene il numero della riga), attivare il comando Righe dal menu Inserisci e immettere i dati nella
nuova riga che stata inserita.
Quando si inseriscono nuovi record in fondo alla tabella o in un punto intermedio - bisogna
immettere anche le formule per i campi calcolati, operazione che si fa con un semplice comando di
Riempimento automatico a partire dalla riga utile che precede immediatamente quella inserita ex
novo.
38

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Leliminazione di un record si pu fare con lo stesso meccanismo, selezionando la riga che lo


contiene e scegliendo il comando Elimina dal menu Modifica.
Se si desidera modificare un campo che contiene un valore non calcolato, basta selezionarlo e
riscriverne il contenuto in tutto o in parte.
In altri termini, la tabella che costituisce un database accessibile e modificabile come qualunque
altra parte del foglio di lavoro.

39

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5. La creazione dei grafici


Con Excel possibile creare grafici di qualsiasi tipo, al fine di presentare le informazioni nel modo
pi efficace. Il programma prevede numerosi tipi di grafici predefiniti e consente di creare i grafici
personalizzati, attraverso l'aggiunta di testo, frecce, titoli e legende, oltre a sfumature,
sovrapposizioni, motivi e bordi, il tutto mantenendo la massima qualit di stampa.
Questo capitolo spiega nei dettagli le procedure per la creazione dei grafici e i due capitoli seguenti
descrivono la modifica e la formattazione personalizzata, per tutti i tipi di diagrammi di Excel.
Le figure 26 e 27 mostrano alcuni esempi di grafici che possibile creare con Excel. La figura 26
mostra un grafico nel proprio foglio e la figura 27 due grafici incorporati in un foglio di lavoro. I grafici
incorporati vengono visualizzati e stampati insieme al foglio di lavoro.
Questo capitolo tratta i seguenti argomenti.
Creazione di un grafico incorporato
Uso della procedura guidata Autocomposizione Grafico
Creazione di un grafico in un foglio grafico
Creazione automatica di un grafico
Stampa dei grafici

Figura 26 - Un grafico di Excel nel proprio foglio

Figura 27 - Grafici di Excel incorporati in un foglio di lavoro

5.1 LA PROCEDURA DI CREAZIONE DEI GRAFICI


Excel crea i grafici sulla base delle informazioni selezionate dall'utente. Per la creazione e dei
grafici, disponibile Autocomposizione Grafico, una procedura completamente guidata che assiste
l'utente passo dopo passo nella creazione di qualsiasi diagramma. Excel in grado di creare
automaticamente un grafico dai dati selezionati, quando questi presentano una determinata
disposizione sul foglio di lavoro. Quando presente questa disposizione, Excel determina
correttamente le celle da usare come dati, come etichette delle categorie (x) e come etichette per
la legenda. La disposizione richiesta da Excel corrisponde alla disposizione pi comune per le
informazioni, quindi i grafici creati automaticamente da Excel generalmente sono corretti e non
richiedono interventi da parte dell'utente. possibile comunque personalizzare questi grafici
utilizzando tutti i comandi disponibili. Un grafico pu essere incorporato in un foglio di lavoro, oppure
trovarsi in un proprio foglio grafico. In entrambi i casi, il grafico rimane collegato ai dati su cui
basato, quindi se le informazioni cambiano, il grafico viene aggiornato automaticamente.
40

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5.2 T ERMINOLOGIA RELATIVA AI GRAFICI


I grafici di Excel contengono molti elementi che possono essere selezionati e modificati
individualmente. La figura 28 definisce alcuni di questi, descritti in tabella. Quando si posiziona il
puntatore del mouse su un elemento del grafico, compare un suggerimento che identifica
l'elemento (figura 28) o visualizza la serie ed il valore, se si tratta di uno dei dati.

Figura 28 - Gli elementi di un grafico di Excel

5.2.1 Come Creare un grafico


I grafici di Excel possono essere incorporati in un foglio di lavoro, oppure possono trovarsi in un
proprio foglio grafico. Un grafico incorporato compare nel foglio di lavoro accanto alle informazioni
contenute nelle celle (figura 27). Per poter incorporare un grafico, occorre lasciare uno spazio vuoto
sul foglio di lavoro. Un grafico inoltre pu comparire in un proprio foglio, nella cartella di lavoro,
quindi essere stampato separatamente dalle informazioni usate per crearlo. Quando si inserisce un
grafico in un proprio foglio, lo si aggiunge alla cartella di lavoro attiva e si salva il grafico con essa. Ai
fogli grafici vengono assegnati i nomi Grafico1, Grafico2 e cos via ed possibile rinominarli con il
comando Formato, Foglio, Rinomina o facendo doppio clic sulla scheda del foglio grafico e
digitando il nuovo nome.
Elementi dei grafici di Excel.
Oggetto

Descrizione

Assi

Asse delle categorie, x, o delle ascisse, disposto


orizzontalmente lungo il lato inferiore nella maggior parte dei
grafici, spesso indica serie temporali. Asse dei valori, y, o delle
ordinate, disposto verticalmente lungo il solo lato sinistro o su
entrambi, contiene la scala di rappresentazione dei dati. .Asse
z, per i soli grafici tridimensionali (gli assi dei grafici a barre sono
invertiti, mentre i grafici a torta non presentano assi).

Dato numerico

Unit di informazione, ad esempio le vendite relative ad un anno.

Serie di dati

Gruppo di dati numerici, ad esempio le vendite per gli anni dal


1991 al 1996. In un grafico lineare tutti i dati di una serie sono
collegati dalla stessa linea.

Legenda

Guida che spiega i simboli, i motivi e i colori usati per


differenziare le serie di dati. I nomi delle serie vengono usati
come etichette per la legenda. possibile spostare la legenda in
qualsiasi punto del grafico.

Indicatore

Oggetto che rappresenta un dato numerico in un grafico.


Esempio di indicatori sono barre, spicchi e simboli. Tutti gli
indicatori che appartengono alla stessa serie di dati presentano
la stessa forma, simbolo o colore. Nei grafici bidimensionali
lineari, a barre, XY ed istogrammi, Excel pu usare come
indicatore qualsiasi immagine creata con un programma di
grafica per Windows.
41

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Area del tracciato

Area rettangolare, definita dagli assi, che esiste anche attorno al


grafico a torta, il quale non esce mai da questa zona anche
quando gli spicchi vengano esplosi.

Formula di serie

Formula di riferimento esterno che indica ad Excel quale


intervallo di un foglio di lavoro consultare per localizzare d dati
da rappresentare in un grafico. possibile collegare un grafico a
pi foglio di lavoro.

Testo

Etichetta di testo visualizzata sul grafico, che possibile


modificare e spostare liberamente. Titolo del grafico, etichette
dei valori e delle categorie, etichette dei dati numerici costituite
da testo associato, testo Fluttuante.

Segno
graduazione

di Indicatore della graduazione sugli assi delle categorie (x), dei


valori (y) e z.

Barra degli strumenti Barra contenente gli strumenti per la creazione o la modifica ,
dei grafici.
Una nuova opzione di Excel 97 permette di associare una tabella di dati ad un grafico, come in
figura 29. Si tratta di un modo facile ed efficace per fornire i dati insieme al grafico. La tabella
collegata ai dati del foglio di lavoro, quindi i valori si aggiornano ad ogni modifica effettuata sul foglio
di lavoro.
Per creare un grafico, possibile procedere in vari modi. In primo luogo, disponibile la procedura
guidata Autocomposizione Grafico, la quale visualizza istruzioni dettagliate sull'intera operazione. In
secondo luogo, disponibile la funzione automatica. Selezionate alcune celle contenenti dati
numerici ed etichette, se si preme il tasto F11, Excel crea automaticamente un grafico in un foglio
grafico, usando il tipo standard. possibile modificare il grafico standard con qualsiasi comando
disponibile da Excel. Infine, esiste l'approccio manuale, con cui possibile partire da un grafico
vuoto ed incollare informazioni in esso. Si tratta di una tecnica utile per creare grafici XY complessi
o grafici che utilizzano i dati di diversi fogli di lavoro.

Figura 29 - Una tabella di dati associata ad un grafico

5.3 CREAZIONE DI UN GRAFICO


La funzione Autocomposizione Grafico ed il menu Grafico sono stati riorganizzati in Excel 97. Le
quattro finestre di dialogo della procedura guidata Autocomposizione Grafico ora sono identiche ai
primi quattro comandi del menu Grafico e questo permette di passare con maggiore facilit
dall'autocomposizione ai comandi Grafico e viceversa. possibile usare sia la procedura guidata
Autocomposizione Grafico che il menu Grafico per modificare un grafico dopo averlo creato. Per
creare un grafico tuttavia, il metodo pi semplice usare il mouse e la procedura guidata
Autocomposizione Grafico, la quale guida l'utente nell'intera creazione del grafico e consente di
vedere in anteprima il risultato che si otterr. Questo metodo particolarmente utile quando si
usano dati che non rispettano la disposizione che Excel riconosce di default.

42

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5.3.1 Creazione di un grafico con Autocomposizione Grafico


Prima di avviare la procedura guidata Autocomposizione Grafico, selezionare sul foglio di lavoro i
dati da rappresentare nel diagramma. Sebbene sia possibile selezionarli in seguito, pi semplice
farlo prima. Includere le intestazioni di righe e colonne, se si desidera che appaiano nel grafico
come etichette della legenda.
Per creare un grafico incorporato con la procedura guidata Autocomposizione Grafico, procedere
come segue.
1. Selezionare, sul foglio di lavoro, i dati da rappresentare.
2. Scegliere il comando Inserisci, Grafico o cliccare sul pulsante Autocomposizione Grafico, sulla
barra degli strumenti Standard. Si apre la prima finestra di dialogo della procedura guidata
Autocomposizione Grafico (figura 30).
3. Selezionare il tipo di grafico da creare dalla finestra di dialogo e cliccare su Avanti. Si apre la
seconda finestra di dialogo della procedura guidata (figura 31).

Figura 30 - Dalla prima finestra di dialogo della procedura guidata Autocomposizione Grafico,
possibile scegliere fra vari tipi di grafici.

Figura 31 - Dalla seconda finestra di dialogo della procedura guidata Autocomposizione Grafico,
possibile verificare e modificare i dati di origine del grafico.

4. Verificare, dalla finestra di dialogo, che l'intervallo di dati sia corretto e cliccare su Avanti. Se i dati
non erano stati selezionati prima di avviare la procedura guidata Autocomposizione Grafico,
possibile farlo ora. Cliccare sul pulsante Riduci finestra, selezionare l'intervallo di dati con il
mouse o dalla tastiera e cliccare sul pulsante Espandi finestra, per rivisualizzare la finestra di
dialogo. Se le categorie e le serie nell'anteprima del grafico sono invertite rispetto a come
dovrebbero apparire, selezionare l'opzione Serie in che al momento non selezionata: Righe o
Colonne.
5. Modificare o aggiungere le opzioni desiderate dalla terza finestra di dialogo della procedura
guidata, in figura 32, quindi cliccare su Avanti.
6. Dalla quarta finestra di dialogo della procedura guidata, in figura 33, selezionare l'opzione Come
nuovo foglio, per creare il grafico in un foglio grafico a parte; oppure l'opzione Come oggetto in,
per incorporare il grafico in un foglio di lavoro.
7. Cliccare su Fine per creare il grafico.

43

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 32 - Dalla terza finestra di dialogo della procedura guidata possibile scegliere fra varie
opzioni di perfezionamento dei grafico.

Figura 33 - possibile inserire un grafico come oggetto in un foglio di lavoro o in un proprio foglio
grafico.

Per la selezione delle celle da cui creare un grafico con la procedura guidata Autocomposizione
Grafico, occorre rispettare le regole seguenti.
Se necessario, selezionare informazioni non adiacenti tenendo premuto il tasto Ctrl e
trascinando sulle diverse aree.
Se una serie di dati comprende una cella con un'etichetta, tutte le serie devono contenere una
cella nella stessa posizione, sebbene vuota.
Per chiarimenti su come Excel crea i grafici dalle varie disposizioni di dati, consultare la sezione
dedicata ai grafici automatici, pi avanti in questo capitolo.
5.3.2 Le finestre di dialogo della procedura guidata Autocomposizione Grafico
Le finestre di dialogo visualizzate dalla procedura guidata Autocomposizione Grafico contengono,
nella parte inferiore, alcuni pulsanti che permettono di controllare la procedura (figura 34).

Figura 34 - I pulsanti in fondo alle finestre di dialogo della procedura guidata Autocomposizione
Grafico permettono di controllare la procedura.

5.3.3 Scelta dei tipo di grafico


La prima finestra di dialogo della procedura guidata Autocomposizione Grafico (figura 32) permette
di selezionare uno dei vari tipi di grafici disponibili. Cliccare sul tipo di grafico nella casella di
riepilogo a sinistra e quindi sul sottotipo desiderato nell'area a destra. Per usare la tastiera, ricorrere
ai tasti freccia per selezionare il tipo di grafico, premere il tasto Tab ed usare di nuovo i tasti freccia
per selezionare il sottotipo.
Scegliendo Fine dalla prima finestra di dialogo della procedura guidata Autocomposizione Grafico,
si crea un grafico utilizzando il tipo predefinito. Se non stato impostato un tipo di grafico
predefinito, Excel crea un grafico nel formato di default, l'istogramma 2D.
44

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5.3.4 Verifica dell'intervallo dei dati


La seconda finestra di dialogo della procedura guidata (figura 33) permette di correggere
un'eventuale selezione di dati sbagliata o selezionare i dati da rappresentare, se non lo si fatto
prima di avviare Autocomposizione Grafico. possibile modificare l'intervallo dei dati nella casella
di testo Intervallo dati. La modifica si esegue esattamente come nella barra della formula: cliccare
sull'intervallo di riferimento e premere F2, il tasto di modifica. possibile reimmettere intervalli o
celle, trascinando sulle celle nel foglio di lavoro. Per maggiore facilit, ridurre la finestra di dialogo,
cliccando sul pulsante Riduci finestra. Selezionare i dati con il mouse e quindi cliccare sul pulsante
Espandi finestra, per rivisualizzare la finestra di dialogo. possibile selezionare intervalli di dati non
adiacenti, utilizzando il tasto Ctrl. Gli intervalli di dati non adiacenti sono separati da un punto e
virgola nella casella Intervallo dati.
Per aggiungere un'ulteriore serie di dati ad un grafico, estendere il riferimento nella casella di testo
Intervallo dati, nella finestra di dialogo del passaggio 2. Cliccare sul pulsante Riduci finestra, per
ridurre la finestra di dialogo. Per aggiungere una serie di dati adiacente, tenere premuto il tasto
Maiusc ed estendere l'intervallo, cliccando sull'ultima cella nella serie da aggiungere. Per
aggiungere una serie non adiacente, tenere premuto il tasto Ctrl e selezionare l'intervallo di celle
non adiacente da aggiungere. Se gli intervalli di dati originali comprendono una cella contenente
un'etichetta, l'intervallo aggiunto deve includere anch'esso una cella in quella posizione. Cliccare sul
pulsante Espandi finestra, per rivisualizzare la finestra di dialogo.
La finestra di dialogo Dati di origine permette anch'essa di verificare che Excel rappresenti i dati
correttamente. In molti casi, Excel riconosce correttamente quali informazioni rappresentare
sull'asse orizzontale (asse x o delle categorie) e quali sull'asse verticale (asse y o dei valori) e quali
celle contengono le etichette da usare come titoli della legenda. Se le etichette dell'asse delle
categorie compaiono nella legenda e viceversa, possibile risolvere il problema selezionando
l'opzione Serie in che al momento non selezionata. Per una spiegazione dettagliata delle regole in
base a cui Excel interpreta i dati per creare i grafici, consultare la sezione dedicata ai grafici
automatici, pi avanti. possibile lavorare con le serie di dati anche nella finestra di dialogo Dati di
origine. Cliccare sulla scheda Serie per visualizzare la finestra di dialogo in figura 35. Da qui,
possibile aggiungere e rimuovere le serie e modificare gli intervalli di celle contenenti le etichette
delle categorie. Per aggiungere una serie di dati, cliccare sul pulsante Aggiungi, quindi cliccare nella
casella Nome e poi nella cella del foglio di lavoro contenente il nome della nuova serie. Cliccare
nella casella Valori e selezionare le celle contenenti i valori per la nuova serie di dati. Per rimuovere
una serie di dati, selezionarla nella casella Serie e scegliere Elimina.

Figura 35 - Dalla scheda Serie della finestra di dialogo Dati di origine, possibile modificare la serie
del grafico.

Se il grafico di esempio mostra numeri come etichette delle categorie, mentre dovrebbe
visualizzare etichette di testo, cliccare nella casella Etichette asse delle categorie e selezionare le
celle contenenti le etichette per l'asse delle categorie. possibile inoltre modificare un intervallo
esistente per le etichette delle categorie, modificando il contenuto della casella di testo. Dopo avere
selezionato l'intervallo nel modo desiderato, scegliere Avanti per passare alla fase 3 di
Autocomposizione Grafico.

45

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5.3.5 Impostazione delle opzioni per il grafico


La terza finestra di dialogo di Autocomposizione Grafico (figura 32) permette di aggiungere o
modificare varie opzioni del grafico. possibile aggiungere titoli agli assi, modificare o rimuovere
l'asse delle categorie, rimuovere l'asse dei valori, aggiungere o rimuovere le griglie. Inoltre,
possibile aggiungere e rimuovere la legenda e variarne la posizione. Etichette possono essere
associate ai simboli dei dati ed una tabella contenente i dati di origine pu essere aggiunta al
grafico.
5.3.6 Scelta della posizione per il grafico
La finestra di dialogo finale di Autocomposizione Grafico (figura 33) la sede da cui scegliere la
posizione per il nuovo grafico. Per incorporarlo in un foglio di lavoro, scegliere l'opzione Come
oggetto in. Il grafico viene incorporato di default nel foglio di lavoro contenente l'origine dei dati.
possibile incorporarlo in un altro foglio di lavoro, selezionando il foglio dalla casella di riepilogo a
destra dell'opzione. Per creare il grafico in un foglio grafico a parte, scegliere l'opzione Come nuovo
foglio. possibile immettere un titolo per il nuovo foglio nella casella di testo accanto a questa
opzione. Diversamente, al nuovo foglio verr assegnato un nome generico, quale Grafico1 o
Grafico2.
La figura 36 mostra un grafico terminato ed incorporato nel foglio di lavoro. Il grafico incorporato
parte del foglio di lavoro e viene salvato e aperto con la cartella di lavoro. possibile posizionare e
dimensionare il grafico esattamente dove si desidera. Per spostare il grafico, posizionare il
puntatore sul contorno del grafico e tenere premuto il pulsante sinistro del mouse. Quando un
grafico selezionato, mostra alcune maniglie nere sui contorni ed possibile trascinarlo nella
posizione desiderata.

Figura 36 - Un grafico incorporato in un foglio di lavoro

Per cambiare la dimensione o le proporzioni del grafico, agganciare le maniglie nere lungo i bordi (il
cursore si trasforma in una freccia a due punte) e trascinare fino ad ottenere le dimensioni e le
proporzioni desiderate. Quando necessario cambiare dimensioni e proporzioni del grafico, farlo
prima di aprire il grafico per formattarlo.
Quando si formatta un grafico con legenda, testo ed altri elementi, la formattazione potrebbe
apparire sproporzionata se si dimensiona il grafico in seguito.
Per cambiare le dimensioni di un grafico senza variarne le proporzioni, tenere premuto il tasto
Maiusc e trascinare una della maniglie negli angoli. Per allineare un grafico con i bordi delle celle,
tenere premuto il tasto Alt e trascinare.
Tenendo premuto il tasto CtrI mentre si trascina una delle maniglie sui lati, entrambe le dimensioni
del grafico cambiano simultaneamente. Tenendo premuto il tasto CtrI, il grafico viene dimensionato
in modo uniforme nelle due direzioni.
Per eliminare un grafico incorporato, selezionare il grafico e premere Canc o scegliere Modifica,
Cancella, Tutto. Per perfezionare o formattare un grafico, aprirlo, come descritto nella sezione
dedicata alla modifica, pi avanti in questo capitolo. La figura 37 mostra un grafico terminato,
disposto su un proprio foglio grafico. Il foglio grafico parte della cartella di lavoro attiva e viene
salvato con essa. Pu essere stampato separatamente dal foglio di lavoro che contiene i dati del
grafico.
46

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 37 - Un grafico disposto su un proprio foglio grafico

possibile incorporare in un foglio di lavoro un grafico disposto sul proprio: procedere come segue.
1. Selezionare il foglio grafico e quindi selezionare l'intero grafico, cliccando all'esterno del
diagramma. Sui lati del grafico compaiono alcune maniglie nere.
2. Scegliere Modifica, Copia.
3. Attivare il foglio di lavoro in cui incorporare il grafico e selezionare la cella nell'angolo superiore
sinistro dell'area in cui posizionare il grafico.
4. Scegliere Modifica, Incolla.
Il grafico viene incorporato nel foglio di lavoro a dimensione piena e pu essere dimensionato,
spostato e formattato, esattamente come qualsiasi grafico incorporato.
Problemi e soluzioni
Excel non aggiorna o rintraccia il grafico dopo avere modificato i dati sul foglio di lavoro.
possibile che sia attivata la modalit di ricalcolo manuale, quindi per aggiornare il grafico con i nuovi
dati occorre scegliere il coniando Strumenti, Opzioni, selezionare la scheda Calcolo e cliccare sul
pulsante Calcola (F9). In alternativa premere il tasto F9. possibile inoltre attivare il ricalcolo
automatico per l'intera cartella di lavoro, scegliendo l'opzione Automatico nella sezione Calcolo
della stessa scheda.
Informazioni dal Web Per ottenere assistenza online su Excel, visitare il seguente sito Web:
http://www.microsoft.com/support/
Per procedure, suggerimenti ed aggiunte per le applicazioni Office, accedere a:
http://www.ronperson.com/
5.4 SALVATAGGIO DEI GRAFICI
Un grafico incorporato in un foglio di lavoro viene salvato insieme alla cartella di lavoro in cui il foglio
contenuto; anche un grafico contenuto in un foglio grafico viene salvato insieme alla relativa
cartella di lavoro.
Quando si apre un grafico creato con Excel 4 o una versione precedente, esso compare nella
propria cartella di lavoro, all'interno di un foglio grafico; quando lo si salva, possibile scegliere il
formato originario, oppure aggiornarlo al formato Excel 97. Quando si salva il file, compare una
finestra di dialogo che chiede se si desidera aggiornarlo al formato Excel 97; scegliere S per
aggiornare il file o No per mantenere il formato originale. Si tenga presente che quando si formatta
un grafico in Excel 97 e lo si salva in una versione precedente, alcuni formati potrebbero venire
cancellati.
5.5 APERTURA DI UN GRAFICO PER LA MODIFICA
Un grafico pu trovarsi nel proprio foglio o essere incorporato in un foglio di lavoro ed in qualunque
caso pu essere riformattato. Per poter riformattare un grafico, occorre prima aprirlo o attivarlo. Per
aprire o attivare un grafico incorporato in un foglio di lavoro, cliccare sul grafico; quando il grafico
attivato, compaiono attorno ad esso alcune maniglie nere e nella barra del menu di Excel compare
47

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

il menu Grafico. Terminata la formattazione del grafico, per ritornare al foglio di lavoro, cliccare
all'estemo del diagramma, in qualsiasi punto del foglio.
Un grafico incorporato pu inoltre essere visualizzato in una propria finestra. Cliccare sul grafico
per selezionarlo e scegliere Visualizza, Finestra grafico. Il grafico incorporato appare in una finestra
della stessa dimensione del grafico sul foglio di lavoro. possibile trascinarla in una nuova
posizione sul foglio di lavoro, senza modificare la posizione del grafico. Terminata la modifica del
grafico, cliccare all'esterno della finestre per chiuderla o scegliere di nuovo Visualizza, Finestra
grafico.
Per aprire un grafico che si trova in un foglio grafico, scegliere il comando File, Apri, selezionare la
cartella di lavoro contenente il grafico e cliccare su OK. Quando si apre un grafico collegato ai dati
di una cartella di lavoro non aperta, Excel mostra una finestra di dialogo con cui chiede se
aggiornare il grafico. Scegliendo S, il grafico usa i valori correnti nel foglio di lavoro; scegliendo No il
grafico continua ad usare i valori con cui stato salvato. Una volta che la cartella di lavoro aperta,
selezionare il foglio grafico contenente il grafico su cui lavorare.
Quando si crea un grafico in un foglio separato, il grafico non riempie la finestra quando
visualizzato. Perch il grafico riempia l'intera finestra della cartella di lavoro, scegliere Visualizza,
Ridimensiona con finestra.
Per aprire i fogli di lavoro collegati ai grafici aperti, scegliere Modifica, Collegamenti, selezionare il
nome del foglio di lavoro nella casella Origine e scegliere il pulsante Apri origine.
5.6 STAMPA DEI GRAFICI
La stampa dei grafici simile alla stampa del foglio di lavoro. e possibile stampare direttamente
dallo schermo, oppure visualizzare preventivamente il grafico in anteprima. I grafici incorporati nei
fogli di lavoro vengono stampati con i fogli stessi.
Per stampare i grafici incorporati in un foglio di lavoro si usano le stesse tecniche di stampa proprie
dei foglio di lavoro; possibile creare visualizzazioni e scenari contenenti i grafici incorporati e
quindi usare il comando Visualizza, Gestione rapporti, Stampa per stampare le visualizzazioni con
diversi scenari.
Prima di stampare un grafico contenuto in un foglio grafico, occorre decidere la dimensione del
grafico sulla pagina ed impostarla con il comando File, Imposta pagina o attraverso il pulsante
Imposta nella finestra di dialogo File, Anteprima di stampa, dalla scheda Margini (figura 38). Per
modificare i margini, possibile inoltre cliccare sul pulsante Margini nella finestra di dialogo File,
Anteprima di stampa e trascinare le linee dei margini nelle posizioni opportune.

Figura 38 - La scheda Margini della finestra di dialogo Imposta pagina

Se si scelgono font che la stampante non in grado di riprodurre, la stampa sar diversa dalla
visualizzazione. Per evitare il problema, selezionare dalla scheda Carattere, nella finestra di dialogo
Formato alle, i soli caratteri affiancati dall'icona della stampante o dall'icona TT.
Le opzioni nella finestra di dialogo Imposta pagina permettono di determinare la disposizione del
grafico rispetto ai margini dell'area stampata. Selezionare il comando File, Imposta pagina o
cliccare sul pulsante Imposta nella finestra di dialogo File, Anteprima di stampa e scegliere la
scheda Grafico (figura 39). Per ingrandire il grafico proporzionalmente fino ai margini, selezionare
Adatta alla pagina; il risultato compare in figura 40; per ingrandire il grafico in entrambe le
48

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

dimensioni fino a riempire i margini, selezionare Usa pagina intera. Il risultato dell'opzione Usa
pagina intera, con lo stesso grafico di figura 40, compare in figura 41.
Per visualizzare il grafico prima di stamparlo o per modificare interattivamente con il mouse la
dimensione del grafico o i margini, procedere come segue ed osservare come riferimento le figure
63 e 64.

Figura 39 - La scheda Grafico della finestra di dialogo Imposta pagina

1. Scegliere il comando File, Anteprima di stampa.


2. Per esaminare i dettagli o l'insieme del grafico, ingrandire o ridurre la visualizzazione. Per
ingrandire, posizionare il puntatore del mouse sullarea d'interesse e cliccare quando il
puntatore assume l'aspetto di una lente dingrandimento Per ritornare alla visualizzazione
normale, cliccare sulla pagina ingrandita. Dalla tastiera, scegliere il pulsante Zoom per
ingrandire e ridurre.

Figura 40 - Un grafico ingrandito proporzionalmente fino ai margini della pagina, attraverso


l'opzione Adatta alla pagina

Figura 41 Un grafico ingrandito fino ad occupare l'intera pagina, attraverso l'opzione Usa pagina
intera

3. Ritornare alla finestra di dialogo Imposta pagina, selezionando il pulsante Imposta. Per
espandere il grafico in altezza e larghezza, selezionare la scheda Grafico e quindi l'opzione
Usa pagina intera.
4. Cliccare su OK.
5. Modificare i margini e la dimensione del grafico, cliccando sul pulsante Margini. Per
modificare i margini e la dimensione, trascinare le maniglie nere visibili in figura 40.
6. Per visualizzare la finestra di dialogo Stampa, cliccare sul pulsante Stampa. Per ritornare al
grafico, scegliere Chiudi.
Per stampare il grafico, scegliere il comando File, Stampa o premere Ctrl+Maiusc+F12 e riempire
la finestra di dialogo. Seguire la stessa procedura descritta precedentemente per la stampa del
foglio di lavoro.

49

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Per stampare rapidamente in grafico, senza visualizzare la finestra di dialogo Stampa, cliccare sul,
pulsante Stampa, sulla barra degli strumenti Standard.

50

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

6. Funzioni
6.1 CHE COSA SONO LE FUNZIONI
Non tutti i calcoli sono semplici. Fortunatamente, Excel pu eseguire calcoli anche molto
complessi. Le funzioni sono formule predefinite che eseguono elaborazioni matematiche
complesse. Voi inserite il nome della funzione e tutti gli argomenti (le informazioni aggiuntive)
necessari per la funzione ed Excel esegue i calcoli. SOMMA e MEDIA sono esempi di funzioni
semplici e immediate, mentre RATA e CERCA.VERT sono esempi di funzioni tipiche, ma pi
complesse, che vengono discusse in questo capitolo.
Ogni formula pi semplice da leggere e da comprendere se usate nomi ed eticbette di cella al
posto dei riferimenti di cella (per esempio, la formula = tasse + subtotale pi facile da
comprendere di =H32+H33). Dopo avere creato il nome o l'etichetta di una cella, questa viene
automaticamente usata al posto del riferimento quando la cella utilizzata in una formula. Un nome
di cella pu essere qualunque nome voi decidiate. Le etichette sono simili ai nomi di cella, ma si
applicano alle righe o alle colonna e vengono usate automaticamente da Excel per identificare le
celle in una formula. In questo capitolo viene descritto come si creano e si usano i nomi e le
etichette di cella per rendere pi semplice la comprensione delle formule. Sembra che gli errori e i
dati non validi riescano sempre a trovare un modo per entrare nei fogli di lavoro, specialmente
quando lavorate con calcoli complessi; ad ogni modo sono pi facili da individuare e correggere se
si hanno gli strumenti appropriati. In questo capitolo si parla di alcuni strumenti che aiutano a
individuare i problemi.
6.1.1 Usare le funzioni
Excel include numerose funzioni, alcune delle quali vengono usate continuamente, mentre altre vi
possono interessare solo se siete un ingegnere elettrotecnico o un fisico nucleare. Le funzioni
hanno nomi specifici, come SOMMA, MEDIA o DISTRIB.BETA, che devono essere scritti
correttamente, altrimenti Excel non riesce a riconoscerli. In Excel, comunque, sono incluse finestre
di dialogo che aiutano a scrivere il nome giusto e a compilare gli argomenti necessari per ogni
funzione.
Le funzioni pi avanzate (e usate pi raramente) si trovano nellaggiunta Strumenti di analisi. Se
quest'aggiunta non elencata nella finestra di dialogo Componenti aggiuntivi (scegliete Componenti
aggiuntivi dal menu Strumenti, dovete installarla dal CD-ROM di Office 2000 o di Excel 2000.
6.2 SCRIVERE UNA FORMULA CONTENENTE FUNZIONI
6.2.1 Usare la finestra di dialogo Incolla funzione per scrivere una formula
1. Fate clic sulla cella in cui desiderate inserire i risultati della formula.
2. Fate clic sul pulsante Incolla funzione sulla barra degli strumenti Standard.
Cos facendo, viene visualizzata la finestra di dialogo Incolla funzione (Figura 42).

51

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Figura 42 - La finestra di dialogo Incolla funzione spiega in breve la funzione selezionata.

3. Selezionate una categoria di funzioni e fate doppio clic sulla funzione desiderata.
Si apre la Finestra della formula per aiutarvi a completare la funzione (Figura 43).

Figura 43 - La finestra della formula aiuta a immettere gli argomenti.

4. Fate clic nella casella degli argomenti e leggete la descrizione dell'argomento per determinare
quali informazioni sono necessarie. Fate clic sul pulsante ? per avere ulteriori informazioni
sulla funzione.
5. Fate clic sulle celle del foglio di lavoro o selezionatele con il trascinamento per immettere gli
argomenti (se sono richiesti riferimenti di celle).
Per ridurre la Finestra della formula in modo che non copra le celle del foglio di lavoro che
desiderate selezionare, fate clic sul pulsante Comprimi finestra a destra dell'argomento,
selezionate le celle del foglio di lavoro e fate clic sul pulsante a destra della casella
dell'argomento per visualizzare di nuovo la Finestra della formula e continuare a costruire la
funzione.
6. Scegliete OK.
La funzione viene creata e la formula completata.
Se d'intralcio, potete trascinare la Finestra della formula (la finestra di dialogo in cui si immettono
argomenti delle formule) in un punto diverso del foglio di lavoro.

52

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Questa la procedura basilare. Di seguito viene descritto come si usa questa procedura per
scrivere formule specifiche, tipiche e utili nei fogli di lavoro.
6.3 FUNZIONI TIPICHE DEI FOGLI DI LAVORO.

Funzione

Scopo

SOMMA

Sommare i valori dell'intervallo selezionato

MIN

Trovare il valore minimo dell'intervallo selezionato

MAX

Trovare il valore massimo dell'intervallo selezionato

MEDIA

Fare la media dei valori dell'intervallo selezionato

CERCA.VERT e CERCA.ORIZZ

Trovare un valore in una tabella

RATA

Calcolare la rata per condizioni di finanziamento specifiche

ADESSO

Restituire la data e lora attuali

OGGI

Restituire la data attuale

CONCATENA

Unire in una sola cella i valori di pi celle

SINISTRA e DESTRA

Restituire un numero specifico di caratteri a sinistra (o a


destra) del valore di una cella

Quando vi sarete impratichiti con le formule, diventerete in grado di scriverle pi velocemente da


soli, ma dovrete fare attenzione a scrivere correttamente il nome delta funzione. Provate a mettere
in pratica questo suggerimento: digitate il nome della funzione in lettere minuscole. Se stato
scritto correttamente, Excel lo converte in lettere maiuscole quando premete Invio (per esempio,
sum viene convertito in SUM). Se digitato in modo scorretto, Excel non lo conviene in maiuscolo:
questo un indizio che stato scritto erroneamente.
6.3.1 Alcune funzioni tipiche e utili
In questo paragrafo sono forniti esempi e suggerimenti relativi alle funzioni elencate nella Tabella.
Questo breve elenco contiene solo alcune delle centinaia di funzioni disponibili in Excel. Se
esplorate lelenco di funzioni nella finestra di dialogo Incolla funzione, troverete funzioni che
calcolano il seno, il coseno, la tangente e leffettivo valore del pi greco e anche funzioni per molte
equazioni contabili, di ingegneria, sui logaritmi e di distribuzione binomiale. L'elenco quasi infinito,
ma in questo libro ci si limita a vedere solo le funzioni pi utilizzate.
Quando scrivete per la prima volta una formula, dovreste collaudarla per essere sicuri che esegua
il calcolo in modo appropriate (vale a dire per essere sicuri di avere inserito tutti gli argomenti
correttamente e che i risultati siano esatti). Per collaudare una formula, inserite dati fittizi (numeri
finti) nel foglio di lavoro. Usate dati fittizi semplici: stringhe brevi, che siano rapide da digitare, e
numeri con cifre arrotondate in modo da poter fare i calcoli a mente e sapere subito se i risultati
sono esatti.
6.4 Somma
La funzione SOMMA tra le pi utili: somma tutti i numeri in un intervallo selezionato. Solitamente la
si inserisce alla fine di un elenco di numeri.

53

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

6.4.1 Scrivere una formula SOMMA


1. Fate clic nella cella in cui desiderate inserire la formula.
2. Digitate =
3. Digitate somma (
4. Nel foglio di lavoro, selezionate con il trascinamento le celle che desiderate sommare
5. Digitate )
6. Premete Invio.
Sebbene sia opportuno che la formula si trovi sotto l'elenco, potete inserirla in qualunque punto nel
foglio di lavoro.
La formula completa. Se avete scritto correttamente il nome della funzione, Excel lo converte in
lettere maiuscole.
Quando trascinate alcune celle per inserirle in una formula, in base alle impostazioni predefinite
Excel usa i riferimenti relativi; se copiate questa formula in un'altra cella, il risultato cambia perch i
riferimenti relativi si modificano automaticamente. Se, tuttavia, trascinate la cella per spostarla
altrove nel foglio di lavoro, Excel mantiene i riferimenti originali e il risultato rimane inalterato. Se, per
evitare confusione, desiderate essere sicuri che i riferimenti rimangano gli stessi, potete rendere
assoluto il tipo di riferimenti.
Per modificare rapidamente il tipo di riferimento della cella, fate clic su di esso e premete F4 finch
non otterrete il tipo desiderata, quindi premete Invio.
6.5 M IN
La funzione MIN restituisce il valore minimo, vale a dire il pi piccolo, in un intervallo di numeri.
Naturalmente, se lintervallo una singola colonna di numeri, potete trovare il valore pi piccolo
anche ordinando o filtrando l'elenco. Se lintervallo una grande tabella di numeri, la funzione MIN
pu risultare utile.
6.5.1 Scrivere una formula con la funzione MIN
1. Fate clic sulla cella in cui desiderate inserire la formula.
2. Digitate =
3. Digitate min(
4. Nel foglio di lavoro, selezionate con il trascinamento le celle per cui desiderate cercare il
valore minimo
5. Digitate )
6. Premete Invio.
Poich il valore minimo il risultato di una formula, questa continua a trovare il valore minimo
automaticamente, anche se cambiate i numeri sul foglio.
Se dovete creare un foglio di lavoro mensile, potete risparmiare tempo creando un modello e
includendovi la formula MIN. Quando aprite una copia del modello, la formula gi inserita e, a
mano a mano che inserite numeri, trova automaticamente il valore minimo.
54

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

6.6 M AX
La funzione MAX l'opposto di MIN: trova il valore pi grande nell'intervallo selezionato di celle. Per
scrivere una formula con la funzione MAX, potete seguire la procedura precedentemente descritta
per la funzione MIN.
6.6.1 Scrivere una formula con MAX usando la finestra di dialogo Incolla funzione
1. Fate clic sulla cella in cui desiderate inserire la formula.
2. Fate clic sul pulsante Incolla funzione.
Cos facendo, viene visualizzata la finestra di dialogo Incolla funzione.
3. Per limitare lintervallo di scelte, selezionate una categoria di funzioni nell'elenco Categoria (se
conoscete il nome della funzione che desiderate, ma non sapete in quale categoria trovarla,
selezionate Tutte).
4. Scorrete lelenco di funzioni nella parte destra della finestra di dialogo e fate doppio clic sulla
funzione desiderata (per questo esempio, cercate la funzione MAX nella categoria
Statistiche).
5. Viene visualizzata la Finestra della formula relativa alla funzione su cui avete fatto doppio clic,
in questo caso specifico, la funzione MAX.
6. Evidenziate o cancellate i valori presenti nell'argomento Num1 e inserite lintervallo dell'intera
tabella selezionando le celle con il trascinamento.
7. Scegliete OK.

Quando usate la funzione MAX o MIN per determinare il valore pi alto o pi basso di una grande
tabella, dovete comunque cercare il valore calcolato dalla formula tra tutti quelli presenti nella
tabella, Potete far emergere visivamente il valore calcolato combinando la funzione MAX o MIN con
la formattazione condizionale dei numeri, che formatta il valore nella tabella con la formattazione
impostata.
6.7 M EDIA
La funzione MEDIA un'altra funzione tipica e facile da usare. semplice da scrivere come le
funzioni SOMMA, MIN e MAX, pertanto nel seguente esercizio verr scritta senza laiuto di finestre di
dialogo. La cosa importante da sapere a proposito della funzione MEDIA che da un risultato pi
corretto di quello che otterreste sommando le celle e dividendo il risultato per il numero di celle. Chi
non conosce luso delle funzioni calcola le medie sommando le celle e quindi dividendo il risultato
per il numero di celle. In questo modo, pero, si possono ottenere risultati errati, perch vengono
considerate con valore zero anche le celle che non contengono nessun valore. La funzione MEDIA,
invece, somma le celle dell'intervallo selezionato e divide la somma per il numero di valori; in
questo modo, le celle vuote sono escluse dal calcolo.
6.7.1 Scrivere una formula con la funzione MEDIA
1. Fate clic sulla cella in cui desiderate inserire la formula.
2. Digitate =MEDIA(.
3. Nel foglio di lavoro, selezionate con il trascinamento lintervallo di celle di cui desiderate
calcolare la media (oppure digitate il nome o l'etichetta dell'intervallo).
4. Digitate ).
55

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

5. Premete Invio.
6.8

CERCA.VERT E CERCA.ORIZZ

A volte ci si trova nella situazione di dovere cercare un valore in un'altra tabella. Per esempio, in una
fattura potete fare in modo che Excel cerchi laliquota IVA della nazione in base all'indirizzo di
destinazione; se invece siete insegnanti e avete una tabella con i voti degli studenti, potete fare in
modo che Excel ricerchi i voti degli studenti corrispondenti alle medie dei voti degli esami.
Una funzione utile per cercare valori in un'altra tabella CERCA.VERT (o il suo equivalente
trasposto, CERCA.ORIZZ). Queste due funzioni sono molto simili: lunica differenza che una
opera verticalmente nella tabella (CERCA.VERT), mentre laltra orizzontalmente (CERCA.ORIZZ).
Di seguito viene descritto come si usa CERCA.VERT; dopo avere compreso questa funzione,
sarete in grado di usare anche CERCA.ORIZZ.
6.8.1 Scrivere una formula CERCA.VERT
1. Create una tabella di ricerca che contenga i valori che desiderate cercare (per esempio una
tabella di aliquote IVA di diversi stati o la tabella dei voti usata in questo esempio). La tabella
deve essere impostata in modo che i valori che state cercando (in questo esempio le medie
degli esami) siano nella colonna pi a sinistra e ordinarli in senso crescente. Pu contenere
pi colonne, purch i valori che vengono cercati siano sulla sinistra. Per maggiore comodit,
potete assegnare un nome alla tabella e fare riferimento a essa nelle formule usando questo
nome.
2. Fate clic sulla cella in cui desiderate inserire il risultato.
3. Fate clic sul pulsante Incolla funzione.
4. Nella categoria Tutte o Ricerca e riferimento, fate doppio clic sulla funzione CERCA.VERT.
Viene visualizzata la finestra di dialogo CERCA.VERT.
5. Fate clic sulla casella Valore e quindi sulla cella che contiene il valore che desiderate
cercare (in questo caso, la media degli esami).
6. Fate clic nella casella Matrice tabella e selezionate la tabella di ricerca con il trascinamento
(oppure inserite il nome dell'intervallo, se avete assegnato un nome alla tabella).
7. Nella casella Indice, digitate il numero della colonna della tabella di ricerca in cui Excel deve
trovare un valore corrispondente. Si pensi alle colonne della tabella come se fossero
numerate da sinistra a destra, iniziando da 1.
8. Nella casella Intervallo, decidete se desiderate trovare una corrispondenza approssimativa o
esatta. Per indicare una corrispondenza approssimativa, lasciate vuota la casella. Per
indicare una corrispondenza esatta, digitate falso. In questo caso, ogni voto che cercate ha
una corrispondenza approssimativa, ma probabilmente non una corrispondenza esatta. La
tabella di ricerca e ordinata in senso ascendente e la funzione CERCA.VERT ricerca
dall'alto in basso nella colonna la corrispondenza pi simile inferiore al valore del voto
ricercato.
9. Scegliete OK.
La funzione CERCA.VERT cerca il punteggio nella tabella di ricerca, trova la corrispondenza
approssimativa e restituisce il voto contenuto nella seconda colonna.
Per copiare la formula a lato dell'intera tabella, posizionate il puntatore del mouse sul quadratino di
riempimento e fate doppio clic. Questo metodo funziona se la colonna adiacente alla tabella. La
formula viene copiata per tutta la lunghezza della tabella.
Se state usando un riferimento d'intervallo al posto di un nome d'intervallo, assicuratevi di cambiare
in assoluti i tipi di riferimento; diversamente, l'intervallo della tabella di ricerca viene modificato in
56

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

modo errato in ogni copia della formula. Per modificare il tipo di riferimento, aprite la formula, fate
clic sul riferimento, premete F4 fino a quando non trovate il tipo desiderata, quindi premete Invio per
completare la formula.
6.9 ADESSO E OGGI
La funzione ADESSO restituisce la data e l'ora attuali, mentre la funzione OGGI restituisce la data
attuale. Pu essere utile inserire queste funzioni in un angolo del foglio di lavoro, cos da potere
sempre dire quanto siano attuali le informazioni in una pagina stampata.
ADESSO e OGGI non hanno argomenti; per scriverle, digitate =adesso() o =oggi() e premete Invio
(assicuratevi di includere le parentesi e di non digitare niente fra di esse). II valore risultante, in
realt, un numero seriale che rappresenta il numero di giorni trascorsi dal 1 gennaio 1900 e che
viene visualizzato come data o come ora perch la cella ha un formato di data o di ora.
Se desiderate visualizzare il numero seriale di una data, inserite la data e formattate la cella come
Generale. I numeri seriali delle date iniziano con il numero 1 al 1 gennaio 1900: il numero seriale
100.000 corrisponde alla data 14 ottobre 2173. L'ora determinata dalle cifre a destra della virgola.
Per esempio, il numero 0,5 corrisponde alle ore 12.00.00.
Come stato detto, immettere un nome di funzione in lettere minuscole un buon modo per
scoprire gli errori di digitazione. Se il nome della funzione scritto correttamente, Excel lo converte
in maiuscolo quando completate la formula.
6.10 SINISTRA E DESTRA
Le funzioni di testo come SINISTRA e DESTRA sembrano piuttosto inutili fino a quando non capita
di doverle usare nella vita reale; in questi casi, sono sorprendentemente utili.
Si supponga che la bibliotecaria di una scuola voglia usare Excel per mantenere un elenco dei libri
della biblioteca con il nome dell'autore, un riferimento, il numero ISBN e cosi via. Dopo avere
digitato un lungo elenco con i titoli dei libri e i nomi degli autori, la bibliotecaria si appresta a digitare i
riferimenti per ciascun titolo. Questo, tuttavia, composto dalle prime tre lettere del cognome
dell'autore, che sono gia state digitate. A questo punto la funzione SINISTRA evita di dovere digitare
nuovamente dati gia immessi.
6.10.1 Scrivere una formula usando la funzione SINISTRA
1. Fate clic sulla cella in cui desiderate inserire il risultato della funzione (in questo caso il
riferimento).
2. Digitate =sinistra(.
3. Fate clic sulla cella che contiene il valore da cui desiderate estrarre i caratteri (in questo
caso, la cella NomeAutore a fianco della formula).
4. Digitate una virgola (,) e quindi il numero di caratteri che desiderate estrarre (in questo caso,
3, per indicare i tre caratteri pi a sinistra).
5. Digitate ) e premete Invio. La formula e completa ed estrae i tre caratteri pi a sinistra nella
cella NomeAutore.
6. Usate il riempimento per copiare la formula per tutta la lunghezza dell'elenco.
In questo modo si risparmiano molto tempo e lavoro.
Per combinare le lettere estratte nella colonna del riferimento con i numeri della colonna ISBN,
usate la funzione di testo con una funzione CONCATENA (descritta nel prossimo paragrafo).
Le funzioni SINISTRA e DESTRA sono utili anche per creare un sistema di numerazione di fatture.
57

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 base

Per creare questo sistema di numerazione univoca per le fatture sono stati combinati il numero
seriale della data contenuto nella cella Data con le funzioni SINISTRA e DESTRA.
6.10.2 Creare un sistema di numerazione di fatture univoco
1. Create una cella Data e una cella Nome cliente.
2. Fate clic sulla cella in cui desiderate visualizzare il risultato della formula (in questo caso la
cella con l'etichetta Fattura no.).
3. Inserite la seguente formula: =SINISTRA(A3,3)&"-"&DESTRA(H5,4)
Questa formula estrae i tre caratteri pi a sinistra dalla cella Nome cliente (A3), unisce, o
concatena, un carattere trattino ed estrae i quattro caratteri pi a destra dal numero seriale della
cella Data (H4). Nel prossimo paragrafo si discute in maggior dettaglio della concatenazione.
Questa formula restituisce un numero univoco per ogni fattura. Se salvate le fatture usando il
numero di fattura come nome di file, quando scorrete l'elenco dei nomi di file in una finestra di
Risorse del computer potete dedurre quanto sono recenti i file.
6.11 CONCATENA (&)
La funzione CONCATENA unisce i valori visualizzati in due o pi celle. Pu anche unire una stringa
di testo al valore visualizzato in una cella. Per congiungere le colonne del nome e del cognome in
una singola colonna di nominativi, si pu eseguire quest'operazione in modo lento e inefficiente,
copiando e incollando faticosamente ogni nome. oppure si pu scrivere una sola formula di
concatenamento e copiarla con il riempimento per tutta la lunghezza della colonna Nome
Completo.

58

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Dipartimento del Tesoro

EXCEL 2000
Professionale

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


SOMMARIO
1. LE TABELLE PIVOT: TECNICHE DI BASE .........................................................................3
1.1 USO DELLE TABELLE PIVOT ..........................................................................................3
1.2 LE TABELLE PIVOT .....................................................................................................5
1.3 CREAZIONE DI UNA TABELLA PIVOT ...............................................................................5
1.4 MODIFICA DELLE TABELLE PIVOT ................................................................................ 10
1.5 AGGIORNAMENTO DELLE TABELLE PIVOT ...................................................................... 10
1.6
SCELTA DELL'ORIGINE DEI DATI................................................................................... 11
1.7 USO DI UN ELENCO O DATABASE DI UN'ALTRA CARTELLA DI LAVORO ................................. 11
1.8 FILTRO DEI DATI ATTRAVERSO I CAMPI PAGINA ............................................................. 12
1.9 CONSOLIDAMENTO DEI DATI ATTRAVERSO UNA TABELLA PIVOT ........................................ 13
1.10 USO DI PI CAMPI DATI ............................................................................................. 16
1.11 CREAZIONE DI UN GRAFICO DA UNA TABELLA PIVOT ........................................................ 17
1.12 SALVATAGGIO DEI FILE CONTENENTI TABELLE PIVOT ...................................................... 18
2.
LE TABELLE PIVOT: TECNICHE AVANZATE............................................................... 19
2.1 AGGIUNTA E RIMOZIONE DEI DATI................................................................................. 19
2.2 RIORGANIZZAZIONE DI UNA TABELLA PIVOT .................................................................. 21
2.3 USO DI ALTRE FUNZIONI PER L'ANALISI DEI DATI ............................................................. 31
2.4 FORMATTAZIONE DELLE TABELLE PIVOT ...................................................................... 35
3. FILTRAGGI SUI DATI .................................................................................................. 37
3.1 CHE COS UN DATABASE .......................................................................................... 37
4. IL RISOLUTORE.......................................................................................................... 45
4.1 QUALE STRUMENTO USARE ........................................................................................ 45
4.2 USO DELLA FUNZIONE RISOLUTORE ............................................................................. 45
5. PROTEGGERE LE CARTELLE E I FOGLI DI LAVORO................................................... 57
5.1 PROTEGGERE UNA CARTELLA DI LAVORO ..................................................................... 57
6. PERSONALIZZAZIONE DEI GRAFICI ............................................................................ 59
6.1 MODIFICARE I COLORI E LE LINEE E I CARATTERI DI UN GRAFICO......................................... 59
6.2 ELIMINARE UN ELEMENTO DI UN GRAFICO ...................................................................... 60
6.3 MODIFICARE LA SCALA DEGLI ASSI ............................................................................. 60
6.4 MODIFICARE L'ORDINE DELLE SERIE.............................................................................. 60
6.5
MODIFICARE LA PROSPETTIVA DI UN GRAFICO 3D........................................................ 61

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Le tabelle pivot: tecniche di base

Le tabelle pivot permettono di analizzare i dati contenuti in elenchi e tabelle ed offrono strumenti di
analisi flessibili ed intuitivi.
Le tabelle pivot non si limitano semplicemente a raggruppare e riassumere i dati, ma aggiungono
un'ulteriore dimensione di profondit all'analisi. Per creare le tabelle pivot, occorre indicare quali
campi dell'elenco devono essere disposti in righe e colonne. Inoltre, possibile definire un campo
pagina, che organizzi gli elementi per pagine. La tabella pivot permette di variare la posizione dei
campi in una frazione di secondo, per vedere le informazioni in un'altra prospettiva.
Questo capitolo tratta i seguenti argomenti.

Uso della procedura guidata Autocomposizione Tabella pivot

Filtro dei dati di una tabella pivot attraverso i campi pagina

Creazione di un grafico da una tabella pivot

1.1

USO DELLE TABELLE PIVOT

Molti elenchi di Excel assumono un aspetto simile alla figura 1: le informazioni sono organizzate in
righe e colonne ed ogni colonna contiene un determinato tipo di dati.

Figura 1 - Un elenco pu contenere grandi quantit di dati, difficili da analizzare.

L'elenco in figura 1, ad esempio, contiene informazioni sulle vendite giornaliere di diversi tipi di
prodotti. I prodotti sono organizzati per linea.
Il database contiene informazioni molto numerose ed difficile costruire visualizzazioni cosi ampie
da mostrare tutte le informazioni nel modo opportuno. In questo caso, vengono in aiuto le tabelle
pivot. In figura 2, ad esempio, compare una tabella pivot che indica le vendite di ciascuna linea in
ognuna delle quattro regioni. La procedura guidata Autocomposizione Tabella pivot aiuta l'utente a
costruire questo rapporto complesso. Le tabelle pivot sono strumenti analitici e di reporting, utili per
diversi propositi, tra cui i seguenti.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Creazione di tabelle riassuntive. In figura 2, ad esempio, compare una tabella pivot che riporta i
totali per linea di prodotto e per regione.

Figura 2 - Una tabella pivot consente di analizzare i dati da qualsiasi prospettiva

Riorganizzazione dei dati tramite trascinamento.

Figura 3 - Una tabella pivot riassume le vendite per il primo marzo 1997.

Rappresentazione grafica. Si pu, per esempio, creare un grafico che rappresenti i valori della
tabella pivot sopra. Il grafico varia dinamicamente con la manipolazione della tabella.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.2

LE TABELLE PIVOT

Una tabella pivot uno strumento di organizzazione dei dati, la cui struttura viene determinata
dall'utente con la scelta di quali campi ed elementi dovranno apparire nella tabella. Un campo una
categoria generica e un elemento un valore, unico o ripetuto, all'interno della categoria.
L'origine dei dati pu essere costituita da un elenco o tabella di un foglio di lavoro di Excel o di altro
programma. Per creare una tabella pivot, possibile utilizzare dati provenienti da vari tipi di origini.
In questo capitolo, il termine elenco viene usato per indicare un elenco contenuto in un foglio di
lavoro di Excel; termini come dati tabulari e tabella a pi colonne si riferiscono generalmente ai dati
in formato tabella, sia in un foglio di lavoro di Excel, sia in un file creato con altro programma; i dati
esterni sono informazioni create in un programma diverso da Excel. Quando si crea una tabella
pivot, occorre specificare i campi PAGINA, RIGA e COLONNA. Osservare la figura 4. In un normale
foglio di lavoro, possibile vedere le righe e le colonne solo in una tabella bidimensionale. In una
tabella pivot, possibile vedere un solo campo pagina alla volta, ma come se le pagine fossero
"materialmente" sovrapposte, come si vede nell'illustrazione.
Sebbene i dati visualizzati nelle tabelle pivot assumano l'aspetto delle normali informazioni del foglio
di lavoro, non possibile immetterli o modificarli direttamente. La tabella pivot collegata all'origine
dei dati e ci che si vede nelle celle della tabella un'informazione per sola lettura; possibile
variare la formattazione e le opzioni di calcolo.
1.3

CREAZIONE DI UNA TABELLA PIVOT

La procedura guidata Autocomposizione Tabella pivot assiste l'utente attraverso tutte le fasi
necessarie per la creazione delle tabelle pivot, ma comunque l'utente a decidere la modalit in cui
organizzare le informazioni. Si considerino i dati in figura 4. La cartella di lavoro contiene
informazioni sui prodotti di una societ; ogni record (riga) della tabella contiene informazioni per i
seguenti campi.

Figura 4 - Un esempio di database che pu essere analizzato attraverso una tabella pivot

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Campo

Descrizione

Linea

Le principali categorie di prodotti.

Prodotto

I singoli prodotti delle linee.

Regione

La societ divisa in quattro regioni Est, Ovest, Sud e Nord.

Data

Le informazioni di Vendita Vengono registrate il primo di ogni mese.

Unit

Il numero dei prodotti venduti.

Vendite

Il fatturato dei prodotti venduti.

Lo scopo principale della registrazione di queste informazioni determinare le vendite di ogni


prodotto per regione. I dati tuttavia presentano altri usi. Utilizzando le informazioni, un manager
potrebbe definire le tendenze delle vendite in base al periodo dell'anno (data). Fra breve, si vedr
come le tabelle pivot di Excel sono adeguate per fornire la variet di prospettive utili per le diverse
pratiche aziendali.
Questo semplice esempio iniziale non contempla tutte le opzioni disponibili. I dettagli sulle tabelle
pivot che non sono spiegati in questo esempio verranno descritti in ulteriori esempi.
Per creare una nuova tabella pivot attraverso la procedura guidata Autocomposizione Tabella pivot,
procedere come segue.
1. Scegliere Dati, Report tabella pivot. Si apre la finestra di dialogo per il passaggio 1 della
procedura guidata Autocomposizione Tabella pivot (figura 5).

Figura 5 - La prima finestra di dialogo della procedura guidata richiede di specificare l'origine dei dati da
rappresentare nella tabella pivot.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Da questo punto, fino a quando apparir la tabella pivot sul foglio, si lavora dalla procedura
guidata Autocomposizione Tabella pivot. I pulsanti in fondo alla finestra di dialogo permettono di
spostarsi nella procedura guidata.

Pulsante

Effetto

Annulla

Annulla la procedura guidata e ritorna al foglio di lavoro.

Indietro

Passa alla finestra di dialogo precedente.

Avanti

Passa ala finestra di dialogo successiva.

Fine

Usa le opzioni correnti e passa allultima finestra di dialogo della


procedura guidata.

1. Specificare l'origine dei dati, scegliendo uno dei pulsanti d'opzione.

Opzione

Tipo di dati

Elenco o database
Microsoft Excel

Elenco o intervallo con etichette di colonna in un foglio di lavoro


di Excel.

Origine dati esterna File o tabella creati in altri programmi, quali Paradox, dBase,
Access o SQL Server.
Intervalli di
consolidamento
multipli

Intervalli multipli con etichette di righe e colonne in fogli di lavoro


in Excel.

Altra tabella pivot

Una tabella pivot esistente nella cartella di lavoro attiva.

Scegliere Elenco o database Microsoft Excel (se non selezionata questa opzione). Cliccare
su Avanti per visualizzare la seconda finestra di dialogo della procedura guidata (figura 6).

Figura 6 - Il secondo passaggio della procedura 1 guidata, da cui selezionare l'intervallo

2. possibile immettere o selezionare l'intervallo contenente i dati nella casella Intervallo


della seconda finestra di dialogo. Se la cella attiva compresa nell'intervallo denominato
Database, l'autocomposizione seleziona automaticamente questo intervallo. Cliccare su
Avanti. Se la fonte dei dati si trova in un'altra cartella di lavoro, possibile usare il
pulsante Sfoglia per localizzare la cartella di lavoro. Vedere, pi avanti in questo capitolo,
7

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


la sezione dedicata all'uso di un elenco o database di un'altra cartella di lavoro. Si apre la
terza finestra di dialogo della procedura guidata, nella quale presente il pulsante Layout
che apre la finestra di figura 7.

Figura 7 - La finestra di dialogo Layout della procedura guidata Autocomposizione Tabella pivot, in cui
possibile determinare la disposizione della tabella, trascinando i pulsanti nelle aree RIGA, COLONNA, PAGINA
e DATI

Se compare il messaggio d'errore Il nome del campo della tabella pivot non valido, controllare che
l'intervallo specificato non includa una cella vuota sulla prima riga (la riga contenente i nomi dei
campi).
questo il momento in cui impiegare i concetti appresi all'inizio del capitolo su campi riga, colonna
e pagina. Le scelte effettuate qui controllano la visualizzazione dei dati e la loro posizione nella
tabella. Tuttavia, non occorre preoccuparsi eccessivamente di queste scelte, poich il grande
vantaggio delle tabelle pivot che, qualunque scelta venga effettuata in questa fase, pu essere
modificata dopo avere visualizzato la tabella pivot sullo schermo.
Per definire la disposizione e creare la tabella pivot, dalla finestra di dialogo layout della procedura
guidata Autocomposizione Tabella pivot, procedere come segue.
1. Determinare quali campi contengono i dati da riassumere e quindi trascinare i pulsanti
corrispondenti nell'area DATI. Spesso non vi sono molte scelte in questo passaggio.
Nell'esempio proposto, l'obiettivo riepilogare le vendite, quindi il campo dati deve essere
Vendite e non esiste alcuna alternativa.
2. Determinare la disposizione dei dati.

Per disporre in colonne gli elementi di un campo, con le etichette nella parte superiore,
trascinare il pulsante di quel campo nell'area COLONNA. Nell'esempio proposto (figura
8), si desidera organizzare le vendite per regione, quindi occorre trascinare il pulsante
Regione nell'area COLONNA.

Per disporre gli elementi di un campo in righe, con le etichette su un lato della tabella,
occorre trascinare il pulsante di quel campo nell'area RIGA. Poich nell'esempio
proposto (figura 8) si desidera usare i nomi delle linee di prodotto come intestazioni delle
righe, occorre trascinare il pulsante Linea nell'area RIGA.

L'uso dell'area PAGINA descritto pi avanti.


8

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

In figura 8 visibile la disposizione della tabella pivot, la quale permette di creare un


riassunto delle informazioni per linee di prodotti e regioni.

Figura 8 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile determinare la disposizione della tabella

3. Cliccare sul pulsante Avanti.


4. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot
(figura 9), indicare la posizione in cui inserire la tabella pivot. La tabella pu essere posta in
qualsiasi foglio di lavoro, di qualunque cartella (facendo attenzione a non sovrascrivere
informazioni esistenti). Se si sceglie di inserire la tabella in un foglio esistente, indicare la
posizione. Cliccando sul pulsante Opzioni, possibile scegliere di includere i totali e i
subtotali, generalmente consigliati. Se si decide di deselezionare le opzioni relative ai totali,
possibile rieseguire in seguito la procedura guidata Autocomposizione Tabella pivot, allo
scopo di selezionare queste opzioni.

Figura 9 - La finestra di dialogo 3 della procedura guidata Autocomposizione Tabella pivot, da cui indicare ad
Excel dove disporre la tabella pivot e facoltativamente variare alcune opzioni globali

Inoltre, possibile salvare i dati con la tabella pivot, inserendone una copia sullo stesso
foglio della tabella. Cos facendo, si ottiene il vantaggio di non dover aprire l'origine dei dati
per modificare la tabella pivot, tuttavia il file contenente la tabella pu diventare molto grande
9

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


e inoltre, creando una nuova tabella da quella esistente, i dati non vengono pi salvati con la
tabella di origine.
5. Cliccare sul pulsante Fine per completare la tabella pivot.
6. Per formattare la tabella pivot, scegliere Formato, Formattazione automatica e selezionare
un formato predefinito. Cliccare su OK per applicare il formato.
Inserendo le tabelle pivot in un foglio d lavoro separato, diventano pi facili da trovare ed meno
probabile che sovrascrivano altre parti dei foglio.
Creata una tabella pivot, compare nel documento la barra degli strumenti Tabella pivot, come in
figura (la barra non compare se stata precedentemente visualizzata e rimossa). La barra degli
strumenti Tabella pivot descritta pi avanti nel presente capitolo e nel capitolo successivo.
1.4

M ODIFICA DELLE TABELLE PIVOT

Le tabelle pivot sono strumenti che permettono la sola visualizzazione delle informazioni e non
consentono alcuna modifica di esse. Excel prevede varie opzioni per controllare le funzioni di
riepilogo e la formattazione delle tabelle pivot.
possibile modificare i nomi dei campi di una tabella pivot, sovrascrivendoli.
possibile variare i nomi dei campi e degli elementi di una tabella pivot, selezionando il campo o
elemento e digitando il nuovo nome. Excel non permette di duplicare i nomi e, se involontariamente
si immette un nome di campo o elemento esistente, il programma ridispone la tabella pivot
spostando l'elemento con quel nome nella posizione in cui si digitato il nome.
Modificando i nomi dei campi o degli elementi in una tabella pivot, essi non variano nell'elenco o
database che ne costituisce la fonte.
1.5

AGGIORNAMENTO DELLE TABELLE PIVOT

La visualizzazione di una tabella pivot non varia quando si modificano le informazioni nell'elenco o
tabella che ne costituisce l'origine. Per aggiornare o rinnovare una tabella pivot, selezionare
qualsiasi cella all'interno della tabella e cliccare sul pulsante Aggiorna dati, sulla barra degli
strumenti Tabella pivot, dopo avere effettuato i seguenti tipi di modifiche nell'origine dei dati.
Modifica dei dati in un campo Aggiunta o modifica di elementi Inserimento o eliminazione di campi o
elementi
Se si aggiungono nuovi campi all'elenco che costituisce l'origine della tabella pivot, essi non
vengono visualizzati nella tabella, a meno che non si ricorra alla finestra di dialogo layout della
procedura guidata Autocomposizione Tabella pivot.
Aggiornando una tabella pivot dopo avere aggiunto nuovi campi all'elenco di origine, possibile
espandere la dimensione della tabella. Come regola di lavoro generale, lasciare sempre molto
spazio sotto e a destra di una tabella pivot, affinch non vengano sovrascritte le informazioni
esistenti nel foglio di lavoro. Per evitare qualunque problema, inserire la tabella pivot in un altro
foglio.
Excel non permette di inserire ulteriori righe in un elenco che costituisce l'origine di una tabella pivot
se le righe intersecano la tabella, poich il programma protegge l'integrit delle tabelle pivot.
possibile inserire un intervallo in un elenco che costituisce l'origine di una tabella pivot, se l'intervallo
non interseca la tabella.
Quando si modificano i nomi dei campi o degli elementi attraverso l'immissione diretta in una
tabella pivot, le modifiche rimangono operative anche in seguito all'aggiornamento della tabella.

10

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


In alcuni casi, necessario preservare una tabella pivot nella forma attuale, sebbene i dati che ne
costituiscono l'origine dovessero variare. Per ottenere questo effetto, copiare la tabella ed incollarla
in un'altra posizione con il comando Modifica, Incolla speciale, selezionando l'opzione Valori.
Aggiornando una tabella pivot, si rimuove dalle celle della tabella qualsiasi formattazione estranea a
quella applicata con il comando Formato, Formattazione automatica. Per ulteriori informazioni,
consultare la sezione sulla formattazione delle tabelle pivot, al capitolo successivo.
1.6

SCELTA DELL'ORIGINE DEI DATI

Gli esempi proposti fino ad ora usano una sola delle opzioni disponibili dalla finestra 1 della
procedura Autocomposizione Tabella pivot. In realt, come origine per le tabelle pivot, oltre agli
elenchi e tabelle dei fogli di lavoro di Excel, e possibile usare sia le informazioni create con altri
programmi, sia elenchi multipli contenuti in uno o pi fogli di Excel.
1.6.1

Uso di un elenco o database della stessa cartella di lavoro

Per creare una tabella pivot da un elenco contenuto nella cartella di lavoro attiva di Excel, scegliere
l'opzione Elenco o database Microsoft Excel, dalla finestra di dialogo 1 della procedura
Autocomposizione Tabella pivot. L'elenco che costituisce l'origine della tabella pivot deve
comprendere le etichette delle colonne. Includere quindi la riga delle etichette, nell'intervallo indicato
dalla finestra 2 della procedura Autocomposizione Tabella pivot. Excel usa come nomi dei campi il
contenuto della prima riga dell'intervallo specificato.
1.7

USO DI UN ELENCO O DATABASE DI UN'ALTRA CARTELLA DI LAVORO

Per creare una tabella pivot da un elenco contenuto in un'altra cartella di lavoro, procedere come
segue.
1. Cliccare sul pulsante Sfoglia, dalla finestra di dialogo 2 della procedura guidata
Autocomposizione Tabella pivot. Si apre la finestra di dialogo Sfoglia.
2. Selezionare il file contenente l'elenco da usare e cliccare su OK per ritornare alla procedura
guidata Autocomposizione Tabella pivot. Si apre la finestra di dialogo 2, con il nome del file
nella casella Intervallo.
3. Immettere il nome o l'indirizzo dell'intervallo in cui contenuto l'elenco che costituisce
l'origine della tabella.
4. Cliccare sul pulsante Avanti, per completare le fasi rimanenti della procedura guidata
Autocomposizione Tabella pivot.
1.7.1

Uso dei database esterni

Per usare una fonte di dati esterna, scegliere l'opzione Origine dati esterna, dalla finestra di dialogo
1 della procedura guidata, quindi cliccare sul pulsante Avanti. Si apre la finestra di dialogo di figura
10.

11

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Figura 10 - La finestra di dialogo 2 della procedura guidata Autocomposizione Tabella pivot, visualizzata
scegliendo l'opzione Origine dati esterna dalla finestra 1

Per poter caricare dati da una fonte esterna, necessario disporre di Microsoft Query,
un'applicazione indipendente allegata ad Excel, da installare insieme al programma.
Scegliere il pulsante Estrai dati, per avviare Microsoft Query e visualizzare una finestra di dialogo.
Da Microsoft Query, scegliere i dati da importare in Excel. Dopo avere definito la query, scegliere il
comando Restituisci dati a Microsoft Excel, dal menu File di Microsoft Query. Si ritorna alla finestra
di dialogo 2 della procedura guidata Autocomposizione Tabella pivot. Aggiornando una tabella pivot
collegata ad una fonte di dati esterna, Excel applica nuovamente la query all'origine dei dati.
1.7.2

Conversione delle tabelle a campi incrociati della versione 4

Se si dispone di tabelle a campi incrociati create in Excel 4, possibile convertirle in tabelle pivot.
Procedere come segue.
1. Aprire il foglio di lavoro contenente la tabella a campi incrociati (creato con la versione 4).
2. Scegliere il comando Dati, Report tabella pivot. Si apre la finestra di dialogo layout della
procedura guidata Autocomposizione Tabella pivot.
3. Completare nel modo normale le fasi rimanenti della procedura Autocomposizione Tabella
pivot.
La conversione di una tabella a campi incrociati un'operazione irreversibile. Utilizzare una copia
per convertire una tabella, quando si prevede di usare di nuovo la tabella a campi incrociati nella
versione 4 di Excel.
1.8

FILTRO DEI DATI ATTRAVERSO I CAMPI PAGINA

Poich umanamente impossibile leggere testo e numeri in tre dimensioni, tutti i campi che si
desidera vedere in una tabella pivot devono essere assegnati alle posizioni di riga o colonna (fase 3
della procedura guidata Autocomposizione Tabella pivot). possibile aggiungere una terza
dimensione, per un'analisi dei dati pi flessibile, impostando un campo pagina. Creando un campo
pagina si definisce un filtro che seleziona gli elementi da visualizzare
Per poter visualizzare selettivamente i singoli prodotti, occorre creare un campo pagina. Per creare
un campo pagina in fase di creazione di una tabella pivot, procedere come segue.
1. Avviare la procedura guidata Autocomposizione Tabella pivot e completare le fasi 1 e 2.
2. Dalla finestra di dialogo layout della procedura Autocomposizione Tabella pivot, trascinare il
campo da filtrare sull'area PAGINA. Si pu trattare di un campo che non era visualizzato
precedentemente, oppure era visualizzato nella posizione di riga o colonna.
3. Cliccare su OK e continuare con le fasi rimanenti della procedura guidata.
Dopo avere aggiunto un campo pagina, la tabella pivot si presenta come in figura 11. La tabella
mostra i dati del solo prodotto Beta, scelto dalla casella del campo pagina Prodotto.
Il nome del campo pagina compare sopra la tabella pivot. Accanto compare un pulsante con una
freccia rivolta in basso. Cliccando su questo pulsante, si apre la relativa casella di riepilogo, la quale
contiene tutti gli elementi del campo pagina registrati nella tabella e l'opzione per i totali.
Selezionando l'elemento da visualizzare, la tabella pivot mostra la pagina di quell'elemento (in
questo caso, il prodotto Beta).

12

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 11 - La stessa tabella pivot dopo avere aggiunto il campo pagina Prodotto Beta dall'elenco

1.9

CONSOLIDAMENTO DEI DATI ATTRAVERSO UNA TABELLA PIVOT

In molti casi, i dati da riassumere in una tabella pivot sono sparsi in vari intervalli, a volte su fogli di
lavoro diversi. Se gli intervalli hanno struttura simile ed etichette di righe e colonne comuni,
possibile raggrupparli per l'analisi in un'unica tabella pivot. In figura 13 compare una cartella di
lavoro contenente le informazioni sulle vendite di una societ suddivise per regione. I valori relativi
alle regioni sono contenuti in fogli separati, denominati secondo le regioni di riferimento.

Figura 12 - Una cartella di lavoro le cui informazioni possono essere consolidate in una tabella pivot

I dati da consolidare non devono necessariamente risiedere in fogli separati; possibile consolidare
i dati contenuti in intervalli separati su un unico foglio, in fogli separati o in entrambi. Una tabella
pivot permette di consolidare i dati contenuti in vari intervalli, come il comando Dati, Consolida, con
il vantaggio che la tabella pivot pu essere manipolata per visualizzare i risultati del consolidamento
secondo varie prospettive. Per creare una tabella pivot da pi intervalli dello stesso foglio di lavoro,
avviare la procedura guidata Autocomposizione Tabella pivot e selezionare l'opzione Intervalli di
consolidamento multipli. Si apre la finestra di dialogo di figura 13; possibile fare in modo che Excel
crei un unico campo pagina, oppure creare manualmente i campi pagina desiderati.

13

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 13 - L'opzione Creazione automatica di un campo pagina assegna automaticamente gli intervalli ad un
campo pagina

Per creare una tabella pivot da pi intervalli del foglio di lavoro e fare in modo che Excel crei
automaticamente un campo pagina, procedere come segue.
1. Dalla finestra di dialogo 2a, selezionare Creazione automatica di un campo pagina e
cliccare sul pulsante Avanti.
2. Excel visualizza la finestra di dialogo 2b della procedura guidata Autocomposizione Tabella
pivot. Indicare gli intervalli da usare come origine per la tabella pivot, selezionando ogni
singolo intervallo e cliccando sul pulsante Aggiungi. Gli intervalli vengono aggiunti alla
casella di riepilogo Tutti gli intervalli. In figura 14 compare la finestra di dialogo in seguito
all'aggiunta di tutti gli intervalli visualizzati in figura 12. Cliccare sul pulsante Avanti.

Figura 14 - L'aggiunta degli intervalli di origine con la procedura guidata Autocomposizione Tabella pivot

Se gli intervalli da usare come origine contengono i totali, evitare di includere le righe o le
colonne dei totali nella selezione degli intervalli, poich la procedura Autocomposizione
Tabella pivot aggiunge automaticamente i totali come elementi della tabella pivot.
3.

Nella finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
cliccare sul pulsante Avanti per accettare le posizioni standard dei campi. Quando si
14

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


usano pi intervalli come origine, Excel non dispone delle informazioni necessarie per
determinare i nomi dei campi, quindi usa le descrizioni generiche ("Paginal", "Riga" e cos
via). possibile specificare in seguito i nomi dei campi.
4.

Completare la fase 4 della procedura guidata Autocomposizione Tabella pivot e cliccare


sul pulsante Fine per creare la tabella.

In figura 15 compare la tabella pivot creata con in dati esemplificativi. A questo punto, possibile
immettere i nomi dei campi nelle celle opportune. La tabella seguente elenca le modifiche che si
potrebbero apportare alla tabella pivot dell'esempio.

Figura 15 - La tabella pivot creata dagli intervalli multipli di figura 14

Nome di campo da sostituire

Cella

Nuovo nome di campo

Pagina 1

A1

Regione

Colonna

B3

Data

Riga

A4

Linea

Figura 16

Cliccare sulla freccia in cella B1. Anzich visualizzare i nomi delle regioni, Excel mostra i
segnaposti per essi: Elemento1, Elemento2 e cos via. Quando un campo pagina viene creato
automaticamente da Excel, si risparmia tempo inizialmente, ma in seguito occorre sostituire i
segnaposti con i nomi effettivi, in questo caso i nomi delle quattro regioni. Quando si prevede di
usare in modo esteso la tabella pivot, preferibile scegliere l'opzione Creazione manuale dei campi
pagina, dalla finestra 2a della procedura Autocomposizione Tabella pivot. Effettuando questa
selezione, la finestra 2b permette di assegnare i nomi desiderati ad ogni elemento del campo.
Per visualizzare i totali consolidati, scegliere l'opzione (Tutto) dall'elenco adiacente al pulsante del
campo pagina; compaiono i cinque prodotti, compreso Delta, il quale viene venduto unicamente
nella regione Nord. La procedura guidata Autocomposizione Tabella pivot usa lo stesso metodo di
consolidamento del comando Dati, Consolida, tuttavia legge le etichette di testo ed aggrega
correttamente i totali, secondo le etichette di testo e non secondo gli indirizzi di cella.
Per selezionare manualmente i campi pagina in fase di creazione di una tabella pivot, procedere
come segue.
15

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1. Dalla finestra di dialogo 2a, selezionare la casella Creazione manuale dei campi pagina.
2. Dalla finestra di dialogo 2b, immettere o selezionare gli intervalli da usare come origine ed
aggiungerli alla casella di riepilogo Tutti gli intervalli, come descritto nella procedura
precedente.
3. Selezionare il pulsante 1 sotto la casella Tutti gli intervalli, per indicare che si desidera un
nuovo campo pagina (per crearne due o pi, selezionare l'opzione appropriata; oppure
selezionare 0 se non si desidera creare alcun campo pagina).

Figura 17 - La finestra di dialogo 2b della procedura guidata Autocomposizione Tabella pivot, da cui possibile
specificare quanti campi pagina includere nella tabella ed immettere le etichette per i singoli elementi

4. Per ciascuno degli intervalli della casella di riepilogo Tutti gli intervalli, selezionare l'area e
quindi digitare un'etichetta per essa nella casella Campo uno. Immesse le etichette per gli
intervalli, cliccare sul pulsante Avanti.
5. Completare le fasi rimanenti della procedura Autocomposizione Tabella pivot.
Quando Excel crea la tabella pivot, le etichette per gli intervalli vengono incluse nella casella di
riepilogo a discesa adiacente al pulsante Pagina1.
1.10 USO DI PI CAMPI DATI
In tutti gli esempi presentati fino ad ora, l'etichetta del campo dati (sopra l'intestazione di riga e a
sinistra dell'intestazione di colonna) mostra il tipo di calcolo riassuntivo (ad esempio la somma) ed
il nome del campo dati (ad esempio Vendite). Questa etichetta indica che la tabella pivot contiene
un solo campo dati.
possibile includere pi campi dati dalla fase 3 della procedura guidata Autocomposizione Tabella
pivot, Ad esempio, nella tabella per l'analisi delle vendite, possibile visualizzare le vendite per ogni
prodotto insieme ai prodotti della linea. Quando una tabella pivot presenta pi campi dati, l'etichetta
relativa non compare. Al contrario, la tabella pivot mostra un pulsante Dati e le etichette per i singoli
campi dati.

16

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.10.1 Creazione di una tabella pivot da Un'altra
Quando i dettagli visualizzati sono numerosi, una tabella pivot pu diventare cos complessa, da
richiedere la creazione di una ulteriore tabella pivot basata sulla prima, per maggiore sintesi. Per
creare una tabella pivot usando come origine un'altra tabella pivot contenuta nella stessa cartella di
lavoro, procedere come segue.
1. Accertarsi che nessuna sezione della tabella sia selezionata (se selezionata una parte
della tabella, Excel presuppone che si voglia modificare la tabella).
2. Avviare la procedura guidata Autocomposizione Tabella pivot.
3. Selezionare l'opzione Altra tabella pivot e cliccare sul pulsante Avanti. La procedura
Autocomposizione Tabella pivot visualizza l'elenco delle tabelle pivot della cartella di lavoro
attiva.
4. Selezionare la tabella pivot da usare come origine e cliccare sul pulsante Avanti.
5. Completare le fasi rimanenti della procedura.
Excel crea la seconda tabella pivot nella posizione specificata. Le due tabelle vengono aggiornate
simultaneamente, ogniqualvolta si rinnova una delle due.
Per creare una tabella pivot usando come origine un'altra tabella contenuta in un'alta cartella di
lavoro, copiare la tabella pivot esistente nella cartella di lavoro attiva. I dati copiati, se soddisfano la
definizione di un elenco, possono essere usati come origine per una nuova tabella pivot. Si tenga
presente che la nuova tabella pivot perde qualsiasi collegamento con l'origine della vecchia tabella
pivot. Ne consegue che non possibile manipolare la nuova tabella pivot come se i dati che
costituiscono l'origine risiedessero nella stessa cartella di lavoro.
1.11 CREAZIONE DI UN GRAFICO DA UNA TABELLA PIVOT
Excel permette di rappresentare in un grafico il contenuto di una tabella pivot. Il grafico varia
dinamicamente al variare della disposizione della tabella. Quando si crea un grafico da una tabella
pivot, usare al massimo due campi riga e due campi colonna della tabella, al fine di evitare
confusione. Per creare un grafico da una tabella pivot, procedere come segue.
1. Selezionare la tabella pivot. Evitare di selezionare qualsiasi colonna contenente eventuali
totali; inoltre evitare di trascinare le etichette dei campi, o Excel dedurr che si desideri
spostare il campo.
2. Cliccare sul pulsante Autocomposizione Grafico, sulla barra degli strumenti Standard.
Seguire le istruzioni visualizzate sullo schermo dalla procedura guidata.
possibile variare il tipo di raggruppamento per gli indicatori delle serie dei grafico. Selezionare il
grafico, attivare la procedura guidata Autocomposizione Grafico e variare le impostazioni alla fase
2.
La procedura guidata Autocomposizione Grafico non visualizza sul diagramma creato gli elementi
dei campi pagina, tuttavia se si seleziona un elemento in un campo pagina, il grafico creato dalla
tabella pivot cambia dinamicamente, in modo da visualizzare i dati per l'elemento selezionato.
Se le dimensioni di una tabella pivot cambiano quando si passa da una pagina all'altra (data la
variazione nel numero di elementi), il grafico non viene aggiornato automaticamente con queste
Le modifiche. Per evitare questa situazione, rimuoverei totali di righe e colonne alla fase 4 della
procedura guidata Autocomposizione Tabella pivot e selezionare l'intera tabella pivot prima di
creare il grafico.

17

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.12 SALVATAGGIO DEI FILE CONTENENTI TABELLE PIVOT
A volte i file contenenti tabelle pivot sono molto grandi, poich Excel crea una copia dell'origine dei
dati e la memorizza (come informazioni nascoste) insieme al foglio di lavoro contenente la tabella.
Se la tabella pivot fa riferimento ad una quantit di dati rilevante contenuti in un altro file, le stesse
informazioni vengono memorizzate due volte, ogniqualvolta si salva il file contenente la tabella.
Per evitare questo, deselezionare la casella di controllo Salva i dati con il layout della tabella, della
fase 3 della procedura guidata (cliccando sul pulsante Opzioni); Excel salva la disposizione della
tabella pivot, ma omette la copia dei dati che costituiscono l'origine; quando si modifica o si rinnova
la tabella pivot, Excel la aggiorna direttamente dall'origine. Quando si usa come origine per una
tabella pivot un'altra tabella pivot salvata insieme ai dati, i dati non vengono pi salvati con la tabella
originale.
Se si lavora con una tabella pivot collegata ad un elenco esteso contenuto in un foglio di lavoro di
Excel, si consideri la possibilit di inserire la tabella pivot in una cartella di lavoro separata e
collegarla ad un foglio chiuso per risparmiare memoria.
Problemi e soluzioni
La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot visualizza
numeri e nomi di campi privi di senso. Non stata inclusa la riga contenente i nomi dei campi
quando si specificato l'intervallo di origine dalla finestra di dialogo 2. Cliccare sul pulsante Indietro
e ridefinire l'intervallo.
Excel visualizza il messaggio Il nome del campo della tabella pivot non valido. Nella definizione
dell'intervallo, stata inclusa una colonna con un nome di campo non valido. Accade quando si
seleziona inavvertitamente una colonna vuota nella definizione dell'intervallo in fase 2.
La tabella pivot visualizza il valore "1" in ogni cella. Molto probabilmente, la tabella pivot visualizza il
conteggio degli elementi anzich la somma, la media o altre funzioni di sintesi' desiderate.
La tabella pivot vuota o quasi. Accade quando la tabella pivot contiene almeno un campo pagina,
per cui il valore del primo elemento del campo nullo o zero. Per verificare, selezionare (Tutto)
nell'elenco dei campi pagina ed osservare se la tabella pivot visualizzi pi valori.

18

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Le tabelle pivot: tecniche avanzate

L'analisi di un gruppo di informazioni spesso si effettua suddividendo il gruppo in sottogruppi


significativi e riassemblandolo secondo particolari criteri, utili allo scopo di mettere in luce
determinati aspetti dei dati. Le tabelle pivot consentono questo tipo di analisi, a qualsiasi livello di
complessit. Questo capitolo tratta i seguenti argomenti.

Aggiunta di funzioni di riepilogo e subtotali alle tabelle pivot

Visualizzazione di dettagli molto specifici in una tabella pivot

Visualizzazione di vari calcoli di riepilogo in una tabella pivot

2.1

AGGIUNTA E RIMOZIONE DEI DATI

Per effettuare qualsiasi analisi attraverso le tabelle pivot, occorre capire quale sia il rapporto tra i
campi e le posizioni di riga, colonna e pagina. Un campo non per natura un campo riga, colonna o
pagina; il campo Progetto un campo pagina solo perch stato definito tale con la procedura
guidata Autocomposizione Tabella pivot o perch stato posizionato in quel punto una volta creata
la tabella pivot. Come descritto nella sezione dedicata alla riorganizzazione delle tabelle,
trascinando un campo in una posizione diversa varia la disposizione della tabella pivot.
I valori nelle tabelle pivot possono essere liberamente formattati. Ad esempio, possibile non
visualizzare i decimali.
2.1.1

Aggiunta di nuove righe, Colonne o pagine

Per aggiungere ad una tabella pivot un campo riga, colonna o pagina, procedere come
segue.
1. Selezionare una cella della tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
trascinare il pulsante del campo desiderato sull'area opportuna (RIGA, COLONNA o
PAGINA), come si vede in figura 18.
4. Cliccare sul pulsante Fine.

19

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

figura 18 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile definire i campi, trascinando i pulsanti nelle aree opportune

Un modo pi veloce per aggiungere un campo riga o colonna, fare doppio clic su un elemento in
un campo riga o colonna di una tabella pivot. Se la tabella gi contiene pi campi in quella posizione
(riga o colonna), fare doppio clic sul campo pi interno.
2.1.2

Rimozione di righe, colonne o pagine

Per rimuovere un campo riga, colonna o pagina, trascinarlo all'esterno dell'area della tabella pivot.
Mentre si trascina il campo, compare una grossa X su esso e, quando si rilascia il pulsante del
mouse, il campo scompare dalla tabella. In alternativa, possibile cliccare sul pulsante del campo,
quindi cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot, e
scegliere Elimina.
2.1.3

Aggiunta di dati da analizzare

In alcuni casi, necessario visionare diversi tipi di informazioni insieme, ad esempio il volume delle
vendite e il fatturato, la pressione sanguigna ed il colesterolo o altro. In figura 19 compare una
tabella pivot con due campi dati. Per aggiungere un altro campo ad una tabella pivot, procedere
come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
trascinare il pulsante del campo desiderato sull'area DATI.
4. Cliccare sul pulsante Fine.

20

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 19 - Una tabella pivot con due campi dati

2.2

RIORGANIZZAZIONE DI UNA TABELLA PIVOT

Altro modo per sezionare i dati di una tabella pivot variare l'organizzazione della tabella,
trascinando le etichette dei campi in posizioni diverse. Attraverso la riorganizzazione delle tabelle
pivot, possibile esaminare i dati secondo diverse prospettive.
2.2.1

Inversione dell'orientamento

Si supponga che un manager di progetto di una ditta di consulenza debba riunire uno staff di
persone opportunamente qualificate per lavorare ad un determinato progetto. Si consideri la tabella
pivot di figura 20. In questa forma, la tabella non fornisce le informazioni necessarie, poich
visualizza principalmente le ore impiegate dal personale per portare a termine determinati progetti,
necessario visualizzare la tabella in una prospettiva per staff e codici di lavoro.

Figura 20 - Una tabella pivot indicante le ore lavorate per staff e progetto

Per spostare un campo di una tabella pivot, trascinare il campo riga, colonna o pagina nella
posizione desiderata. Compare un indicatore di inserimento. La forma dell'indicatore dipende dalla
posizione. In figura 21 si vede un campo pagina che verr spostato in una posizione di colonna.
Quando compare l'indicatore di inserimento, rilasciare il pulsante del mouse.

21

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 21 - Spostamento di un campo riga nella posizione di colonna

Per riorientare la tabella pivot in figura 21, in modo che visualizzi i codici lungo il lato superiore,
procedere come segue.
1. Trascinare l'etichetta del campo Codice lavoro dalla posizione di pagina alla posizione di
colonna; la tabella pivot diventa molto larga e la profondit diminuisce.
2. Trascinare Progetto nella posizione di pagina. Quando l'indicatore di inserimento si
trasforma nell'immagine di pi rettangoli sovrapposti, rilasciare il pulsante del mouse.
3. Trascinare Staff nella posizione di riga.
4. Selezionare (Tutto) dal campo pagina.
2.2.2

Spostamento dei singoli elementi di un campo

Per variare la sequenza degli elementi in una tabella pivot, trascinarli nelle posizioni desiderate. Per
spostare un elemento in una tabella pivot, trascinare l'etichetta di esso nella posizione desiderata,
all'interno dello stesso campo. Mentre si trascina, compare un bordo grigio intorno all'elemento;
quando il bordo posizionato correttamente, rilasciare il pulsante del mouse. Excel inserisce
l'elemento selezionato nella posizione di destinazione, insieme ai dati contenuti, spostando in
basso o verso destra gli elementi seguenti.
Gli elementi di una tabella pivot inoltre possono essere ordinati. Consultare pi avanti la sezione
sull'ordinamento.
2.2.3

Spostamento dei campi dati

Normalmente, non possibile spostare i campi dati nelle posizioni di riga, colonna o pagina; tuttavia
quando una tabella pivot contiene pi campi dati, possibile trascinare il pulsante Dati dalla
posizione di riga alla posizione di colonna. In figura 22 compare la tabella pivot con le informazioni
sui tempi di lavoro, in cui compaiono i campi dati (Ore e Lire) in orientamento riga.

22

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 22 - La tabella pivot con i campi dati in orientamento riga

Anzich visualizzare pi campi dati, possibile visualizzare pi calcoli di riepilogo per un unico
campo dati. Consultare la sezione sull'uso dei calcoli personalizzati, pi avanti.
2.2.4

Raggruppamento degli elementi

In alcuni casi, necessario filtrare quantit rilevanti di informazioni organizzate, ad esempio risultati
finanziari, dati demografici ed altro. Per analizzare nel modo corretto questo tipo di informazioni,
occorre determinare il livello di dettaglio con il quale possibile lavorare meglio. Sia quando utile
visualizzare numerosi dettagli, che quando sufficiente una panoramica generale, le tabelle pivot di
Excel forniscono il modo per visualizzare le sole informazioni desiderate.
Raggruppare gli elementi in base alla loro etichetta Si consideri come esempio di lavoro il
caso ipotetico di un grande dettagliante con punti vendita sparsi in diversi paesi. Al massimo livello
di riepilogo stanno i risultati di ogni paese; ogni paese infatti suddiviso in varie regioni, ogni regione
in varie zone e ogni zona presenta diversi punti vendita. Punto vendita, Stato, Regione, Paese e
Societ sono i livelli di aggregazione possibili, disposti in gerarchia; il livello massimo
rappresentato dalla societ. Gli stessi livelli di raggruppamento vanno definiti nella tabella pivot. Per
raggruppare vari elementi in una categoria di massimo livello, procedere come segue.
1. Selezionare contemporaneamente gli elementi (nello stesso campo) da raggruppare. Il
modo migliore per farlo selezionare un elemento, quindi tenere premuto Ctrl e cliccare
sugli altri.
2. Cliccare sul pulsante Raggruppa, sulla barra degli strumenti Tabella pivot. Excel aggiunge il
nuovo campo di gruppo alla tabella pivot ed inserisce le etichette segnaposti per i nuovi
elementi.
3. Sostituire le etichette segnaposti con le etichette per i nuovi gruppi.
Excel non in grado di dedurre i raggruppamenti dai dati di origine. Ad esempio, sebbene l'elenco di
origine presentasse i campi per citt e stato, Excel non sarebbe in grado di raggruppare
automaticamente le citt per stato, ma occorrerebbe creare manualmente i gruppi per ogni stato.
Nascondere e rivisualizzare i dettagli In alcuni casi, utile iniziare l'analisi visualizzando i valori
di riepilogo e, dopo avere creato il quadro generale della situazione, lavorare sui livelli di dettaglio.
Excel prevede un metodo veloce per passare tra le visualizzazioni dettagliate e le visualizzazioni di
riepilogo. Nei raggruppamenti delle tabelle pivot, possibile nascondere o visualizzare i dettagli; un
raggruppamento pu consistere di vari elementi raggruppati, oppure pu essere rappresentato dal
campo di pi alto livello in una posizione (riga o colonna). 1 raggruppamenti di livello pi elevato, gli
elementi di riepilogo, sono posti all'estremit superiore o esterna della tabella pivot. Gli elementi di
23

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


riepilogo sono i campi gruppo Amministrative ed Addebitabili; il campo Staff un elemento di
riepilogo.

Figura 23 - In questa tabella pivot, il campo Staff un elemento di riepilogo; il dettaglio dei codice di lavoro pu
essere visualizzato o nascosto.

Per nascondere gli elementi di dettaglio in un elemento di riepilogo, fare doppio clic sull'elemento
nel campo riga (o colonna) esterno. Ad esempio, facendo doppio clic in successione su Neri e
Ferrari, si nascondono i dettagli per quei gruppi, come si vede in figura 24.

Figura 24 - La tabella pivot, dopo avere nascosto i dettagli per Neri e Ferrari

Per visualizzare o nascondere i dettagli inoltre, possibile usare la barra degli strumenti Tabella
pivot. Per nascondere un elemento, selezionarlo e quindi cliccare sul pulsante Nascondi dettaglio.
Al fine di visualizzare i dettagli per un elemento di riepilogo, selezionare l'elemento e quindi cliccare
sul pulsante Mostra dettaglio.
Per nascondere i dettagli di pi elementi, il pulsante Nascondi dettaglio della barra degli strumenti
Tabella pivot pi efficace del doppio clic. Per nascondere i dettagli di pi elementi, selezionare gli
elementi desiderati e quindi cliccare sul pulsante Nascondi dettaglio. Con questa procedura,
possibile rimuovere un intero livello di raggruppamento da una tabella pivot.
24

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Per nascondere o visualizzare gli elementi di dettaglio attraverso i comandi da menu, procedere
come segue.
1. Selezionare l'elemento di riepilogo di cui nascondere i dettagli.
2. Scegliere il comando Raggruppa e struttura dal menu Dati (o dal menu di scelta rapida).
3. Dal sottomenu, scegliere l'opzione Mostra dettaglio o Nascondi dettaglio.
Visualizzare ulteriori dettagli Con le tabelle pivot, possibile ottenere livelli di dettaglio molto
elevati. Nella sezione precedente descritto come il doppio clic sulla riga e colonna pi esterna
(quelle contenenti gli elementi di riepilogo) limita la quantit di dettagli visualizzata; facendo doppio
clic sulla riga o colonna pi interna si ottiene l'effetto opposto: si visualizzano ulteriori dettagli.
Per aggiungere dettagli ad una tabella pivot, fare doppio clic sulla riga o colonna pi interna per la
quale visualizzare ulteriori dettagli. Facendo doppio clic su Rossi e quindi selezionando Codice
lavoro dalla finestra di dialogo Mostra dettagli appaiono i dettagli per i codici di lavoro di Rossi.
In alcuni casi, mentre si visiona una tabella pivot, necessario consultare l'origine dei dati. Facendo
doppio clic su una cella nell'area dei dati di una tabella pivot (l'area della tabella escluse le etichette
dei campi e degli elementi), Excel inserisce un nuovo foglio di lavoro e visualizza una copia dei dati
di origine usati per calcolare il valore che compare nella cella. In figura 23 compare l'origine dei dati
per le vendite di Bianchi.
I dati visualizzati sono semplicemente una copia. Modificando questa copia non si modificano i dati
di origine.

Figura 25 - La tabella ottenuta facendo doppio clic sulla cella contenente il totale generale per Bianchi, in figura
24.

Per visualizzare i dati di origine di una cella dell'area dei dati, attraverso la barra degli strumenti
Tabella pivot, procedere come segue.
1. Selezionare la cella di cui visualizzare i dati di origine collegati.
2. Cliccare sul pulsante Mostra dettaglio, sulla barra degli strumenti Tabella pivot.
Per visualizzare i dati di origine di una cella dell'area dei dati, attraverso i comandi da menu,
procedere come segue.
1. Selezionare la cella di cui visualizzare i dati di origine.
2. Scegliere il comando Raggruppa e struttura dal menu Dati (o dal menu di scelta rapida).
3. Cliccare sul pulsante Mostra dettaglio.

25

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Raggruppare gli elementi numerici in intervalli Alcune tabelle pivot contengono elementi
identificati da etichette numeriche. Excel pu raggruppare questi elementi in intervalli, sulla base
della cifra iniziale del numero.
Per raggruppare in intervalli gli elementi con etichette numeriche, procedere come segue.
1. Selezionare una delle etichette degli elementi numerici.
2. Cliccare sul pulsante Raggruppa, sulla barra degli strumenti Tabella pivot (in alternativa,
possibile scegliere il comando Raggruppa e struttura dal menu Dati o dal menu di scelta
rapida). Scegliere l'opzione Raggruppa. Excel visualizza la finestra di dialogo d figura 26.

Figura 26 - La finestra di dialogo Raggruppa appare quando gli elementi del gruppo sono etichettati con numeri
di due cifre al massimo

3. Excel determina il raggruppamento per gli elementi ed immette i valori standard per le
caselle A partire da, Fino a e Per. Per accettare gli standard, cliccare su OK. Per definire
manualmente il metodo di raggruppamento, continuare con le istruzioni da 4 a 7.
4. Nella casella A partire da, immettere il primo numero della sequenza da suddividere in
gruppi.
5. Nella casella Fino a, immettere l'ultimo numero della sequenza da suddividere in gruppi.
6. Nella casella Per, immettere la dimensione degli intervalli numerici desiderati. Cliccare su
OK.
Le opzioni Automatico nella finestra di dialogo Raggruppa sono selezionate come standard, tuttavia
vengono annullate se si immettono nelle caselle valori diversi da quelli proposti; selezionando una o
entrambe le opzioni Automatico, si ripristinano i valori iniziali e/o finali dell'elenco d origine.
Raggruppare gli elementi temporali in intervalli Se uno dei campi contiene elementi basati su
periodi temporali e gli elementi da raggruppare sono espressi in uno dei formati di data e ora di
Excel, il programma visualizza la finestra di dialogo di figura 27. Selezionare l'intervallo di tempo
desiderato per il raggruppamento degli elementi dalla casella Raggruppa per.

26

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Figura 27 - La finestra di dialogo da cui creare gruppi per i periodi temporali

Problemi e soluzioni
Quando si raggruppa un campo data, Excel crea un nuovo campo gruppo anzich visualizzare la
finestra di dialogo Raggruppa. Se la selezione comprende alcune date, accertarsi che le celle della
colonna contenente le date nell'elenco di origine siano formattate con uno dei formati data o ora
disponibili.
Alcune celle della tabella pivot mostrano il valore d'errore #DIV/O!. Questo tipo di errore si verifica
quando la tabella pivot calcola una media ed alcuni dei valori necessari mancano. Questo
messaggio indica che l'intervallo non contiene la combinazione di valori rappresentata dalla cella
che mostra l'errore; oppure che esiste una cella vuota nell'intervallo corrispondente al campo dati
della tabella pivot.
2.2.5

Analisi dei dati

Dopo avere visionato i dati di una tabella pivot, pu essere necessario modificare alcuni elementi,
per ottenere una visualizzazione pi adeguata. possibile visualizzare le informazioni di riepilogo di
livello pi elevato, oppure visualizzare numerosi dettagli. possibile variare la sequenza degli
elementi e classificare i dati per valore, anzich per elemento.
Pu essere difficile inserite le etichette di tutti gli elementi nei grafici creati dalle tabelle pivot. Se la
tabella pivot contiene molti elementi, sostituire nomi brevi alle etichette nella tabella.
2.2.6

Analisi delle tabelle pivot con i grafici

Spostando in altre posizioni i campi di una tabella pivot, il grafico che rappresenta la tabella pu
cambiare la disposizione degli indicatori delle serie, fornendo una prospettiva diversa. Il campo con
il numero pi elevato di valori viene sempre assegnato all'asse delle categorie (x),
indipendentemente dal tipo d campo (riga o colonna).
Uno dei modi pi efficaci per esaminare i dati di una tabella pivot aggiungere un campo pagina e
quindi creare un grafico dalla tabella; possibile in seguito alternare gli elementi nel campo pagina
mentre si visualizza il grafico, per vedere l'effetto dei numeri.
2.2.7

Ordinamento degli elementi

Gli elementi di un campo di una tabella pivot possono essere ordinati per etichetta; inoltre,
l'ordinamento pu essere basato sui valori dei campi dati o pu essere di tipo personalizzato.
Quando si crea una tabella pivot, tutti gli elementi vengono automaticamente ordinati per etichetta,
in sequenza decrescente. Quando si aggiungono nuovi elementi o si spostano i campi (oppure si
desidera ordinare gli elementi in modo decrescente), possibile riordinare il campo.
Per ordinare gli elementi per etichetta, dalla barra degli strumenti Standard, selezionare il campo da
ordinare e quindi cliccare sul pulsante Ordinamento crescente o Ordinamento decrescente.
Per ordinare gli elementi per etichetta, attraverso i comandi da menu, procedere come segue
1. Selezionare il campo da ordinare.
2. Scegliere il comando Dati, Ordina.
3. Accertarsi che sia selezionata l'opzione Etichette nell'area Ordina.
4. Scegliere il tipo di ordinamento (pulsante Crescente o Decrescente). La descrizione dei
parametri di ordinamento visualizzata nell'angolo inferiore sinistro della finestra di dialogo
(figura 28).
27

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5. Cliccare su OK.

Figura 28 - La finestra di dialogo Ordina, visualizzata scegliendo Dati, Ordina

2.2.8

Filtro di una tabella pivot

I campi pagina filtrano selettivamente i dati di una tabella pivot. Per visualizzare un determinato
elemento in un campo pagina, cliccare sulla freccia posta a desta del campo pagina e quindi
selezionare l'elemento desiderato dall'elenco (figura 29).

Figura 29 - La selezione di un elemento dall'elenco del campo pagina permette di visualizzare i soli dati relativi
a quell'elemento

Per visualizzare i totali per l'intero campo, selezionare (Tutto) dall'elenco. I totali visualizzati
comprendono i dati per tutti gli elementi del campo, inclusi quelli nascosti.
Uso di pi campi pagina Aggiungendo pi campi pagina, possibile filtrare i dati molto
accuratamente. possibile scegliere uno dei progetti, per vedere il tempo dedicato da Rossi a quel
particolare progetto.

Figura 30 - Con l'uso di due campi pagina, possibile visualizzare informazioni molto specifiche

Per aggiungere un campo pagina ad una tabella pivot, procedere come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
28

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


3. Trascinare il pulsante del campo desiderato sull'area PAGINA.
4. Cliccare sul pulsante Fine.
Per creare un campo pagina da un campo esistente di una tabella pivot, trascinare il pulsante del
campo dalla riga o colonna, oltre l'angolo superiore sinistro del corpo principale della tabella pivot;
quando l'indicatore di inserimento si trasforma nell'immagine di rettangoli sovrapposti, rilasciare il
pulsante del mouse.
2.2.9

Suddividere le pagine su fogli di lavoro diversi

possibile visualizzare le singole pagina di una tabella pivot in fogli di lavoro diversi, opzione utile
per poter stampare tutte le pagine della tabella, oppure spostarsi tra le pagine con l'uso delle
schede dei fogli di lavoro (in fondo alla finestra). Affinch si possa usare questa opzione, la tabella
pivot deve presentare almeno un campo pagina. Per suddividere le pagine di una tabella pivot su
fogli di lavoro separati, procedere come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Mostra pagine, sulla barra degli strumenti Tabella pivot; oppure
scegliere il comando Mostra pagine dal menu di scelta rapida.
3. La finestra di dialogo Mostra pagine visualizza l'elenco dei campi pagina della tabella pivot;
selezionare il campo i cui elementi si desidera visualizzare su fogli di lavoro separati e
cliccare su OK (se la tabella pivot contiene un solo campo, esso selezionato come
standard).
Excel inserisce nella cartella di lavoro un nuovo foglio per ogni elemento del campo pagina,
denominando i fogli di lavoro secondo i rispettivi elementi. Ciascuno dei fogli di lavoro contiene una
tabella pivot con l'elemento appropriato selezionato nel campo pagina.
2.2.10 Controllo dei totali e subtotali
Come standard, Excel visualizza automaticamente nelle tabelle pivot i totali generali per le righe e le
colonne. Se una tabella contiene pi campi riga o colonna, compaiono anche i subtotali (figura 31).

Figura 31 - Excel visualizza automaticamente nelle tabelle pivot i subtotali e i totali generali

Per riprodurre pi tabelle pivot in un foglio stampato, incollare copie fisse delle tabelle, utilizzando il
comando Modifica, Incolla speciale e le opzioni Valori e Formati.
29

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Nascondere i totali generali Per nascondere i totali generali, disattivare le prime due caselle di
controllo della finestra di dialogo Opzioni, disponibile dal passaggio 4 della procedura guidata
Autocomposizione Tabella pivot (figura 32).

Figura 32 - Per evitare la visualizzazione dei totali generali, disattivare le opzioni Totali complessivi per righe e
Totali complessivi per colonne, dalla procedura guidata Autocomposizione Tabella pivot

Quando la tabella pivot contiene pi campi dati, visualizza i totali generali per ogni campo.
possibile visualizzare i totali generali per tutti o nessuno dei campi, nella posizione di riga o colonna.
2.2.11 Nascondere i subtotali
I subtotali sono associati con i singoli campi, quindi per nasconderli o visualizzarli necessario
procedere individualmente.
Per nascondere i subtotali di un campo, procedere come segue.
1. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot (in
alternativa, possibile fare doppio clic sul campo desiderato nella tabella pivot o scegliere il
comando Campo tabella pivot dal menu di scelta rapida).
2. Nell'area Subtotali della finestra di dialogo Campo tabella pivot, selezionare Nessuno e
cliccare su OK.
Per aggiungere i subtotali, visualizzare la finestra di dialogo e selezionare Predefiniti.
2.2.12 Visualizzare i subtotali per pi campi in una riga o colonna
Quando una riga o una colonna contiene pi campi ed attivata l'opzione per i subtotali predefiniti,
la tabella pivot visualizza i subtotali per il solo campo pi esterno. possibile tuttavia visualizzare i
subtotali per il campo pi interno.
Per visualizzare i subtotali di un campo interno, procedere come segue.
1. Selezionare il campo per il quale visualizzare i subtotali.
30

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Cliccare sul pulsante Impostazioni Campo tabella pivot, sulla barra degli strumenti Tabella
pivot (in alternativa, possibile fare doppio clic sul campo desiderato nella tabella pivot, o
scegliere il comando Campo tabella pivot dal menu di scelta rapida). Si apre la finestra di
dialogo Campo tabella pivot (figura 33).

Figura 33 - Dalla finestra di dialogo Campo tabella pivot, possibile modificare le funzioni che Excel usa per il
riepilogo dei dati

3. Nell'area Subtotali della finestra di dialogo Campo tabella pivot, selezionare Personalizzati.
4. Selezionare dall'elenco adiacente il tipo di calcolo per i subtotali, ad esempio Somma, e
quindi cliccare su OK.
2.3

USO DI ALTRE FUNZIONI PER L'ANALISI DEI DATI

Molte delle tabelle pivot considerate finora calcolano i totali dei valori numerici contenuti nell'origine
dei dati. In alcuni casi tuttavia necessario eseguire altri tipi di calcoli,ad esempio le medie.
2.3.1

Cambiare la funzione di riepilogo

Se non si specifica diversamente, quando si crea una tabella pivot Excel usa la somma come
calcolo di riepilogo sui valori di origine (se invece i campi dati Contengono testo, la tabella pivot
visualizza il conteggio dei valori). Il tipo di calcolo eseguito sui dati pu essere variato a piacere.
Dalla procedura guidata Autocomposizione Tabella pivot, procedere come segue.
1. Selezionare una cella nell'area dei dati della tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Fare doppio clic sul pulsante del campo nell'area DATI.
4. Dalla casella di riepilogo Riepiloga per, selezionare la funzione di riepilogo desiderata. In
tabella 1 sono descritti i tipi di calcoli pi comuni per le tabelle pivot.
5. Cliccare su OK per ritornare alla procedura guidata Autocomposizione Tabella pivot e
cliccare sul pulsante Fine.
Tabella 1

Funzione di riepilogo

Procedura di calcolo usata nella tabella pivot

Somma

Somma dei valori numerici

31

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Conta

Conteggio di tutti i valori

Media

Somma dei valori numerici e divisione per il numero dei record


di origine

Max

Determinazione dei valore massimo

Min

Determinazione dei valore massimo

Prodotto

Prodotto di tutti valori numerici

Conta numeri

Conteggio di tutti i valori numerici

Utilizzare funzioni di riepilogo diverse nella stessa tabella pivot In una tabella pivot, possibile usare
una diversa funzione di riepilogo per ogni campo dati.
Inoltre, possibile usare una funzione di riepilogo diversa per lo stesso campo dati, se lo si
aggiunge due volte alla tabella pivot.
2.3.2

Utilizzare calcoli personalizzati

Per le tabelle pivot, Excel prevede vari tipi di calcoli non standard, che si basano su altri valori
nell'area dei dati.
Per riepilogare gli stessi dati in modi diversi, aggiungere due volte il campo dati ed utilizzare il
pulsante Campo tabella pivot per variare i metodi di riepilogo.
Per variare il tipo di calcolo di un campo dati, procedere come segue
1. Selezionare una cella della tabella pivot nel campo da variare.
2. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot.
3. Dalla finestra di dialogo Campo tabella pivot, scegliere Opzioni.
4. Selezionare il tipo di calcolo desiderato dalla casella di riepilogo Mostra dati. In tabella 2
sono descritti i vari tipi di calcoli. Il termine risultato si riferisce al risultato calcolato dalla
funzione di riepilogo per una determinata cella della tabella pivot.

32

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Tabella 2

Tipo di calcolo

Visualizzazione in cella nella tabella pivot

Discordanza da

La differenza tra il risultato ed il campo e lelemento specificati nelle


caselle Campo base ed Elemento base

% di

Il risultato diviso per il campo basa e lelemento specificati, espresso in


percentuale

% discordanza da

La differenza tra il risultato ed il campo e lelemento specificati, diviso


il campo base e lelemento espresso in percentuale

Esegui totale in

Per il campo base specificato, i totali che sommano il risultato per


elementi successivi

% di riga

Il risultato diviso per il totale della riga espresso in percentuale

% di colonna

Il risultato diviso per il totale della colonna espresso in percentuale

% dei totale

Il risultato diviso per il totale della tabella pivot espresso in percentuale

Indice

Il valore calcolato dalla formula seguente Risultato* Totale


generale/Totale generale per riga* Totale generale per colonna

1. Se occorre, selezionare il campo e l'elemento desiderati, rispettivamente nelle caselle


Campo base ed Elemento base. Ad esempio, per il tipo di calcolo % di riga illustrato in figura
34 non occorre specificare un campo base, poich questo calcolo non usa un campo base.
2. Cliccare su OK

33

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 34 - Calcolo delle vendite come differenza percentuale comparata al periodo precedente

Per comprendere il funzionamento degli elementi e dei campi base, si immagini di studiare le
tendenze delle vendite di una societ sul lungo periodo, disponendo dei dati a partire dal 1987 e
volendo visualizzare le vendite per prodotto, con le variazioni percentuali annue.
Per visualizzare i risultati di vendita nel tempo con le variazioni percentuali, procedere come segue.
1. Creare una tabella pivot con due campi dati per le vendite.
2. Nella finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, fare
doppio clic sul pulsante Somma di vendite2 nell'area DATI. Si apre la finestra di dialogo
Campo tabella pivot.
3. Nella casella Nome, variare il nome del campo digitando Differenza.
4. Se occorre, scegliere Opzioni per espandere la finestra di dialogo.
5. Scegliere l'opzione % discordanza da, dalla casella di riepilogo Mostra dati.
6. Nella casella Campo base, selezionare Data.
7. Nella casella Elemento base, selezionare (precedente).
8. Cliccare su OK.
9. Cliccare sul pulsante Fine.
2.3.3

Creare un campo calcolato in una tabella pivot

Se non si desidera utilizzare uno dei calcoli predefiniti per le tabelle pivot, possibile creare propri
campi calcolati. Negli esempi proposti, ci si limitati ai campi del gruppo di dati originale.
possibile per voler espandere il gruppo di dati iniziali per effettuare ulteriori analisi. Ad esempio,
possibile voler calcolare, ad uso interno, la somma spettante ad ogni collaboratore in base alle ore
lavorate. Se la somma oraria prevista dalla societ di L.20.000, i totali andrebbero calcolati
moltiplicando le ore lavorate per 20.000. molto semplice.
1. Cliccare in una qualsiasi cella della tabella pivot, per attivare la tabella.

34

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Dalla barra degli strumenti Tabella pivot, scegliere il pulsante Tabella pivot.
3. Scegliere Formule, Campo calcolato. Si apre la finestra di dialogo Inserisci campi calcolati
(figura 35).

Figura 35 - La finestra di dialogo Inserisci campi calcolati permette di aggiungere campi personalizzati alla
propria tabella pivot.

4. Nella casella Nome, digitare un nome per il campo calcolato.


5. Selezionare la casella Formula. Scegliere un campo dalla casella Campi e cliccare sul
pulsante Inserisci campo. Ora, costruire la propria formula. Per il calcolo dei compensi ad
uso interno, di cui sopra, la formula sar Ore*20.
Scegliere Aggiungi e quindi cliccare su OK.
2.4

FORMATTAZIONE DELLE TABELLE PIVOT

Apparentemente, una tabella pivot rappresenta un intervallo di celle contenente costanti numeriche,
ma in realt si tratta di un'entit di riepilogo, collegata ad uno o pi altri intervalli. Le caratteristiche
tipiche delle tabelle pivot implicano speciali tecniche di formattazione.
2.4.1

Formattazione automatica delle tabelle pivot

possibile formattare individualmente le singole celle di una tabella pivot, tuttavia Excel riformatta la
tabella come entit unica, ogniqualvolta si varia la disposizione, oppure si rinnova la tabella. Per
riformattare una tabella pivot, selezionare qualsiasi cella di essa e scegliere il comando Formato,
Formattazione automatica; quindi selezionare il formato desiderato dalla finestra di dialogo
Formattazione automatica.
Quando viene riorganizzata o rinnovata, la tabella pivot mantiene i formati automatici applicati.
2.4.2

Formattazione dei numeri

Quando si crea una nuova tabella pivot, Excel applica alle celle dell'area dei dati il formato numerico
proprio dello stile Generale del foglio di lavoro. Questo formato tuttavia pu essere modificato. Per
applicare un formato numerico diverso all'area dei dati di una tabella pivot, procedere come segue.
1. Selezionare una cella nell'area dei dati della tabella pivot.
35

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot. Si apre
la finestra di dialogo Campo tabella pivot.
3. Cliccare sul pulsante Numero. Compare la scheda Numero della finestra di dialogo Formato
celle.
4. Selezionare il formato numerico desiderato e cliccare su OK.
Il formato numerico selezionato rimane applicato a tutte le celle dell'area dei dati, anche se l'area
cambia forma.
2.4.3

Variazione dei nomi dei campi e degli elementi

possibile variare una qualsiasi delle etichette di testo che circondano l'area dei dati, selezionando
la cella opportuna e digitando il nuovo nome.

36

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Filtraggi sui dati

Le funzionalit di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per
registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e ricavarne molte informazioni: il
caso pi tipico quello delle analisi di bilancio, che abbiamo esaminato precedentemente.
3.1

CHE COS UN DATABASE

Il termine database si potrebbe rendere in italiano con base di dati, ma linglese ha dalla sua il
vantaggio della compattezza, che ce lo fa preferire. Con questo nome si caratterizza una qualsiasi
raccolta di dati omogenei, conservati su un supporto di registrazione in una forma strutturata.
Come il borghese di Molire, che parlava in prosa senza saperlo, tutti noi viviamo in mezzo ai
database e ce ne serviamo quotidianamente, anche se non sappiamo che si chiamano cosi. Sono
infatti da considerarsi database le guide del telefono, le rubriche di indirizzi che teniamo in tasca o
sul tavolo di lavoro, le matrici degli assegni bancari e altri semplici oggetti di uso quotidiano.
Ci che caratterizza un database il fatto che contiene dati omogenei, registrati in forma
strutturata. Un bilancio non un database, perch i dati sono si, strutturati, ma si riferiscono a
realt diverse (attivit e passivit, per esempio), mentre pu essere considerato un database un
libro giornale di contabilit, perch tutte le righe contengono informazioni omogenee, disposte
sempre nello stesso modo (strutturate, quindi): numero di registrazione, data, documento, conto di
addebito, conto di accredito, importo.
In un database i dati sono organizzati secondo una gerarchia di contenitori che si chiamano campi,
record e tabelle. Questi termini tecnici si possono ricondurre a semplici realt della vita di tutti i
giorni. In un tipico database, qual la guida telefonica distribuita da Telecom, i campi contengono i
dati elementari che caratterizzano labbonato: cognome, nome, indirizzo, numero di telefono.
Mettendo insieme i campi di un singolo abbonato si ottiene un record, che corrisponde alla riga
stampata. Linsieme delle righe o record forma la tabella. Tutto qui.
La struttura data dallordine con cui sono disposti i campi nei record: nel caso della guida
telefonica, viene sempre prima il cognome, seguito dal nome, dallindirizzo e dal numero di telefono.
Un altro elemento qualificante lomogeneit dei contenuti: nel campo del numero di telefono non
compare mai un nome o un indirizzo.
Se mettiamo uno sotto laltro i record di una guida del telefono e diamo la stessa larghezza ai
campi, la tabella che ne risulta assume un aspetto molto familiare: i record potrebbero essere righe
e i campi colonne di un foglio di lavoro Excel. Lidentit strutturale fra un foglio di lavoro e una tabella
di database la base logica che consente di usare Excel anche per creare e gestire database e
non soltanto per analizzare dati numerici disposti su un foglio di lavoro.
Ben consapevoli di questa possibilit, i creatori di Excel hanno messo a punto una serie di
strumenti specializzati per agevolare luso di questo programma come gestore di database.
Vedremo in questo capitolo quali sono questi strumenti e come si possono utilizzare in concreto.
3.1.1

Ordinare i record

Sulle informazioni disposte nel foglio di lavoro secondo la struttura di un database possono agire
diverse funzionalit specifiche per questo genere di strutture. Una delle pi utili lordinamento.
Supponiamo di voler riorganizzare i record ordinati secondo il nome del cliente. Selezioniamo con
un clic il campo Cliente di un qualunque record del database e facciamo scendere il menu Dati, nel
quale selezioniamo il comando Ordina.
Lintera area del foglio di lavoro che contiene il database viene selezionata automaticamente e su
essa si visualizza una finestra di dialogo intitolata Ordina, che merita di essere esaminata con cura.
37

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Questa finestra di dialogo permette di definire i criteri per riordinare i record che compongono il
database.
Quando viene attivata nella prima casella di selezione, intitolata Ordina per, compare il nome del
campo che era selezionato quando stato dato il comando Ordina.
A fianco, due pulsanti di opzione, denominati Crescente e Decrescente, consentono di scegliere se
lelenco dei record andr ordinato disponendo i record secondo lordine che va dal pi piccolo al pi
grande (Crescente) o dal pi grande al pi piccolo (Decrescente).

Figura 36 - La finestra di dialogo Ordina.

Figura 37 - Una sezione del database dopo lordinamento.

Se il campo contiene numeri, lordinamento Crescente risulta in una distribuzione che va dal
numero pi basso al pi alto. Quando il campo contiene testo (come nel caso del campo Cliente), i
record saranno ridistribuiti in base allordine alfabetico del testo.
Se si desidera cambiare il campo in base al quale eseguire lordinamento, basta selezionarne il
nome dalla lista a discesa che sta nel riquadro Ordina per.
In molti casi si pu aver bisogno di eseguire ordinamenti in cascata: vogliamo per esempio ordinare
il database dei clienti per provincia e vederne i nomi in ordine alfabetico allinterno di ciascuna
provincia.
La finestra di dialogo Ordina consente di concatenare in questo modo fino a tre criteri di
ordinamento, attivandoli in un colpo solo. Per farlo si utilizzano (dopo la casella di selezione a
discesa Ordina per) una o entrambe le caselle di selezione che vengono subito sotto e sono
denominati Quindi per.
38

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Possiamo veder leffetto del doppio ordinamento il primo crescente sul campo Cliente e il
secondo decrescente sul campo Totale.
possibile ripristinare lordinamento precedente se i record in origine sono disposti secondo un
ordine progressivo, come nel nostro caso quello determinato dal contenuto del campo Doc. Per
tornare alla situazione di partenza, si esegue di nuovo il comando Ordina, selezionando, in questo
esempio, il campo DOC e scegliendo il criterio Crescente.
3.1.2

Filtrare i record

Con il comando Ordina dal menu Dati si ridistribuiscono tutti i record del database secondo uno o
pi criteri di ordinamento. Con questa operazione si possono mettere in evidenza determinati
gruppi di record, per elaborarli poi selettivamente.
Quando un database contiene centinaia o migliaia di record, per, lordinamento pu far comodo,
ma non risolve sempre tutti i problemi di selezione. Sarebbe utile poter evidenziare soltanto i record
che hanno certi valori in determinati campi e non altri, per esempio, operazione che si riesce a fare
solo in parte con il comando Ordina.
Per soddisfare esigenze di selezione di questo genere disponibile un altro comando specifico per
i database, che si trova sempre nel menu Dati: si tratta del comando Filtro, dal quale si possono
selezionare due sottocomandi: Filtro automatico e Filtro avanzato. Vediamo il primo.
Quando si attiva Filtro automatico in apparenza non accade nulla. Osservando pi attentamente la
finestra dellapplicazione, si nota per che le celle che contengono i nomi dei campi sono state
trasformate in altrettante caselle di selezione a discesa, pi o meno in questo modo:

Il significato operativo di questa trasformazione notevolmente interessante. Facendo clic sul


pulsante a freccia di una qualunque casella col nome di un campo, si fa scendere un elenco di
criteri di selezione associabili al campo stesso. Un clic su uno di questi criteri lo attiva e vengono
visualizzati soltanto i record del database che soddisfano il criterio selezionato per quel campo.
I criteri disponibili sono numerosi e articolati. Cominciamo dai pi semplici:
tutto, seleziona tutti i record;
vuote, seleziona i record nei quali il campo selezionato vuoto;
non vuote, seleziona i record nei quali il campo selezionato non vuoto.
Nellelenco a discesa sono poi presentati, campo per campo, alcuni criteri specifici che
corrispondono ai singoli valori diversi contenuti in quel campo in tutti i record. Per esempio, i nomi
diversi presenti nel campo Cliente dei 15 record del database di prova sono soltanto 4 e vengono
elencati fra i criteri di filtro. Nella figura che segue possiamo vedere leffetto che si ottiene
selezionando il nome Lindipendente Snc, che fra i quattro criteri specifici elencati nella lista di
selezione per il campo Cliente.

Quando un database viene filtrato, i numeri delle righe corrispondenti ai record che soddisfano le
condizioni del filtro compaiono scritti in azzurro e vengono nascoste le altre righe. Questo
39

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


accorgimento segnala che ci che si sta osservando soltanto una parte del database. Per tornare
a vedere tutti i record si seleziona il criterio Tutto nellelenco a discesa.
In Excel 7.0 la funzione Filtro automatico presenta un criterio nuovo, non disponibile in Excel 5.0,
che compare col nome Primi 10 nellelenco a discesa dei criteri.
un criterio potentissimo, di notevole effetto: infatti ordina in memoria i record, senza spostarli
fisicamente nel foglio di lavoro, usando come chiave di ordinamento il campo selezionato e
visualizza soltanto i record che in quellordinamento occupano le prime dieci posizioni.
Malauguratamente, la sua attivazione richiede una laurea in ingegneria nucleare o quasi. Battute a
parte, il concetto sarebbe anche semplice e intuitivo, ma la sua messa in pratica notevolmente
tortuosa. Vediamo intanto come si presenta da vicino.
Quando si fa clic sul nome Primi 10 compare una finestra di dialogo intitolata Filtro automatico
primi 10, che presenta tre caselle di selezione, raggruppate sotto lintestazione comune Mostra:

nella prima si pu selezionare una fra due voci: Superiore o Inferiore;

la seconda casella propone un numero predefinito (10), che si pu aumentare o diminuire


agendo sulle frecce di selezione;

la terza casella presenta anchessa due sole opzioni: Elementi o Percentuale.

Se, sconcertato da queste opzioni, formulate in maniera decisamente sibillina, lutente chiede aiuto
alla Guida contestuale, gli apparir il testo che segue (riprodotto fedelmente: provare per credere):
Per visualizzare tutte le righe contenenti un qualsiasi intervallo superiore o inferiore specificato,
selezionare lintervallo superiore o inferiore e lintervallo numerico, quindi selezionare le voci o la
percentuale.
Siccome, per nostra fortuna, non corriamo alcun rischio fisico, non ci resta che andare per tentativi
e cosi scopriamo che il criterio Primi 10 serve in realt per filtrare non i primi 10 record, ma
quanti se ne vuole (1 o n, purch siano meno del totale dei record del database) visualizzando quelli
che se fossero messi in ordine in base al campo selezionato occuperebbero le prime (
n)
posizioni o le ultime (n).
C di pi: il confronto pu essere fatto anche in termini percentuali e non soltanto sui valori assoluti
del campo selezionato.
Facciamo un esempio. Supponiamo di aver scelto il criterio Primi 10 come filtro sul campo
Imponibile:

se nella finestra di dialogo selezioniamo le opzioni Superiore, 3 ed Elementi, verranno filtrati


i 3 record che hanno il valore pi elevato rispetto agli altri 15 nel campo Imponibile;

se selezioniamo Percentuale invece di Elementi, lasciando invariate le altre due opzioni


(Superiore e 3), verr filtrato un solo record, quello dove il valore del campo Imponibile il
pi elevato di tutti gli altri in termini percentuali.

Molto pi a misura duomo si presenta lopzione Personalizza, che permette di definire un criterio di
filtro personalizzato. Il criterio si costruisce attraverso una finestra di dialogo intitolata Personalizza
filtro automatico, che vediamo qui di seguito:

40

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

In questa finestra di dialogo si possono indicare uno o due criteri di filtro, collegandoli, se sono due,
con un operatore logico And (E) oppure Or (O). Loperatore di confronto per il campo selezionato
pu essere scelto fra quelli elencati nella casella di selezione a sinistra, che presenta i simboli =, >,
<, >=, <=, e <> quando si fa clic sul pulsante a freccia.
Il termine di confronto per il contenuto del campo sul quale si basa il filtro pu essere immesso
direttamente nella casella di selezione a destra, o scelto fra quelli elencati nella casella stessa
facendo scendere la lista con il pulsante freccia. Questo elenco viene costruito con tutti i valori
diversi contenuti nel campo selezionato. Per esempio, per filtrare i record in modo che siano visibili
soltanto quelli che hanno nel campo Imponibile un importo inferiore a 1.000.000, si seleziona il
campo Imponibile, si sceglie lopzione Personalizza, nella finestra di dialogo si fa uscire loperatore
di confronto < nella prima casella di selezione in alto a sinistra e si digita 1000000 nella casella
subito a destra.
Per filtrare i record che hanno un importo nel campo Imponibile compreso fra un minimo di
1.000.000 e un massimo di 4.000.000, si impostano il primo operatore di confronto su >=, il primo
termine di confronto su 1000000, il secondo operatore di confronto su <= e il secondo termine di
confronto su 4000000. Fra i due valori di confronto si seleziona il pulsante di opzione marcato E.
In fondo alla finestra di dialogo Personalizza filtro troviamo due annotazioni: Usa ? per
rappresentare un carattere singolo e Usa * per rappresentare una serie di caratteri. Le
annotazioni sono un richiamo alla regola per i confronti sui campi che contengono stringhe di testo.
possibile infatti impostare un filtro su un campo che contiene un nome o una descrizione, in
modo che il confronto sia fatto soltanto su una parte del campo.
Supponiamo di voler filtrare tutti i record delle fatture intestate a clienti la cui ragione sociale cominci
con la lettera M. Nella casella di selezione delloperatore sceglieremo = e immetteremo i caratteri
M* nella casella del termine di confronto, dopo aver selezionato il campo Cliente. Il carattere
asterisco in quella posizione indica al programma do filtrare i record che hanno una M come primo
carattere nel campo Cliente e di ignorare nel confronto tutti i caratteri che si trovano a destra della
posizione segnata dal carattere *. Per selezionare tutti i record che nel campo Cliente hanno i
caratteri cc in una qualunque posizione, si imposta il termine di confronto su *cc*.
Il carattere punto interrogativo permette una selezione pi fine. Immaginiamo di non essere certi se
un cliente si chiami Romano o Romani. Immetteremo in questo caso la stringa Roman? Come
termine di confronto: il programma filtrer tutti i record che nel campo Cliente hanno la stringa
Romano, Romani, Romana, eccetera.
Come se tutte queste possibilit non fossero sufficienti, esiste anche un metodo di filtraggio che nel
menu Dati/Filtro individuato dal comando Filtro avanzato. Con questo comando si ottengono le
stesse selezioni che abbiamo appena visto parlando dellopzione Personalizza filtro, ma con un
significativo vantaggio in pi: possibile preparare prima i criteri di filtro e salvarli poi insieme col
database, in modo da riutilizzarli in tempi successivi senza immetterli ex novo ogni volta.

41

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Prima di attivare il comando Dati/Filtro/Filtro avanzato occorre inserire almeno due righe sopra la
riga di intestazione che contiene i nomi dei campi.
Nella prima riga si copiano dalla riga di intestazione i nomi dei campi in base ai quali si intende
applicare il filtro.
Nella seconda riga (e nelle eventuali righe successive che si sono aggiunte) si scrive la formula di
confronto in corrispondenza di ogni campo trascritto nella prima riga. Se, per esempio, il criterio di
filtro deve selezionare tutti i record che abbiano un valore inferiore a 1.000.000 nel campo
Imponibile, lintestazione del database assume laspetto riportato qui sotto:

Dopo aver predisposto il criterio o i criteri di selezione in questo modo, si sceglie il comando Filtro
avanzato, che presenta una finestra di dialogo nella quale di devono definire le seguenti opzioni,
completandole con le indicazioni del caso.
Filtra elenco sul posto: esegue loperazione direttamente nellintervallo occupato dal database,
come avviene normalmente quando si eseguono comandi di filtro automatico manualmente.
Copia in unaltra posizione: i record che soddisfano le condizioni di filtro saranno copiati in un
intervallo diverso, da specificare, mentre il database dorigine resta visualizzato per interno.
Intervallo elenco: lintervallo occupato dal database; normalmente questa casella appare gi
compilata. per possibile delimitare una parte soltanto dellelenco (cio del database) per
predisporre eventualmente condizioni di filtro di tipo pi generale.
Intervallo criteri: va indicato lintervallo di celle (minimo due) che contiene il nome del campo e il
criterio di filtro.
Copia in: questa casella si abilita soltanto se selezionata in precedenza lopzione Copia in
unaltra posizione. Va indicato lintervallo di destinazione dei record che verranno filtrati e copiati.
Copia unica dei record: se si ha ragione di supporre che il criterio di filtro far passare pi record
identici, ma interessa avere soltanto un record per ogni tipo, si spunta questa casella di controllo.

Figura 38 - La finestra di dialogo Filtro avanzato.

42

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Le funzionalit offerte da Filtro avanzato possono far comodo quando un ufficio gestisce un
database e deve fornire ad altri uffici elenchi selezionati su base ricorrente. Dopo aver predisposto i
criteri di selezione, basta indicare nella casella Copia in un intervallo opportuno, per esempio su un
foglio di lavoro separato, registrare su un file diverso il foglio con i record filtrati e farlo arrivare
allufficio che deve utilizzare i dati. In questo modo non deve essere copiato n modificato, continua
a restare sotto il controllo e la responsabilit di chi lo ha creato e lo gestisce e chi riceve lelenco
filtrato sa che i dati che gli sono stati mandati derivano dallultima versione del database dorigine.

Figura 39 - Il Filtro avanzato al lavoro.

3.1.3

Gestire i record

Un database concepito per lavorare si arricchisce tutti i giorni di nuovi record; con frequenze
diverse, quotidiane o settimanali, si deve intervenire per modificare il contenuto di qualche campo o
per eliminare i record il cui contenuto non rispecchia pi la situazione che il database intende
documentare.
Queste operazioni di aggiunta, cancellazione e modifica di record sono essenziali per la gestione di
un database. Si possono eseguire con le tecniche previste da Excel per modificare, cancellare ed
eliminare elementi di intervallo: si selezionano una o pi celle e se ne modifica il contenuto. Oppure
si selezionano una intera riga e la si cancella con il comando Elimina dal menu Modifica o dal menu
contestuale.
Quando in un foglio di lavoro esiste un intervallo caratterizzato come database, Excel mette a
disposizione automaticamente un ottimo e comodo strumento, fatto apposta per gestire i record,
che si chiama Modulo.
Lo si attiva scegliendo il comando Modulo dal menu Dati, dopo aver selezionato un campo
qualunque allinterno del database.
Come dice il suo nome, con questo comando si crea un modulo, cio un insieme strutturato di
caselle di modifica, che presenta in una forma chiara e organizzata tutti i campi di record, allo
scopo di agevolare la gestione del database: creare nuovi record, eliminare record esistenti o
modificare il contenuto dei campi di un record determinato.
Mentre il database che abbiamo usato finora come esempio aperto, scegliamo Modulo dal menu
Dati e ci si presenta una finestra di dialogo di tipo particolare.
Il modulo si presenta come una finestra di dialogo, intitolata col nome del foglio in cui si trova il
database.
La struttura di questa finestra di dialogo diversa da quelle che siamo abituati a vedere in Excel: in
effetti, non una finestra di dialogo, ma uno schema per gestire in modo uniforme un record del
database, agendo sullintero record o su uno dei campi. Proviamo a vedere come fatto questo
modulo.

43

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 40 - Il modulo per gestire individualmente i record di un database.

Nella parte sinistra troviamo i nomi di tutti i campi che concorrono a formare un record. A fianco dei
nomi vi sono un certo numero di caselle, attraverso le quali si possono immettere nuovi campi o
correggere il contenuto di campi esistenti.
Come si pu notare, non a tutti i nomi corrisponde una casella di modifica. Per i campi calcolati,
quelli cio che contengono formule, viene visualizzato il risultato della formula, ma non previsto
che vi si acceda per modificarli. Questa impostazione semplifica notevolmente la creazione di
nuovi record, perch guida loperatore a immettere soltanto i dati di base, mentre i campi che
risultano da un calcolo vengono generati automaticamente.
Al centro del modulo visibile una barra di scorrimento, che serve per spostarsi da un record
allaltro, senza dover scorrere materialmente il foglio col database.
Alla destra della barra di scorrimento due pulsanti Nuovo ed Elimina consentono di creare un
nuovo record o di eliminare quello selezionato ( il cui contenuto compare nella parte di sinistra del
modulo). Un pulsante Ripristina annulla tutte le modifiche fatte sul record, a condizione di non aver
ancora premuto il tasto Invio o di non essere passati a un nuovo record.
Un gruppo di pulsanti marcati Criteri, Trova succ. e Trova prec. consente di effettuare ricerche
con una logica simile a quelle che abbiamo visto quando abbiamo esaminato lopzione
Personalizza filtro automaticamente. In questo caso, per, possibile definire
contemporaneamente criteri di ricerca su pi campi.
Quando si fa clic sul pulsante Criteri, il modulo si trasforma presentando una casella di immissione
vuota sul lato sinistro, a fianco dei nomi di tutti i campi, anche di quelli che contengono valori
calcolati. In ciascuna di queste caselle possibile digitare un criterio di selezione, usando gli
operatori di confronto, quelli logici e gli indicatori di posizione dei caratteri (? e *).
Dopo aver immesso i criteri di selezione nei campi che interessano, un clic sul pulsante Trova
succ. attiva unesplorazione del database in avanti che si arresta visualizzando il modulo con il
primo record che corrisponde ai criteri di selezione (se ce n almeno uno). Agendo ancora sul
pulsante Trova succ. si visualizzano gli eventuali altri record e con Trova prec. Si torna indietro a
visualizzare quelli trovati in precedenza. Se non vengono trovati record che corrispondono ai criteri
impostati, si viene avvistai da una segnale acustico.

44

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Il Risolutore

Excel prevede diversi strumenti per l'analisi dei dati contenuti nei fogli di lavoro. Tra essi assumono
importanza fondamentale il comando Strumenti, Ricerca obiettivo e l'aggiunta Risolutore. Il
comando Ricerca obiettivo permette di trovare il valore che genera il risultato desiderato in una
formula. Il Risolutore uno strumento matematico che permette di trovare la risposta migliore ad
un problema, quando esistono pi variabili e vanno rispettati determinati vincoli.
Questo capitolo tratta i seguenti argomenti.
1. Applicazioni del Risolutore
2. Vincoli interi
3. Salvare i problemi del Risolutore
4.1

QUALE STRUMENTO USARE

Excel prevede diversi strumenti per la risoluzione dei problemi, ciascuno utile in determinate
situazioni. Alcuni di questi strumenti, tra cui la funzione Risolutore, sono programmi aggiuntivi.
Ricerca obiettivo e Risolutore sono strumenti progettati in modo specifico per trovare valori che
permettano di ottenere determinati risultati dalle formule. Il primo di tali strumenti trattato nel
manuale Excel 2000 avanzato.
4.2

USO DELLA FUNZIONE RISOLUTORE

Alcuni problemi sono troppo complessi perch il comando Strumenti, Ricerca obiettivo sia in grado
di trovare una soluzione. Questa situazione si verifica, ad esempio, quando le variabili sono pi di
una, oppure necessario porre determinati vincoli per le soluzioni da determinare.
Diversamente dalla funzione Ricerca obiettivo, il cui scopo trovare una determinata soluzione, la
funzione Risolutore trova una soluzione ottimale variando pi celle e mantenendo le altre formule
del foglio di lavoro entro i limiti specificati.
Spesso, occorre modificare il foglio di lavoro, affinch si adatti al tipo di modello per il quale il
Risolutore funziona meglio. In figura 41, se si chiede al Risolutore di massimizzare il profitto
cambiando i tassi di crescita delle vendite e le percentuali di spesa, semplicemente si otterranno
tassi di crescita molto elevati e percentuali di spesa negative. Per rendere significativo il problema,
occorre includere limiti, o vincoli, per le percentuali di spesa; inoltre pu essere necessario,
eventualmente, includere formule che calcolano tassi di crescita realistici per le spese, sulla base
di altri input. Per impostare un tale foglio di lavoro, occorre conoscere a fondo la situazione reale
che il modello deve rappresentare. Il Risolutore uno strumento molto potente, che pu essere
d'aiuto per creare modelli razionali finalizzati ad ottimizzare lo sfruttamento delle risorse, la gestione
della cassa e la scelta dei mix di prodotti che generano i migliori risultati.
4.2.1

Quando usare il Risolutore

Molte applicazioni pratiche del Risolutore riguardano la nozione di allocazione di risorse scarse per
ottenere determinati obbiettivi, quali massimizzare i profitti, minimizzare i costi o migliorare il pi
possibile la qualit. Le risorse possono essere materie prime, ore lavoro, ore macchina, denaro o
qualsiasi altro elemento limitato. I vincoli del Risolutore quantificano i limiti del problema. Il
Risolutore trova la migliore allocazione delle risorse che soddisfa i vincoli impostati.
Spesso, le risorse scarse possono essere utilizzate in molti modi diversi ed il Risolutore trova la
migliore combinazione di utilizzo di tali risorse. Ad esempio, gli stessi materiali si potrebbero usare
per diversi prodotti, oppure lo stesso impiegato potrebbe lavorare a progetti diversi o le medesime
45

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


risorse essere usate in periodi di tempo diversi. Il numero delle possibili combinazioni troppo
elevato per poter effettuare un'analisi manuale, mentre il Risolutore in grado di trovare
automaticamente la combinazione ottimale. Per usare il risolutore, occorre saper identificare le
variabili o celle di immissione del modello (di solito rappresentano la quantit di risorse); la formula
obiettivo che si desidera minimizzare o massimizzare; i vincoli che impostano i limiti superiori ed
inferiori dei valori che determinate formule possono presentare come soluzione.
4.2.2

I vincoli nei problemi del Risolutore

I vincoli sono relazioni quali Al<=B1, A1=A2 o Al> =0 che impongono limiti sui valori (celle) che la
formula usa. Almeno uno dei valori (celle) della formula vincolati deve dipendere da qualche cella
variabile; diversamente, il vincolo non parteciper alla determinazione della soluzione ottimale; potr
essere soddisfatto o insoddisfatto prima di avviare il Risolutore. I vincoli generalmente vengono
impostati in gruppi ed il Risolutore permette di specificarli in un solo passaggio, scrivendo ad
esempio A1:A10<=B1:B10 o A1:E1>=O.
La parte pi difficile nella creazione di un modello per il Risolutore identificare i vincoli corretti.
Alcuni particolari vincoli, ad esempio i limiti di materie prime, sono facili da identificare. Altri sono pi
difficili, come ad esempio i seguenti.
Un modello suddiviso per periodi potrebbe richiedere un vincolo secondo cui la giacenza iniziale
(cassa o altro) di ogni nuovo periodo deve essere uguale alla giacenza finale del periodo
precedente.
Un modello di gestione del magazzino potrebbe richiedere un vincolo secondo cui la giacenza
iniziale sommata ai prodotti ricevuti deve essere uguale alla giacenza finale sommata ai prodotti
spediti.
Molti modelli richiedono un vincolo secondo cui tutte le risorse devono essere usate. Ad esempio. la
somma dei fondi allocati a vari investimenti deve essere uguale al totale dei fondi disponibili.
Un vincolo molto comune, definito "non negativit", specifica che celle variabili indicanti quantit
fisiche, ad esempio prodotti, non possono essere negative.
4.2.3

Vincoli contro formule logiche

I vincoli usano la stessa sintassi delle formule logiche, ma il Risolutore li tratta in modo diverso: il
vincolo viene sempre considerato entro una tolleranza (il cui standard, definito precisione, e
0,000001). Questo significa che un vincolo quale A1>=0 potrebbe essere considerato soddisfatto (o
VERO) sebbene Al fosse -0,0000005; mentre una formula logica, in questo caso, darebbe come
risultato FALSO. Il Risolutore si comporta cosi poich i suoi calcoli complessi non possono
generare risultati perfettamente accurati quando il computer memorizza solo un numero finito di
cifre di precisione. Per la stessa ragione, il Risolutore non accetta vincoli quali Al>O, che non
sarebbe distinguibile da Al>=O.
4.2.4

Relazioni matematiche nei problemi del Risolutore

La forma matematica della relazione fra le variabili ed i risultati pu avere un grande effetto sulla
capacit del Risolutore di trovare una soluzione. Nella forma pi semplice, i risultati sono funzioni
lineari dei valori immessi. Nella rappresentazione grafica, una funzione lineare ad una variabile
una linea retta, mentre una funzione a due variabili un piano piatto. Le funzioni lineari possono
sempre essere scritte nella forma:
X=A*YI+B*Y2+C*Y3...
In questa sintassi, il risultato X; A, B e C sono costanti ed Y1, Y2 ed Y3 sono variabili, ovvero le
celle di immissione. Si noti che A, B e C potrebbero rappresentare qualsiasi calcolo complesso sul
46

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


foglio di lavoro, in quanto il calcolo non dipende da nessuna delle variabili Y1, Y2 o Y3. Poich il
Risolutore modifica solo le variabili delle celle di immissione specificate, le formule che non
dipendono dalle variabili sono costanti nei problemi del Risolutore.
Quando la cella obiettivo e tutti i vincoli sono funzioni lineari e si sceglie l'opzione Presupponi
modello lineare (tabella nelle pagine seguenti), il Risolutore pu utilizzare i metodi pi veloci ed
affidabili per trovare la soluzione. Quando non si seleziona questa opzione, il Risolutore tratta il
modello come non lineare ed usa metodi pi generali, ma pi lenti e meno affidabili, sebbene tutte le
relazioni siano effettivamente lineari.
Il Risolutore pu inoltre gestire problemi caratterizzati da relazioni non lineari fra variabili e risultati.
Una relazione non lineare una funzione che non pu essere espressa nella forma descritta sopra
o una funzione il cui grafico contiene una curva. Seguono alcuni esempi di funzioni non lineari.

Le vendite crescono, fino ad un determinato valore, quindi decrescono.

La qualit del prodotto viene generalmente misurata attraverso la varianza o la deviazione


standard, che dipende dalle differenze al quadrato rispetto alla norma.

La risposta alla pubblicit aumenta prima rapidamente, quindi pi lentamente, con la


frequenza degli avvisi.

I costi dei prodotti variano con i diversi volumi di vendita.

Alcune delle forme di espressione di relazioni non lineari sono le seguenti:


X=Yl/Y2
X=Y1^,5 (la radice quadrata di Y1)
X=A+Yl*Y2
In questo caso, il risultato X, A una costante, YI ed Y2 sono le variabili. Il Risolutore pu gestire
un'ampia variet di formule non lineari di questo tipo.
Il Risolutore ha difficolt con problemi in cui le relazioni fra variabili e costanti sono discontinue.
Quando la si rappresenta graficamente, una funzione discontinua presenta improvvisi dislivelli nei
valori. Il caso pi comune un'espressione SE di Excel. Ad esempio, il risolutore potrebbe avere
difficolt a trovare una soluzione ad un problema con un obiettivo o un vincolo del tipo seguente
=SE(Y1>;A*Y1;B*Y1)
dove Y1 una variabile del problema. Come prima, possibile usare le espressioni SE nei modelli
del Risolutore, purch la parte condizionale dell'espressione SE non dipenda da nessuna delle
variabile e sia quindi costante nel problema del Risolutore. Altre funzioni che possono causare
difficolt al Risolutore sono CERCA.VERT() e SCEGLI() ed in alcuni casi funzioni quali ASS(), INT()
ed ARROTONDA().
4.2.5

Installazione del Risolutore

Il Risolutore composto da una cartella di lavoro aggiuntiva e da una speciale DLL di Excel. Se il
Risolutore non stato installato insieme ad Excel, possibile rieseguire la procedura di
installazione in qualsiasi momento e scegliere di installare il Risolutore. Non occorre reinstallare per
intero il programma Excel.
Dopo avere installato il Risolutore, la funzione sar disponibile fra le aggiunte di Excel. Perch il
Risolutore sia pi facilmente disponibile, possibile selezionarlo come aggiunta. Affinch il
Risolutore venga caricato all'avvio di Excel, selezionarlo come aggiunta; procedere come segue.
1. Scegliere Strumenti, Aggiunte.

47

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Dalla finestra di dialogo che appare, selezionare la casella di controllo Risolutore da Aggiunte
disponibili. Se non disponibile l'opzione Risolutore, usare il pulsante Sfoglia, al fine di
selezionare il file SOLVER.XLA che generalmente si trova nella cartella
\PROGRAMMI\MICROSOFT OFFICE\OFFICE\LIBRERIA\SOLVER.
3. Cliccare su OK.
Al momento di usare il Risolutore, baster selezionare il comando Strumenti, Risolutore. L'aggiunta
si avvia e mostra la finestra di dialogo principale. Quando si sceglie il comando per la prima volta,
l'aggiunta Risolutore viene automaticamente caricata in memoria.
4.2.6

Costruzione di un modello applicativo

Il foglio di lavoro in figura 41 illustra un semplice modello creato per l'uso del Risolutore. Il modello
finalizzato ad effettuare calcoli relativi ad un programma di riciclaggio di rifiuti. Nel foglio di lavoro
sono rappresentate le informazioni relative al programma di riciclaggio, denominato Eco Rifiuti,
ideato e realizzato da un comune allo scopo di sfruttare alcune risorse esistenti per ottenere
prodotti da cui realizzare profitti.

Figura 41 - Il Risolutore usa il foglio di lavoro Eco Rifiuti per trovare la migliore combinazione di materiali in
grado di generare il pi elevato margine di profitto.

Il programma prevede la raccolta di rifiuti organici, da combinare in diversi mix con terriccio ed altri
additivi minerali, al fine di ottenere terriccio di elevata qualit. Parte del lavoro svolto da volontari; i
costi dei materiali, esclusi i costi di raccolta, sono piuttosto bassi.
Il foglio di lavoro calcola la combinazione migliore di materiali in grado di garantire il margine pi
elevato, visualizzato in cella I17. Molti problemi reali sono meno semplici di questo, tuttavia il
Risolutore si adatta molto bene ai vincoli del mondo reale, quando si tratta di determinare la
soluzione migliore, date alcune condizioni variabili.
La maggior parte del foglio di lavoro Eco Rifiuti composta da testo e valori costanti. Per costruire il
foglio di lavoro, digitare il testo come in figura 41, quindi immettere i numeri e formule descritti in
seguito.
Le variabili del modello sono Terriccio, Composto, Minerali e Pacciame, nelle colonne da C ad E. I
risultati sono Fertilizzante giardino, Terriccio da giardino, Terriccio fertilizzante e Terriccio per orti,
nelle righe dalla 5 alla 8.
Nel modello, i valori dell'intervallo C5:F5 rappresentano il mix di materiali necessario per ottenere il
prodotto Fertilizzante giardino, il cui prezzo unitario al dettaglio pari a L.105. Il Risolutore calcola la
quantit di produzione ottimale in cella G5. Calcolata la quantit di produzione, viene determinato il
48

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


valore del fatturato in cella 15, moltiplicando G5 per H5. La stessa procedura viene usata per tutti i
prodotti.
Il principale vincolo dato dalla disponibilit limitata delle materie prime. L'inventario dei materiali
disponibili, Terriccio, Composto, Minerali e Pacciame, indicato nelle celle C12:F12. Le celle
C13:F13 indicano la quantit necessaria di ogni materiale per i vari prodotti, informazione utile per
determinare la combinazione di prodotti ottimale. Il costo dei materiali usati viene calcolato
moltiplicando il costo unitario dei materiali (C16:FI6) perla quantit di materiali usata (C13:F13). Il
risultato visualizzato nelle celle C17:F17.
I ricavi totali sono calcolati in cella I15, come somma dell'intervallo I5:I8. Il costo del venduto
calcolato in cella I16, come somma dell'intervallo C17:F17. Il margine in I17 dato dai ricavi totali
meno i costi totali.
Prima di eseguire il Risolutore, salvare il foglio di lavoro su disco con il comando File, Salva con
nome.
4.2.7

Trovare la soluzione ottimale

Si supponga che per il modello descritto l'obiettivo sia trovare il risultato massimo ottenibile, in cella
I17. Questo obiettivo potrebbe espandere il riciclaggio, incentivando il programma Eco Rifiuti e
riducendo le tasse. Le variabili da modificare per raggiungere l'obiettivo di reddito prefissato sono le
quantit da produrre. Come prima applicazione, si ipotizzi che le quantit da produrre possano
essere determinate liberamente, poich non esistono vincoli sulle quantit vendibili. In seguito verr
considerato il caso in cui le quantit vendibili sono limitate. Le variabili che il Risolutore deve
determinare si trovano nell'intervallo G5:G8, ed in figura 41 sono pari a zero. Per limitare i tempi di
ricalcolo, preferibile iniziare con variabili il pi possibile vicine alla soluzione.
Il limite imposto che le materie prime da usare non possano eccedere la quantit disponibile.
Quindi, i totali calcolati nelle celle C13:F13 non possono superare i valori corrispondenti in C12:F12.
Inoltre, i valori in G5:G8 devono essere maggiori di 0, poich non ammessa una produzione
negativa.
Una volta compilata, la finestra di dialogo Parametri del Risolutore si presenta come in figura 42.

Figura 42 - La finestra di dialogo Parametri del Risolutore con le informazioni utili per la massimizzazione del
margine in cella I17, dati i vincoli di disponibilit di materie prime

Per trovare la soluzione ottimale al problema, procedere come segue.


1. Selezionare la cella da ottimizzare; nell'esempio la cella I17.

49

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Scegliere Strumenti, Risolutore. Il Risolutore viene caricato (se non stato caricato all'avvio
di Excel) e si apre la finestra di dialogo Parametri del Risolutore vuota.
3. Nella casella di testo Imposta cella obiettivo, indicare il riferimento della cella da ottimizzare.
4. Definire il tipo di relazione tra la cella obiettivo ed il valore della soluzione, selezionando uno
dei pulsanti seguenti nella sezione Uguale a.
Max

Trova il risultato massimo per la cella obiettivo.

Min

Trova il risultato minimo per la cella obiettivo.

Valore di

Trova, per le variabili, i valori che permettono alla cella obiettivo di generare il
numero digitato nella casella di testo Valore di. Per questo esempio,
selezionare Max.

5. Cliccare nella casella di testo Cambiando le celle, quindi selezionare le celle che il
Risolutore dovr variare nel tentativo di trovare la soluzione migliore. Per questo esempio, le
celle sono $G$5:$G$8. possibile digitare il riferimento, selezionare le celle dalla tastiera o
trascinare sulle celle. Se le celle non sono visibili, cliccare sul pulsante Riduci finestra o
scorrere il foglio di lavoro.
6. Cliccare sul pulsante Aggiungi per aggiungere i vincoli alla casella Vincoli. Si apre la finestra
di dialogo Aggiungi vincolo (figura 43).

Figura 43 - La finestra di dialogo Aggiungi vincolo va usata per ognuno dei vincoli impostati.

7. Immettere il primo vincolo. Nell'applicazione proposta, i valori contenuti nell'intervallo


$G$5:$G$8 devono essere maggiori di 0, poich le quantit da produrre devono sempre
essere positive o pari a zero. Nella casella di testo Riferimento, immettere $G$5:$G$8.
possibile digitare il riferimento, selezionare le celle dalla tastiera o trascinare sulle celle. Se
le celle non sono visibili, cliccare sul pulsante Riduci finestra o scorrere il foglio di lavoro.
Premere Tab o cliccare sulla freccia rivolta in basso, per aprire l'elenco degli operatori. Per
questo esempio, selezionare l'operatore >=. Nella casella di testo Vincolo, immettere 0. I
vincoli sulle celle di immissioni quali G5:G8>=0 sono comuni a molti problemi del Risolutore.
Excel 97 prevede una scelta rapida per definirli, attraverso la casella di controllo Presupponi
non negativo, disponibile dalla finestra di dialogo Opzioni del Risolutore.
8. Cliccare sul pulsante Aggiungi, per poter aggiungere il secondo vincolo. Nell'applicazione
proposta, il secondo vincolo $C$12:$F$12>=$C$13:$F$13, il quale indica che le materie
prime usate devono essere minori o uguali a quelle disponibili.
9. Cliccare su OK. Si apre la finestra di dialogo Parametri del Risolutore, completa di tutte le
informazioni necessarie per risolvere il problema (figura 42).
10. Cliccare sul pulsante Risolvi per eseguire il Risolutore e trovare la combinazione ottimale di
prodotti, ovvero quella in grado di generare il margine massimo. Quando il Risolutore trova
una soluzione, si apre la finestra di dialogo Risultato del Risolutore di figura 44.

50

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 44 - La finestra di dialogo Risultato dei Risolutore, da cui scegliere le opzioni per l'uso della soluzione
calcolata

11. Selezionare il pulsante Mantieni la soluzione del Risolutore, per mantenere la soluzione
visualizzata sul foglio di lavoro. Selezionare l'opzione Ripristina i valori originali, per
ripristinare i valori originali sul foglio di lavoro. Per questa applicazione, selezionare Mantieni
la soluzione del Risolutore e cliccare su OK. Nella finestra di dialogo inoltre possibile
scegliere il tipo di rapporto da creare, come descritto pi avanti nella sezione dedicata alla
stampa dei rapporti del Risolutore.
Il Risolutore indica che il margine massimo si ottiene producendo 11 confezioni di Fertilizzante
giardino, 49 di Terriccio da giardino, nessuna di Terriccio fertilizzante e 21 di Terriccio per orti. Con
questo mix di produzione, il margine ottenuto pari a L.4.425,89.
possibile interrompere o sospendere un calcolo particolarmente lungo dei Risolutore, premendo il
tasto Esc.
Il Risolutore memorizza i parametri della finestra di dialogo con il foglio di lavoro contenente il
problema, sotto forma di formule denominate. Quindi, con alcuni semplici interventi, possibile
rieseguire il Risolutore con i vincoli modificati. Dopo avere calcolato una soluzione, possibile
inoltre salvare i riferimenti usati nella casella Cambiando le celle, al fine di usarli nella casella
corrispondente di Gestione scenari. Se si desidera usare Gestione scenari con la soluzione trovata
dal Risolutore, cliccare sul pulsante Salva Scenario, nella finestra di dialogo Risultato del Risolutore
di figura 44. Quando si apre la finestra di dialogo Salva scenario, digitare il nome desiderato.
Questo nome viene associato alle variabili determinate dal Risolutore per le celle elencate nella
casella di testo Cambiando le celle. Per memorizzare le impostazioni senza eseguire il Risolutore,
immetterle come descritto nelle precedenti istruzioni e quindi cliccare sul pulsante Chiudi.
4.2.8

Modifica della quantit disponibile di una risorsa

Nelle situazioni reali, le quantit disponibili di risorse spesso variano ed il Risolutore pu tenere
conto di queste variazioni.
Si supponga che sia possibile ottenere 100 Kg di minerali per L.10, il costo del gas necessario per il
trasporto. Questo acquisto causa una leggera variazione nel prezzo medio del minerale ed
necessario decidere se esso convenga, in termini di margine ottenuto, quindi occorre effettuare
un'analisi di convenienza comparata.
Per calcolare il margine ottenuto considerando l'acquisto degli ulteriori 100 Kg di minerali,
modificare la quantit disponibile di minerale in cella E12, da 3.500 a 3.600; immettere zeri
nell'intervallo G5:G8 e rieseguire il Risolutore con le stesse impostazioni del problema precedente.
Secondo i calcoli del Risolutore, aggiungendo 100 Kg di minerali, il margine passa da L.4.425,89 a
L.4.464,24. Il costo dei minerali, L.10, contribuisce per L.38,35 al margine, quindi l'acquisto senza
dubbio conveniente.

51

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Si potrebbe rispondere a questa domanda senza ricorrere al Risolutore, se si fosse creato un
rapporto di sensibilit nella precedente esecuzione. Fra le altre cose, il rapporto di sensibilit
mostra l'effetto marginale di piccoli cambiamenti nei vincoli. Questi valori sono definiti valori duplici,
prezzi ombra o (per i problemi non lineari) moltiplicatori di Lagrange. In questo caso, il valore
duplice riportato per il vincolo sui Minerali 0,3835.
4.2.9

Modifica dei vincoli

Nel mondo reale, si verificano frequenti cambiamenti nei vincoli di produzione ed il Risolutore in
grado di ricalcolare le soluzioni al variare dei vincoli.
Si supponga che vengano richieste 10 confezioni del prodotto Terriccio fertilizzante. Poich
secondo il piano di produzione formulato all'inizio, al fine di ottenete il margine massimo non
andrebbe prodotta alcuna confezione del prodotto in questione, si desidera determinare l'effetto sul
margine dato dalla produzione delle 10 confezioni.
Scegliere il comando Strumenti, Risolutore per aprire la finestra di dialogo Parametri del Risolutore;
aggiungere il nuovo vincolo e quindi rieseguire il Risolutore. Per aggiungere il vincolo, procedere
come segue.
1. Cliccare sul pulsante Aggiungi e quindi digitare il vincolo seguente.
$G$7>=10
L'istruzione indica che devono essere prodotte almeno 10 confezioni del prodotto
Terriccio fertilizzante. Cliccare su OK.
2. Cliccare sul pulsante Risolvi per calcolare il nuovo margine.
Il nuovo margine pari a L.4.039,10, valore inferiore di L.325,14 al margine ottenuto con l'aggiunta
dei 100 Kg di minerali. Per soddisfare le richieste del cliente, si ottiene una perdita a breve, tuttavia
la scelta potrebbe rivelarsi proficua nel lungo periodo.
possibile eliminare i vincoli impostati selezionandoli e cliccando sul pulsante Elimina. Cliccare sul
pulsante Reimposta per cancellare tutti i parametri nella finestra di dialogo Parametri del Risolutore.
4.2.10 Impostazione di vincoli con numeri interi
Secondo il valore in cella G5, il Risolutore consiglia di produrre una confezione di Fertilizzante
giardino. Selezionando la cella G5 ed osservando la barra della formula, si nota che il Risolutore
calcola come valore ottimale il numero 0,879608026131586. Il valore calcolato viene arrotondato
per la visualizzazione all'intero pi vicino, a causa della formattazione della cella; tuttavia la formula
Margine in cella I17 usa il valore calcolato, quindi determina un risultato che considera la produzione
e la vendita di una frazione e non dell'intera confezione. Affinch il Risolutore usi, per le confezioni
da produrre, soli valori interi, scegliere il comando Strumenti, Risolutore e, dalla finestra di dialogo
Parametri del Risolutore, aggiungere un vincolo intero e rieseguire il Risolutore. Per aggiungere un
vincolo intero, procedere come segue.
1. Nella finestra di dialogo Parametri del Risolutore, cliccare sul pulsante Aggiungi.
2. Selezionare le celle $G$5:$G$8.
3. Selezionare l'opzione int dalla casella di riepilogo a discesa contenente gli operatori di
comparazione. Il contenuto della casella Vincolo diventa "intero".
4. Cliccare su OK. Il vincolo $G$5:$G$8=intero compare nella casella di riepilogo Vincoli.
5. Cliccare sul pulsante Risolvi. Il Risolutore calcola solo numeri interi per le confezioni da
produrre. Si tenga presente che i vincoli interi rallentano notevolmente i calcoli.
52

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Il nuovo margine pari a L.4.023,11 e la produzione consigliata di Fertilizzante giardino zero; il
valore inferiore a prima, ma pi preciso e realistico, poich tutte le quantit sono espresse
come numero intero. Si noti che il Risolutore non arrotonda semplicemente la soluzione precedente
all'intero pi vicino. In questo problema, cosi facendo si eccederebbero i vincoli. In altri problemi,
altre combinazioni di valori interi per le variabili potrebbero essere preferibili al semplice
arrotondamento. Il margine inferiore a prima: i vincoli addizionali, inclusi i vincoli interi, possono
solo peggiorare l'obiettivo o lasciarlo invariato.
I vincoli interi presentano molti utilizzi, che vanno ben oltre questo esempio. Se si impone un vincolo
inferiore pari a 0, un vincolo superiore pari ad 1 ed un vincolo intero sulla stessa cella variabile, la
cella deve essere 0 o 1 come soluzione ottimale. Una tale variabile pu rappresentare una
decisione del tipo "si /no", quale avviare una macchina o costruire un nuovo impianto che pu avere
costi fissi associati. Sebbene il Risolutore non possa gestire direttamente problemi con funzioni
discontinue (come SE() e CERCA.VERT()), come detto sopra, lo stesso effetto spesso si pu
ottenere usando vincoli interi, che il Risolutore riesce a gestire.
Excel 97 prevede una scelta ulteriore nella casella di riepilogo dei simboli di confronto. Si tratta della
scelta per i valori binari, che visualizza Binario nella casella Vincolo e permette di combinare un
vincolo >= 0, un vincolo <= 1 ed un vincolo "int sulle stesse celle variabili. Questa viene spesso
definita variabile "0~1" o "intera binaria".
Si tenga presente tuttavia che i vincoli interi possono accrescere notevolmente i tempi di calcolo.
Esistono alcuni noti problemi con solo alcune centinaia di variabili intere, cosi difficili da non essere
mai stati risolti in modo ottimale, anche dai computer pi veloci.
4.2.11 Variare i parametri operativi del Risolutore
possibile intervenire in vari modi sulla modalit di lavoro usata dal Risolutore, attraverso la
finestra di dialogo Opzioni del Risolutore (figura 45), visualizzata scegliendo il pulsante Opzioni
dalla finestra di dialogo Parametri del Risolutore. I parametri standard sono adatti per la maggior
parte dei problemi da risolvere. In tabella sono elencate e descritte le altre opzioni.

Figura 45 - La finestra di dialogo Opzioni dei Risolutore permette di controllare in vari modi la modalit di lavoro
dei Risolutore per il calcolo delle soluzioni

53

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Opzione

Effetto

Tempo massimo

Specifica tempo massimo, in secondi che il


Risolutore pu impiegare per trovare una soluzione.

Iterazioni

Specifica il numero dei ricalcoli eseguiti da


Risolutore per trovare una soluzione.

Approssimazione

Specifica lapprossimazione che deve essere


raggiunta tra due soluzioni, affinch venga dichiarata
la soluzione ottimale.

Tolleranza

Specifica, in percentuale, lapprossimazione della


soluzione calcolata, rispetto alla soluzione migliore,
quando di lavora con i numeri interi. Se i problemi
sono complessi, impostando una tolleranza pi alta,
il calcolo diventa pi veloce lopzione va usata solo
con i modelli basati sui numeri interi.

Convergenza

Specifica quanto devono avvicinarsi il valore


obiettivo e le soluzioni delle prove successive,
affinch il Risolutore visualizzi il messaggio di
convergenza alla soluzione corrente. Da usare solo
con i problemi non lineari, quando non attivata la
casella Presupponi modello lineare.

Presupponi modello lineare

Attivando questa opzione, il Risolutore usa un


metodo di soluzione lineare e compare un avviso se
il modello non di tipo lineare.

Presupponi non negativo

Specifica che alle celle variabili che non presentano


vincoli espliciti > = nella casella Vincolo, deve
essere attribuito un limite interiore presunto > = 0.

Usa scala automatica

Attivando questa opzione, il Risolutore imposta


alcune delle celle variabili a valori molto pi grandi o
pi piccoli di altri.

Mostra il risultato delle iterazioni

Attivando questa opzione, vengono visualizzate le


soluzioni interne die calcolate ed possibile
scegliere di continuare o smettere.

Stima

Metodi di soluzione ulteriori sono Tangente e


Quadratica. Usare lopzione Quadratica si il foglio di
lavoro contiene formule complesse non lineari.

Derivate

Specificare il metodo di derivazione parziale, usando


le opzioni Diretta o Centrale.
La derivazione
centrale pu richiedere pi tempo ma calcola
soluzioni migliori,

Cerca

Specifica il metodo di ricerca Newton o Gradienti


coniugati.

Fare attenzione nell'uso di una Approssimazione molto pi piccola dello standard, polche la
precisione finita dell'aritmetica dei computer virtualmente assicura che i valori calcolati dal
Risolutore differiranno dai valori attesi o "veri" di un piccolo importo. Dall'altro lato, l'impostazione
54

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


della precisione ad un valore molto pi grande indurrebbe i vincoli ad essere soddisfatti troppo
facilmente. Se i vincoli non sono soddisfatti poich i valori da calcolare sono molto grandi, ad
esempio miliardi, considerare la selezione della casella Usa scala automatica, anzich alterare la
precisione.
In Excel 97, la funzione Usa scala automatica funziona sia per i problemi lineari che non lineari.
Nelle versioni precedenti di Excel, questa opzione era efficace solo per i problemi non lineari.
Grazie ad un perfezionamento collegato del programma, anche i test che il Risolutore usa per
verificare che un modello sia lineare usano la scala automatica. Le versioni precedenti del
Risolutore, in alcuni casi, hanno identificato modelli lineari contenenti valori con ordini di grandezza
molto diversi come non lineari; questo problema non dovrebbe verificarsi con la nuova versione del
Risolutore.
4.2.12 Stampa dei rapporti del Risolutore
Il Risolutore genera rapporti che riassumono i risultati delle soluzioni calcolate. Questi rapporti
permettono di confrontare l'effetto ottenuto sui risultati con la variazione dei vincoli e dei valori di
base.
Il Risolutore pu generare tre tipi di rapporti: Valori, Sensibilit e Limiti. Per creare un rapporto dopo
avere risolto un modello, selezionare uno o pi tipi dalla casella di riepilogo Rapporti, nella finestra
Risultato del Risolutore di figura 44. Scegliere il pulsante di guida, per avere informazioni su ci che
contenuto in ogni tipo di rapporto. Per selezionare pi tipi di rapporti dall'elenco, cliccare sul
primo, tenere premuto Ctrl e cliccare sugli altri. Ciascun rapporto viene immesso in un proprio
foglio. Selezionare la scheda del foglio o premere Ctrl+PagGi e Ctrl+PagSu per attivare in
sequenza i rapporti ed il foglio di dati originale.
4.2.13 Salvataggio e caricamento dei dati del Risolutore
Il Risolutore salva sul foglio di lavoro le ultime impostazioni usate per risolvere un problema (le
impostazioni attive nella finestra di dialogo Parametri del Risolutore quando si sceglie OK). Le
ultime impostazioni usate vengono memorizzate in formule denominate e quando si apre in seguito
quel foglio di lavoro e si esegue il Risolutore, compare la finestra di dialogo Parametri del Risolutore
nella forma in cui la si era usata la volta precedente. Ogni foglio della cartella di lavoro mantiene gli
ultimi parametri del Risolutore usati su quel foglio.
In alcuni casi, utile memorizzare impostazioni predefinite per la finestra di dialogo Parametri del
Risolutore e si pu procedere immettendo i singoli gruppi di impostazioni nelle celle del foglio di
lavoro, per poterle caricare velocemente all'occorrenza.
possibile salvare e caricare pi modelli (gruppi di impostazioni) del Risolutore, cliccando sul
pulsante Opzioni dalla finestra di dialogo Parametri del Risolutore.
Per salvare le impostazioni del Risolutore, procedere come segue.
1. Immettere le impostazioni da salvare nelle finestre di dialogo Parametri del Risolutore ed
Opzioni del Risolutore.
2. Se la finestra di dialogo Opzioni dei Risolutore non visualizzata, scegliere Opzioni.
3. Selezionare Salva modello.
4. Dalla finestra di dialogo Salva modello, selezionare un intervallo di celle sul foglio di lavoro
uguale al numero di vincoli pi tre celle ulteriori. L'intervallo pu presentare qualsiasi forma,
pu essere inoltre pi grande del dovuto. Excel avvisa l'utente se l'intervallo non
abbastanza grande. Se si seleziona una sola cella, Excel estende l'intervallo verso il basso,
sul numero di celle richiesto.
55

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5. Cliccare su OK per accettare l'intervallo presente nella finestra di dialogo e cliccare di nuovo
su OK quando ricompare la finestra di dialogo Opzioni del Risolutore.
6. Dalla finestra di dialogo Parametri del risolutore, cliccare sul pulsante Chiudi per ritornare al
foglio di lavoro.
L'intervallo viene riempito con le impostazioni della finestra di dialogo Parametri del Risolutore. In
figura 46 compare un esempio dei parametri salvati.

Figura 46 - Le impostazioni della finestra di dialogo Parametri del Risolutore possono essere salvate come
valori in cella per facilitare l'uso delle impostazioni in futuro

Quando si usa la procedura descritta per salvare il modello, vengono salvate tutte le informazioni
necessarie affinch il Risolutore possa funzionare, le quali permettono di attivare prospettive
diverse di analisi dei problema. Quando si esegue il comando Salva Scenario al termine di un
calcolo dei Risolutore, si salvano i soli valori per le celle variabili.
Per caricare le impostazioni al fine di rieseguire un modello del Risolutore salvato, procedere come
segue.
1. Scegliere Strumenti, Risolutore.
2. Cliccare sul pulsante Opzioni.
3. Scegliere Carica modello.
4. Selezionare l'intervallo contenente il modello e cliccare su OK. Se stata modificata una
qualsiasi impostazione, compare un messaggio di avviso. Cliccare su OK.
5. Quando ricompare la finestra di dialogo Parametri del Risolutore, cliccare su OK.
6. Cliccare sul pulsante Risolvi per eseguire il Risolutore con il modello caricato; oppure
cliccare sul pulsante Chiudi per effettuare l'analisi in seguito.

56

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5

Proteggere le cartelle e i fogli di lavoro

Dopo avere fatto un grande sforzo per creare un foglio o una cartella di lavoro complicata o piena di
formule complesse, sicuramente vorrete evitare che altre persone modifichino o eliminino
inavvertitamente le formule. Anche nel caso di un foglio di lavoro con oggetti grafici complessi o con
un grafico importante, vorrete evitare che altre persone aprano la cartella di lavoro e modifichino gli
oggetti. In Excel sono inclusi alcuni blocchi che aiutano a proteggere le cartelle di lavoro intere o i
singoli fogli in una cartella.
Potete proteggere una cartella di lavoro per evitare che vengano eseguite su di essa le seguenti
operazioni:
eliminare o inserire fogli di lavoro;
modificare il nome del fogli di lavoro;
copiare o spostare fogli di lavoro;
nascondere o mostrare fogli di lavoro;
modificare le dimensioni o la forma delle finestre dei fogli di lavoro;
dividere o unire pannelli;
bloccare o sbloccare pannelli.
Potete proteggere un foglio di lavoro se desiderate che non vengano apportate modifiche ai
seguenti elementi:
contenuto delle celle;
grafici;
oggetti grafici;
definizioni di scenari.
Se desiderate condividere una cartella di lavoro e assicurarvi allo stesso tempo che vengano
registrate le modifiche apportate dagli altri utenti, potete. proteggere una cartella di lavoro condivisa,
facendo in modo che nessuno possa annullare il rilevamento delle modifiche.
5.1

PROTEGGERE UNA CARTELLA DI LAVORO

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Proteggi
cartella di lavoro.
2. Nella finestra di dialogo Proteggi cartella di lavoro, selezionate la casella di controllo
Struttura o Finestre o entrambe. A meno che non sia assolutamente necessario, non
consigliabile utilizzare una password, pertanto lasciate vuota la casella Password (in questo
modo potrete rimuovere la protezione dalla cartella di lavoro per apportare modifiche molto
pi velocemente).
3. Scegliete OK.
Per rimuovere la protezione da una cartella di lavoro, in modo che sia possibile apportare modifiche
alla disposizione dei fogli di lavoro o delle finestre, nel menu Strumenti posizionate il puntatore del
mouse su Protezione e scegliete Rimuovi protez. cartella di lavoro. Se avete protetto la cartella di
lavoro con una password, dovete immetterla e scegliere OK.
Chiunque conosca Excel pu rimuovere la protezione da una cartella di lavoro, pertanto, per
proteggere realmente una cartella, dovete digitare una password nella casella Password. Ricordate
che nella password viene fatta distinzione tra lettere maiuscole e minuscole e che, se la
dimenticate, non potrete pi aprire la cartella di lavoro.

57

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5.1.1

Proteggere un foglio di lavoro

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Proteggi
foglio.
2. Nella finestra di dialogo Proteggi foglio, selezionate la casella di controllo Contenuto, Oggetti
o Scenari. Selezionando Oggetti si proteggono gli oggetti grafici, inclusi i grafici.
Selezionando Scenari si proteggono le definizioni degli scenari; gli scenari possono essere
visualizzati, ma non modificati. Selezionando Contenuto si protegge il contenuto delle celle
bloccate, in modo che non possano essere modificate. In base alle impostazioni predefinite,
tutte le celle nei fogli di lavoro sono bloccate, pertanto tutte le celle vengono protette quando
si protegge un foglio di lavoro. Se desiderate proteggere le formule, permettendo agli utenti
di immettere i valori utilizzati da queste, dovete sbloccare le celle nelle quali si possono
immettere i valori e proteggere il foglio di lavoro. Come con la protezione delle cartelle di
lavoro, a meno che non sia assolutamente necessario, non consigliabile utilizzare una
password, pertanto lasciate vuota la casella Password (in questo modo potrete rimuovere la
protezione dal foglio di lavoro per apportare modifiche molto pi velocemente).
3. Scegliete OK.
Per rimuovere la protezione da un foglio di lavoro e apportare modifiche alle formule, nel menu
Strumenti posizionate il puntatore del mouse su Protezione e scegliete Rimuovi protezione foglio.
Se avete protetto il foglio di lavoro con una password, dovete immettere la password e scegliere
OK.
5.1.2

Sbloccare celle in un foglio di lavoro prima di proteggerle

1. Selezionate le celle specifiche che desiderate sbloccare (in modo che sia possibile
modificarne i valori). In base alle impostazioni predefinite, tutte le celle in un foglio di lavoro
sono bloccate.
2. Scegliete Formato e Celle.
3. Nella scheda Protezione della finestra di dialogo Formato Celle, deselezionate la casella di
controllo Bloccata.
4. Scegliete OK.
Ora potete proteggere il foglio di lavoro per impedire che vengano apportate modifiche alle celle
bloccate, permettendo tuttavia di immettere dati in quelle non bloccate.
Nella scheda Protezione delta finestra di dialogo Formato celle vi una casella di controllo che
permette di "nascondere" le celle. In realt, le celle non sono nascoste, in quanto sono visibili, ma
sono nascoste le formule che contengono. Se nascondete una cella che contiene una formula e
quindi selezionate la cella, nella barra della Formula non appare niente. Potete usare questa
funzionalit, per esempio, per creare una formula complessa che non volete mostrare ad altri. Per
farlo, nascondete e bloccate la cella e proteggete il foglio di lavoro e nessuno potr vedere la
formula.
5.1.3

Proteggere il rilevamento delle modifiche in una cartella di lavoro condivisa

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione.


2. Scegliete Proteggi e condividi cartella di lavoro.
3. Nella finestra di dialogo Proteggi cartella condivisa, selezionate la casella di controllo
Condividi con rilevamento modifiche, quindi scegliete OK. La rimozione della protezione e
quella della condivisione dalla cartella di lavoro sono due passaggi separati. Innanzitutto,
scegliete Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Rimuovi
protezione cartella condivisa; quindi, scegliete Strumenti e Condividi aree di lavoro,
deselezionate la casella di controllo Consenti modifiche e scegliete OK.

58

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Personalizzazione dei grafici

6.1

M ODIFICARE I COLORI E LE LINEE E I CARATTERI DI UN GRAFICO

Esattamente come i fogli di lavoro, anche i grafici possono limitarsi a rappresentare in maniera
molto spartana oppure essere rielaborati fino ad assumere laspetto desiderate.
Quando si crea un nuovo grafico, Excel usa le impostazioni predefinite per i colori, per i caratteri e
per le altre caratteristiche grafiche, pertanto il grafico si presenta come qualsiasi altro grafico creato
con Excel 2000. Tuttavia, dopo averlo creato, avete a disposizione innumerevoli possibilit per
modificarne laspetto.
Una volta raggiunto il risultato estetico desiderate, potete salvare lintera serie celle impostazioni di
formattazione per riutilizzarle come formate personalizzato.
Per mantenere viva lattenzione del pubblico durante una presentazione, cercate di usare nei grafici
una formattazione accattivante per i colori, le linee e i caratteri; per ottenere omogeneit e
professionalit in una presentazione che include diversi grafici, cercate di mantenere uno stile
uniforme usando la stessa formattazione.
Per modificare il colore, il tratto, il tipo di carattere e le altre caratteristiche di un elemento, dovete
selezionare loggetto e aprire la finestra di dialogo Formato. A volte pu risultare complicato
selezionare un elemento, per esempio perch troppo piccolo o nascosto da altri; e per questo
che sono disponibili pi modi per selezionare gli oggetti del grafico da elaborare.
6.1.1

Modificare la formattazione dei colori, delle linee e dei caratteri in un grafico

1. Per selezionare lelemento desiderato potete:

fare clic su di esso con il mouse;

nella casella Oggetti grafico sulla barra degli strumenti Grafico, fare clic sulla freccia
e selezionare il nome dell'oggetto nellelenco;

selezionare un qualsiasi elemento, quindi muovervi con i tasti freccia a destra e a


sinistra per spostarvi sugli altri oggetti.

2. Per aprire la finestra di dialogo Formato relativa agli elementi selezionati potete:

fare doppio clic su uno degli elementi selezionati;

fare clic sul pulsante Formato sulla barra degli strumenti Grafico (il nome del
pulsante sar Formato <oggetto>, a seconda dell'oggetto selezionato);

fare clic con il pulsante destro del mouse sullelemento, quindi scegliere Formato (il
nome del comando sar Formato <oggetto>, a seconda dell'oggetto selezionato).

3. Selezionate le opzioni desiderate nella finestra di dialogo Formato.


4. Scegliete OK.
Il Per cambiare rapidamente il colore, selezionate I'elemento, quindi usate il pulsante Colore
riempimento o Colore carattere sulla barra degli strumenti Formattazione. Le opzioni che possono
essere selezionate con questi pulsanti sono limitate in confronto a quelle offerte dalla finestra di
dialogo, ma questo metodo molto pi veloce.

59

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


6.2

ELIMINARE UN ELEMENTO DI UN GRAFICO

Potete eliminare da un grafico qualsiasi elemento: singole serie, elementi aggiunti


successivamente (per esempio una linea di tendenza), la legenda, la tabella del dati, gli assi e le
linee della griglia. Potete cancellare qualsiasi oggetto, in modo da lasciare esclusivamente gli
elementi che desiderate visualizzare.
6.2.1

Eliminare un elemento di un grafico

1. Selezionate lelemento.
2. Premete Canc.
Se cambiate idea dopo avere cancellato un elemento, potete fare clic sul pulsante Annulla sulla
barra degli strumenti Standard per ripristinarlo.
6.3

M ODIFICARE LA SCALA DEGLI ASSI

Modificando la scala di un asse del grafico, avete la possibilit di influenzare lopinione del pubblico.
Per esempio, immaginate che un impianto chimico sia stato costruito ai margini di un bosco e che
sia in corso una discussione sugli effetti che lo stabilimento avr sulla vita degli alberi. Voi avete
misurato il numero di alberi per ettaro in quattro settori della foresta e il risultato sempre tra 100 e
200.
Se volete convincere il pubblico che tra i settori non esistono differenze sostanziali, potete mostrare
i dati in una scala da 0 a 200. Per convincere gli interlocutori che nel settore Quad2 vicino
all'impianto chimico si registrano dei grossi rischi, potete visualizzare i dati usando una scala molto
pi ridotta, che varia dal valore minimo a quello massimo. I dati sono gli stessi e possono essere
presentati in un modo o nell'altro: quello che cambia la percezione che ne ricava il pubblico.
6.3.1

Modificare la scala di un asse di un grafico

1. Selezionate lasse.
2. Fate clic sul pulsante Formato asse che si trova sulla barra degli strumenti Grafico. Viene
aperta la finestra di dialogo Formato asse.
3. Nella casella Valore massimo della scheda Scala, digitate il valore massimo da visualizzare
nella scala personalizzata.
4. Nella casella Valore minimo, digitate invece il valore minimo da visualizzare.
6.4

M ODIFICARE L'ORDINE DELLE SERIE

Quando create un grafico, le serie di dati vengono rappresentate nell'ordine in cui Excel le trova
all'interno dell'intervallo di origine, ma questo non assolutamente un vincolo. Potete decidere di
modificare la sequenza delle serie, specialmente se avete realizzato un grafico 3D, in cui eventuali
serie con valori troppo alti in primo piano possono nascondere serie con colonne pi basse poste in
secondo piano
6.4.1

Modificare l'ordine delle serie in un grafico

1. Fate doppio clic su una serie qualsiasi all'interno del grafico. Viene aperta la finestra di
dialogo Formato serie dati.
2. Selezionate la scheda Ordine delle serie.

60

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


3. Modificate l'ordine delle serie: selezionate il nome di una serie, quindi scegliete Sposta in
alto o Sposta in basso.
4. Al termine, scegliete OK.
Modificando l'ordine delle serie, il grafico pu diventare molto pi leggibile (potete modificare l'ordine
delle serie anche nei grafici bidimensionali).
I grafici 3D, in genere, hanno altezza e larghezza uguali, ma solitamente si preferisce modificare
quest'impostazione.
6.5

M ODIFICARE LA PROSPETTIVA DI UN GRAFICO 3D

Un grafico tridimensionale pu risultare estremamente efficace, ma a volte pu essere difficile


riconoscere tutti i valori, perch alcuni indicatori possono nasconderne altri.
Per rendere visibili i valori nascosti potete notare il grafico 3D su tutti e tre gli assi. Per ruotare
velocemente basta trascinare uno degli angoli dell'area del tracciato; per una maggiore precisione
potete utilizzare una finestra di dialogo in quanto questa consente un controllo pi accurato della
rotazione. I grafici 3D presentano alcuni elementi che mancano in quelli 2D: i concetti di parete e di
base. Pensate al grafico come a una scatola alla quale sono stati tagliati due lati: le pareti sono i lati
rimasti, mentre la base larea che si trova sotto i valori. Se fate clic sulle pareti o sulla base, su
ogni angolo vengono visualizzati alcuni quadratini che potete usare per ruotare lintero grafico in
qualsiasi direzione.
6.5.1

Modificare la prospettiva di un grafico 3D con il trascinamento

1. Selezionate le pareti o la base del grafico.


Su ogni angolo vengono visualizzati alcuni quadratini.
2. Trascinate uno degli angoli per ruotare il grafico Per avere un controllo pi precise del
trascinamento:

6.5.2

trascinate uno degli angoli in primo piano della base;


tenete premuto il tasto Ctrl durante il trascinamento per visualizzare la struttura degli
indicatori.

Modificare la prospettiva utilizzando una finestra di dialogo

Per modificare la prospettiva trascinando uno degli angoli del grafico necessaria un po' di pratica;
di seguito descritta una tecnica per la rotazione che garantisce un controllo pi preciso sulla
prospettiva del grafico.
6.5.3

Modificare la prospettiva utilizzando una finestra di dialogo

1. Fate clic con il pulsante destro del mouse sull'area del grafico o del tracciato.
2. Scegliete Visualizzazione 3D. Si apre la finestra di dialogo Visualizzazione 3D.
3. Ruotate il grafico attorno a uno dei tre assi (Elevazione, Rotazione o Prospettiva) facendo
clic sui relativi pulsanti.
4. Al termine, scegliete OK.

61

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Dipartimento del Tesoro

EXCEL 2000
Professionale

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


SOMMARIO
1. LE TABELLE PIVOT: TECNICHE DI BASE .........................................................................3
1.1 USO DELLE TABELLE PIVOT ..........................................................................................3
1.2 LE TABELLE PIVOT .....................................................................................................5
1.3 CREAZIONE DI UNA TABELLA PIVOT ...............................................................................5
1.4 MODIFICA DELLE TABELLE PIVOT ................................................................................ 10
1.5 AGGIORNAMENTO DELLE TABELLE PIVOT ...................................................................... 10
1.6
SCELTA DELL'ORIGINE DEI DATI................................................................................... 11
1.7 USO DI UN ELENCO O DATABASE DI UN'ALTRA CARTELLA DI LAVORO ................................. 11
1.8 FILTRO DEI DATI ATTRAVERSO I CAMPI PAGINA ............................................................. 12
1.9 CONSOLIDAMENTO DEI DATI ATTRAVERSO UNA TABELLA PIVOT ........................................ 13
1.10 USO DI PI CAMPI DATI ............................................................................................. 16
1.11 CREAZIONE DI UN GRAFICO DA UNA TABELLA PIVOT ........................................................ 17
1.12 SALVATAGGIO DEI FILE CONTENENTI TABELLE PIVOT ...................................................... 18
2.
LE TABELLE PIVOT: TECNICHE AVANZATE............................................................... 19
2.1 AGGIUNTA E RIMOZIONE DEI DATI................................................................................. 19
2.2 RIORGANIZZAZIONE DI UNA TABELLA PIVOT .................................................................. 21
2.3 USO DI ALTRE FUNZIONI PER L'ANALISI DEI DATI ............................................................. 31
2.4 FORMATTAZIONE DELLE TABELLE PIVOT ...................................................................... 35
3. FILTRAGGI SUI DATI .................................................................................................. 37
3.1 CHE COS UN DATABASE .......................................................................................... 37
4. IL RISOLUTORE.......................................................................................................... 45
4.1 QUALE STRUMENTO USARE ........................................................................................ 45
4.2 USO DELLA FUNZIONE RISOLUTORE ............................................................................. 45
5. PROTEGGERE LE CARTELLE E I FOGLI DI LAVORO................................................... 57
5.1 PROTEGGERE UNA CARTELLA DI LAVORO ..................................................................... 57
6. PERSONALIZZAZIONE DEI GRAFICI ............................................................................ 59
6.1 MODIFICARE I COLORI E LE LINEE E I CARATTERI DI UN GRAFICO......................................... 59
6.2 ELIMINARE UN ELEMENTO DI UN GRAFICO ...................................................................... 60
6.3 MODIFICARE LA SCALA DEGLI ASSI ............................................................................. 60
6.4 MODIFICARE L'ORDINE DELLE SERIE.............................................................................. 60
6.5
MODIFICARE LA PROSPETTIVA DI UN GRAFICO 3D........................................................ 61

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Le tabelle pivot: tecniche di base

Le tabelle pivot permettono di analizzare i dati contenuti in elenchi e tabelle ed offrono strumenti di
analisi flessibili ed intuitivi.
Le tabelle pivot non si limitano semplicemente a raggruppare e riassumere i dati, ma aggiungono
un'ulteriore dimensione di profondit all'analisi. Per creare le tabelle pivot, occorre indicare quali
campi dell'elenco devono essere disposti in righe e colonne. Inoltre, possibile definire un campo
pagina, che organizzi gli elementi per pagine. La tabella pivot permette di variare la posizione dei
campi in una frazione di secondo, per vedere le informazioni in un'altra prospettiva.
Questo capitolo tratta i seguenti argomenti.

Uso della procedura guidata Autocomposizione Tabella pivot

Filtro dei dati di una tabella pivot attraverso i campi pagina

Creazione di un grafico da una tabella pivot

1.1

USO DELLE TABELLE PIVOT

Molti elenchi di Excel assumono un aspetto simile alla figura 1: le informazioni sono organizzate in
righe e colonne ed ogni colonna contiene un determinato tipo di dati.

Figura 1 - Un elenco pu contenere grandi quantit di dati, difficili da analizzare.

L'elenco in figura 1, ad esempio, contiene informazioni sulle vendite giornaliere di diversi tipi di
prodotti. I prodotti sono organizzati per linea.
Il database contiene informazioni molto numerose ed difficile costruire visualizzazioni cosi ampie
da mostrare tutte le informazioni nel modo opportuno. In questo caso, vengono in aiuto le tabelle
pivot. In figura 2, ad esempio, compare una tabella pivot che indica le vendite di ciascuna linea in
ognuna delle quattro regioni. La procedura guidata Autocomposizione Tabella pivot aiuta l'utente a
costruire questo rapporto complesso. Le tabelle pivot sono strumenti analitici e di reporting, utili per
diversi propositi, tra cui i seguenti.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Creazione di tabelle riassuntive. In figura 2, ad esempio, compare una tabella pivot che riporta i
totali per linea di prodotto e per regione.

Figura 2 - Una tabella pivot consente di analizzare i dati da qualsiasi prospettiva

Riorganizzazione dei dati tramite trascinamento.

Figura 3 - Una tabella pivot riassume le vendite per il primo marzo 1997.

Rappresentazione grafica. Si pu, per esempio, creare un grafico che rappresenti i valori della
tabella pivot sopra. Il grafico varia dinamicamente con la manipolazione della tabella.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.2

LE TABELLE PIVOT

Una tabella pivot uno strumento di organizzazione dei dati, la cui struttura viene determinata
dall'utente con la scelta di quali campi ed elementi dovranno apparire nella tabella. Un campo una
categoria generica e un elemento un valore, unico o ripetuto, all'interno della categoria.
L'origine dei dati pu essere costituita da un elenco o tabella di un foglio di lavoro di Excel o di altro
programma. Per creare una tabella pivot, possibile utilizzare dati provenienti da vari tipi di origini.
In questo capitolo, il termine elenco viene usato per indicare un elenco contenuto in un foglio di
lavoro di Excel; termini come dati tabulari e tabella a pi colonne si riferiscono generalmente ai dati
in formato tabella, sia in un foglio di lavoro di Excel, sia in un file creato con altro programma; i dati
esterni sono informazioni create in un programma diverso da Excel. Quando si crea una tabella
pivot, occorre specificare i campi PAGINA, RIGA e COLONNA. Osservare la figura 4. In un normale
foglio di lavoro, possibile vedere le righe e le colonne solo in una tabella bidimensionale. In una
tabella pivot, possibile vedere un solo campo pagina alla volta, ma come se le pagine fossero
"materialmente" sovrapposte, come si vede nell'illustrazione.
Sebbene i dati visualizzati nelle tabelle pivot assumano l'aspetto delle normali informazioni del foglio
di lavoro, non possibile immetterli o modificarli direttamente. La tabella pivot collegata all'origine
dei dati e ci che si vede nelle celle della tabella un'informazione per sola lettura; possibile
variare la formattazione e le opzioni di calcolo.
1.3

CREAZIONE DI UNA TABELLA PIVOT

La procedura guidata Autocomposizione Tabella pivot assiste l'utente attraverso tutte le fasi
necessarie per la creazione delle tabelle pivot, ma comunque l'utente a decidere la modalit in cui
organizzare le informazioni. Si considerino i dati in figura 4. La cartella di lavoro contiene
informazioni sui prodotti di una societ; ogni record (riga) della tabella contiene informazioni per i
seguenti campi.

Figura 4 - Un esempio di database che pu essere analizzato attraverso una tabella pivot

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Campo

Descrizione

Linea

Le principali categorie di prodotti.

Prodotto

I singoli prodotti delle linee.

Regione

La societ divisa in quattro regioni Est, Ovest, Sud e Nord.

Data

Le informazioni di Vendita Vengono registrate il primo di ogni mese.

Unit

Il numero dei prodotti venduti.

Vendite

Il fatturato dei prodotti venduti.

Lo scopo principale della registrazione di queste informazioni determinare le vendite di ogni


prodotto per regione. I dati tuttavia presentano altri usi. Utilizzando le informazioni, un manager
potrebbe definire le tendenze delle vendite in base al periodo dell'anno (data). Fra breve, si vedr
come le tabelle pivot di Excel sono adeguate per fornire la variet di prospettive utili per le diverse
pratiche aziendali.
Questo semplice esempio iniziale non contempla tutte le opzioni disponibili. I dettagli sulle tabelle
pivot che non sono spiegati in questo esempio verranno descritti in ulteriori esempi.
Per creare una nuova tabella pivot attraverso la procedura guidata Autocomposizione Tabella pivot,
procedere come segue.
1. Scegliere Dati, Report tabella pivot. Si apre la finestra di dialogo per il passaggio 1 della
procedura guidata Autocomposizione Tabella pivot (figura 5).

Figura 5 - La prima finestra di dialogo della procedura guidata richiede di specificare l'origine dei dati da
rappresentare nella tabella pivot.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Da questo punto, fino a quando apparir la tabella pivot sul foglio, si lavora dalla procedura
guidata Autocomposizione Tabella pivot. I pulsanti in fondo alla finestra di dialogo permettono di
spostarsi nella procedura guidata.

Pulsante

Effetto

Annulla

Annulla la procedura guidata e ritorna al foglio di lavoro.

Indietro

Passa alla finestra di dialogo precedente.

Avanti

Passa ala finestra di dialogo successiva.

Fine

Usa le opzioni correnti e passa allultima finestra di dialogo della


procedura guidata.

1. Specificare l'origine dei dati, scegliendo uno dei pulsanti d'opzione.

Opzione

Tipo di dati

Elenco o database
Microsoft Excel

Elenco o intervallo con etichette di colonna in un foglio di lavoro


di Excel.

Origine dati esterna File o tabella creati in altri programmi, quali Paradox, dBase,
Access o SQL Server.
Intervalli di
consolidamento
multipli

Intervalli multipli con etichette di righe e colonne in fogli di lavoro


in Excel.

Altra tabella pivot

Una tabella pivot esistente nella cartella di lavoro attiva.

Scegliere Elenco o database Microsoft Excel (se non selezionata questa opzione). Cliccare
su Avanti per visualizzare la seconda finestra di dialogo della procedura guidata (figura 6).

Figura 6 - Il secondo passaggio della procedura 1 guidata, da cui selezionare l'intervallo

2. possibile immettere o selezionare l'intervallo contenente i dati nella casella Intervallo


della seconda finestra di dialogo. Se la cella attiva compresa nell'intervallo denominato
Database, l'autocomposizione seleziona automaticamente questo intervallo. Cliccare su
Avanti. Se la fonte dei dati si trova in un'altra cartella di lavoro, possibile usare il
pulsante Sfoglia per localizzare la cartella di lavoro. Vedere, pi avanti in questo capitolo,
7

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


la sezione dedicata all'uso di un elenco o database di un'altra cartella di lavoro. Si apre la
terza finestra di dialogo della procedura guidata, nella quale presente il pulsante Layout
che apre la finestra di figura 7.

Figura 7 - La finestra di dialogo Layout della procedura guidata Autocomposizione Tabella pivot, in cui
possibile determinare la disposizione della tabella, trascinando i pulsanti nelle aree RIGA, COLONNA, PAGINA
e DATI

Se compare il messaggio d'errore Il nome del campo della tabella pivot non valido, controllare che
l'intervallo specificato non includa una cella vuota sulla prima riga (la riga contenente i nomi dei
campi).
questo il momento in cui impiegare i concetti appresi all'inizio del capitolo su campi riga, colonna
e pagina. Le scelte effettuate qui controllano la visualizzazione dei dati e la loro posizione nella
tabella. Tuttavia, non occorre preoccuparsi eccessivamente di queste scelte, poich il grande
vantaggio delle tabelle pivot che, qualunque scelta venga effettuata in questa fase, pu essere
modificata dopo avere visualizzato la tabella pivot sullo schermo.
Per definire la disposizione e creare la tabella pivot, dalla finestra di dialogo layout della procedura
guidata Autocomposizione Tabella pivot, procedere come segue.
1. Determinare quali campi contengono i dati da riassumere e quindi trascinare i pulsanti
corrispondenti nell'area DATI. Spesso non vi sono molte scelte in questo passaggio.
Nell'esempio proposto, l'obiettivo riepilogare le vendite, quindi il campo dati deve essere
Vendite e non esiste alcuna alternativa.
2. Determinare la disposizione dei dati.

Per disporre in colonne gli elementi di un campo, con le etichette nella parte superiore,
trascinare il pulsante di quel campo nell'area COLONNA. Nell'esempio proposto (figura
8), si desidera organizzare le vendite per regione, quindi occorre trascinare il pulsante
Regione nell'area COLONNA.

Per disporre gli elementi di un campo in righe, con le etichette su un lato della tabella,
occorre trascinare il pulsante di quel campo nell'area RIGA. Poich nell'esempio
proposto (figura 8) si desidera usare i nomi delle linee di prodotto come intestazioni delle
righe, occorre trascinare il pulsante Linea nell'area RIGA.

L'uso dell'area PAGINA descritto pi avanti.


8

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

In figura 8 visibile la disposizione della tabella pivot, la quale permette di creare un


riassunto delle informazioni per linee di prodotti e regioni.

Figura 8 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile determinare la disposizione della tabella

3. Cliccare sul pulsante Avanti.


4. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot
(figura 9), indicare la posizione in cui inserire la tabella pivot. La tabella pu essere posta in
qualsiasi foglio di lavoro, di qualunque cartella (facendo attenzione a non sovrascrivere
informazioni esistenti). Se si sceglie di inserire la tabella in un foglio esistente, indicare la
posizione. Cliccando sul pulsante Opzioni, possibile scegliere di includere i totali e i
subtotali, generalmente consigliati. Se si decide di deselezionare le opzioni relative ai totali,
possibile rieseguire in seguito la procedura guidata Autocomposizione Tabella pivot, allo
scopo di selezionare queste opzioni.

Figura 9 - La finestra di dialogo 3 della procedura guidata Autocomposizione Tabella pivot, da cui indicare ad
Excel dove disporre la tabella pivot e facoltativamente variare alcune opzioni globali

Inoltre, possibile salvare i dati con la tabella pivot, inserendone una copia sullo stesso
foglio della tabella. Cos facendo, si ottiene il vantaggio di non dover aprire l'origine dei dati
per modificare la tabella pivot, tuttavia il file contenente la tabella pu diventare molto grande
9

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


e inoltre, creando una nuova tabella da quella esistente, i dati non vengono pi salvati con la
tabella di origine.
5. Cliccare sul pulsante Fine per completare la tabella pivot.
6. Per formattare la tabella pivot, scegliere Formato, Formattazione automatica e selezionare
un formato predefinito. Cliccare su OK per applicare il formato.
Inserendo le tabelle pivot in un foglio d lavoro separato, diventano pi facili da trovare ed meno
probabile che sovrascrivano altre parti dei foglio.
Creata una tabella pivot, compare nel documento la barra degli strumenti Tabella pivot, come in
figura (la barra non compare se stata precedentemente visualizzata e rimossa). La barra degli
strumenti Tabella pivot descritta pi avanti nel presente capitolo e nel capitolo successivo.
1.4

M ODIFICA DELLE TABELLE PIVOT

Le tabelle pivot sono strumenti che permettono la sola visualizzazione delle informazioni e non
consentono alcuna modifica di esse. Excel prevede varie opzioni per controllare le funzioni di
riepilogo e la formattazione delle tabelle pivot.
possibile modificare i nomi dei campi di una tabella pivot, sovrascrivendoli.
possibile variare i nomi dei campi e degli elementi di una tabella pivot, selezionando il campo o
elemento e digitando il nuovo nome. Excel non permette di duplicare i nomi e, se involontariamente
si immette un nome di campo o elemento esistente, il programma ridispone la tabella pivot
spostando l'elemento con quel nome nella posizione in cui si digitato il nome.
Modificando i nomi dei campi o degli elementi in una tabella pivot, essi non variano nell'elenco o
database che ne costituisce la fonte.
1.5

AGGIORNAMENTO DELLE TABELLE PIVOT

La visualizzazione di una tabella pivot non varia quando si modificano le informazioni nell'elenco o
tabella che ne costituisce l'origine. Per aggiornare o rinnovare una tabella pivot, selezionare
qualsiasi cella all'interno della tabella e cliccare sul pulsante Aggiorna dati, sulla barra degli
strumenti Tabella pivot, dopo avere effettuato i seguenti tipi di modifiche nell'origine dei dati.
Modifica dei dati in un campo Aggiunta o modifica di elementi Inserimento o eliminazione di campi o
elementi
Se si aggiungono nuovi campi all'elenco che costituisce l'origine della tabella pivot, essi non
vengono visualizzati nella tabella, a meno che non si ricorra alla finestra di dialogo layout della
procedura guidata Autocomposizione Tabella pivot.
Aggiornando una tabella pivot dopo avere aggiunto nuovi campi all'elenco di origine, possibile
espandere la dimensione della tabella. Come regola di lavoro generale, lasciare sempre molto
spazio sotto e a destra di una tabella pivot, affinch non vengano sovrascritte le informazioni
esistenti nel foglio di lavoro. Per evitare qualunque problema, inserire la tabella pivot in un altro
foglio.
Excel non permette di inserire ulteriori righe in un elenco che costituisce l'origine di una tabella pivot
se le righe intersecano la tabella, poich il programma protegge l'integrit delle tabelle pivot.
possibile inserire un intervallo in un elenco che costituisce l'origine di una tabella pivot, se l'intervallo
non interseca la tabella.
Quando si modificano i nomi dei campi o degli elementi attraverso l'immissione diretta in una
tabella pivot, le modifiche rimangono operative anche in seguito all'aggiornamento della tabella.

10

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


In alcuni casi, necessario preservare una tabella pivot nella forma attuale, sebbene i dati che ne
costituiscono l'origine dovessero variare. Per ottenere questo effetto, copiare la tabella ed incollarla
in un'altra posizione con il comando Modifica, Incolla speciale, selezionando l'opzione Valori.
Aggiornando una tabella pivot, si rimuove dalle celle della tabella qualsiasi formattazione estranea a
quella applicata con il comando Formato, Formattazione automatica. Per ulteriori informazioni,
consultare la sezione sulla formattazione delle tabelle pivot, al capitolo successivo.
1.6

SCELTA DELL'ORIGINE DEI DATI

Gli esempi proposti fino ad ora usano una sola delle opzioni disponibili dalla finestra 1 della
procedura Autocomposizione Tabella pivot. In realt, come origine per le tabelle pivot, oltre agli
elenchi e tabelle dei fogli di lavoro di Excel, e possibile usare sia le informazioni create con altri
programmi, sia elenchi multipli contenuti in uno o pi fogli di Excel.
1.6.1

Uso di un elenco o database della stessa cartella di lavoro

Per creare una tabella pivot da un elenco contenuto nella cartella di lavoro attiva di Excel, scegliere
l'opzione Elenco o database Microsoft Excel, dalla finestra di dialogo 1 della procedura
Autocomposizione Tabella pivot. L'elenco che costituisce l'origine della tabella pivot deve
comprendere le etichette delle colonne. Includere quindi la riga delle etichette, nell'intervallo indicato
dalla finestra 2 della procedura Autocomposizione Tabella pivot. Excel usa come nomi dei campi il
contenuto della prima riga dell'intervallo specificato.
1.7

USO DI UN ELENCO O DATABASE DI UN'ALTRA CARTELLA DI LAVORO

Per creare una tabella pivot da un elenco contenuto in un'altra cartella di lavoro, procedere come
segue.
1. Cliccare sul pulsante Sfoglia, dalla finestra di dialogo 2 della procedura guidata
Autocomposizione Tabella pivot. Si apre la finestra di dialogo Sfoglia.
2. Selezionare il file contenente l'elenco da usare e cliccare su OK per ritornare alla procedura
guidata Autocomposizione Tabella pivot. Si apre la finestra di dialogo 2, con il nome del file
nella casella Intervallo.
3. Immettere il nome o l'indirizzo dell'intervallo in cui contenuto l'elenco che costituisce
l'origine della tabella.
4. Cliccare sul pulsante Avanti, per completare le fasi rimanenti della procedura guidata
Autocomposizione Tabella pivot.
1.7.1

Uso dei database esterni

Per usare una fonte di dati esterna, scegliere l'opzione Origine dati esterna, dalla finestra di dialogo
1 della procedura guidata, quindi cliccare sul pulsante Avanti. Si apre la finestra di dialogo di figura
10.

11

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Figura 10 - La finestra di dialogo 2 della procedura guidata Autocomposizione Tabella pivot, visualizzata
scegliendo l'opzione Origine dati esterna dalla finestra 1

Per poter caricare dati da una fonte esterna, necessario disporre di Microsoft Query,
un'applicazione indipendente allegata ad Excel, da installare insieme al programma.
Scegliere il pulsante Estrai dati, per avviare Microsoft Query e visualizzare una finestra di dialogo.
Da Microsoft Query, scegliere i dati da importare in Excel. Dopo avere definito la query, scegliere il
comando Restituisci dati a Microsoft Excel, dal menu File di Microsoft Query. Si ritorna alla finestra
di dialogo 2 della procedura guidata Autocomposizione Tabella pivot. Aggiornando una tabella pivot
collegata ad una fonte di dati esterna, Excel applica nuovamente la query all'origine dei dati.
1.7.2

Conversione delle tabelle a campi incrociati della versione 4

Se si dispone di tabelle a campi incrociati create in Excel 4, possibile convertirle in tabelle pivot.
Procedere come segue.
1. Aprire il foglio di lavoro contenente la tabella a campi incrociati (creato con la versione 4).
2. Scegliere il comando Dati, Report tabella pivot. Si apre la finestra di dialogo layout della
procedura guidata Autocomposizione Tabella pivot.
3. Completare nel modo normale le fasi rimanenti della procedura Autocomposizione Tabella
pivot.
La conversione di una tabella a campi incrociati un'operazione irreversibile. Utilizzare una copia
per convertire una tabella, quando si prevede di usare di nuovo la tabella a campi incrociati nella
versione 4 di Excel.
1.8

FILTRO DEI DATI ATTRAVERSO I CAMPI PAGINA

Poich umanamente impossibile leggere testo e numeri in tre dimensioni, tutti i campi che si
desidera vedere in una tabella pivot devono essere assegnati alle posizioni di riga o colonna (fase 3
della procedura guidata Autocomposizione Tabella pivot). possibile aggiungere una terza
dimensione, per un'analisi dei dati pi flessibile, impostando un campo pagina. Creando un campo
pagina si definisce un filtro che seleziona gli elementi da visualizzare
Per poter visualizzare selettivamente i singoli prodotti, occorre creare un campo pagina. Per creare
un campo pagina in fase di creazione di una tabella pivot, procedere come segue.
1. Avviare la procedura guidata Autocomposizione Tabella pivot e completare le fasi 1 e 2.
2. Dalla finestra di dialogo layout della procedura Autocomposizione Tabella pivot, trascinare il
campo da filtrare sull'area PAGINA. Si pu trattare di un campo che non era visualizzato
precedentemente, oppure era visualizzato nella posizione di riga o colonna.
3. Cliccare su OK e continuare con le fasi rimanenti della procedura guidata.
Dopo avere aggiunto un campo pagina, la tabella pivot si presenta come in figura 11. La tabella
mostra i dati del solo prodotto Beta, scelto dalla casella del campo pagina Prodotto.
Il nome del campo pagina compare sopra la tabella pivot. Accanto compare un pulsante con una
freccia rivolta in basso. Cliccando su questo pulsante, si apre la relativa casella di riepilogo, la quale
contiene tutti gli elementi del campo pagina registrati nella tabella e l'opzione per i totali.
Selezionando l'elemento da visualizzare, la tabella pivot mostra la pagina di quell'elemento (in
questo caso, il prodotto Beta).

12

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 11 - La stessa tabella pivot dopo avere aggiunto il campo pagina Prodotto Beta dall'elenco

1.9

CONSOLIDAMENTO DEI DATI ATTRAVERSO UNA TABELLA PIVOT

In molti casi, i dati da riassumere in una tabella pivot sono sparsi in vari intervalli, a volte su fogli di
lavoro diversi. Se gli intervalli hanno struttura simile ed etichette di righe e colonne comuni,
possibile raggrupparli per l'analisi in un'unica tabella pivot. In figura 13 compare una cartella di
lavoro contenente le informazioni sulle vendite di una societ suddivise per regione. I valori relativi
alle regioni sono contenuti in fogli separati, denominati secondo le regioni di riferimento.

Figura 12 - Una cartella di lavoro le cui informazioni possono essere consolidate in una tabella pivot

I dati da consolidare non devono necessariamente risiedere in fogli separati; possibile consolidare
i dati contenuti in intervalli separati su un unico foglio, in fogli separati o in entrambi. Una tabella
pivot permette di consolidare i dati contenuti in vari intervalli, come il comando Dati, Consolida, con
il vantaggio che la tabella pivot pu essere manipolata per visualizzare i risultati del consolidamento
secondo varie prospettive. Per creare una tabella pivot da pi intervalli dello stesso foglio di lavoro,
avviare la procedura guidata Autocomposizione Tabella pivot e selezionare l'opzione Intervalli di
consolidamento multipli. Si apre la finestra di dialogo di figura 13; possibile fare in modo che Excel
crei un unico campo pagina, oppure creare manualmente i campi pagina desiderati.

13

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 13 - L'opzione Creazione automatica di un campo pagina assegna automaticamente gli intervalli ad un
campo pagina

Per creare una tabella pivot da pi intervalli del foglio di lavoro e fare in modo che Excel crei
automaticamente un campo pagina, procedere come segue.
1. Dalla finestra di dialogo 2a, selezionare Creazione automatica di un campo pagina e
cliccare sul pulsante Avanti.
2. Excel visualizza la finestra di dialogo 2b della procedura guidata Autocomposizione Tabella
pivot. Indicare gli intervalli da usare come origine per la tabella pivot, selezionando ogni
singolo intervallo e cliccando sul pulsante Aggiungi. Gli intervalli vengono aggiunti alla
casella di riepilogo Tutti gli intervalli. In figura 14 compare la finestra di dialogo in seguito
all'aggiunta di tutti gli intervalli visualizzati in figura 12. Cliccare sul pulsante Avanti.

Figura 14 - L'aggiunta degli intervalli di origine con la procedura guidata Autocomposizione Tabella pivot

Se gli intervalli da usare come origine contengono i totali, evitare di includere le righe o le
colonne dei totali nella selezione degli intervalli, poich la procedura Autocomposizione
Tabella pivot aggiunge automaticamente i totali come elementi della tabella pivot.
3.

Nella finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
cliccare sul pulsante Avanti per accettare le posizioni standard dei campi. Quando si
14

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


usano pi intervalli come origine, Excel non dispone delle informazioni necessarie per
determinare i nomi dei campi, quindi usa le descrizioni generiche ("Paginal", "Riga" e cos
via). possibile specificare in seguito i nomi dei campi.
4.

Completare la fase 4 della procedura guidata Autocomposizione Tabella pivot e cliccare


sul pulsante Fine per creare la tabella.

In figura 15 compare la tabella pivot creata con in dati esemplificativi. A questo punto, possibile
immettere i nomi dei campi nelle celle opportune. La tabella seguente elenca le modifiche che si
potrebbero apportare alla tabella pivot dell'esempio.

Figura 15 - La tabella pivot creata dagli intervalli multipli di figura 14

Nome di campo da sostituire

Cella

Nuovo nome di campo

Pagina 1

A1

Regione

Colonna

B3

Data

Riga

A4

Linea

Figura 16

Cliccare sulla freccia in cella B1. Anzich visualizzare i nomi delle regioni, Excel mostra i
segnaposti per essi: Elemento1, Elemento2 e cos via. Quando un campo pagina viene creato
automaticamente da Excel, si risparmia tempo inizialmente, ma in seguito occorre sostituire i
segnaposti con i nomi effettivi, in questo caso i nomi delle quattro regioni. Quando si prevede di
usare in modo esteso la tabella pivot, preferibile scegliere l'opzione Creazione manuale dei campi
pagina, dalla finestra 2a della procedura Autocomposizione Tabella pivot. Effettuando questa
selezione, la finestra 2b permette di assegnare i nomi desiderati ad ogni elemento del campo.
Per visualizzare i totali consolidati, scegliere l'opzione (Tutto) dall'elenco adiacente al pulsante del
campo pagina; compaiono i cinque prodotti, compreso Delta, il quale viene venduto unicamente
nella regione Nord. La procedura guidata Autocomposizione Tabella pivot usa lo stesso metodo di
consolidamento del comando Dati, Consolida, tuttavia legge le etichette di testo ed aggrega
correttamente i totali, secondo le etichette di testo e non secondo gli indirizzi di cella.
Per selezionare manualmente i campi pagina in fase di creazione di una tabella pivot, procedere
come segue.
15

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1. Dalla finestra di dialogo 2a, selezionare la casella Creazione manuale dei campi pagina.
2. Dalla finestra di dialogo 2b, immettere o selezionare gli intervalli da usare come origine ed
aggiungerli alla casella di riepilogo Tutti gli intervalli, come descritto nella procedura
precedente.
3. Selezionare il pulsante 1 sotto la casella Tutti gli intervalli, per indicare che si desidera un
nuovo campo pagina (per crearne due o pi, selezionare l'opzione appropriata; oppure
selezionare 0 se non si desidera creare alcun campo pagina).

Figura 17 - La finestra di dialogo 2b della procedura guidata Autocomposizione Tabella pivot, da cui possibile
specificare quanti campi pagina includere nella tabella ed immettere le etichette per i singoli elementi

4. Per ciascuno degli intervalli della casella di riepilogo Tutti gli intervalli, selezionare l'area e
quindi digitare un'etichetta per essa nella casella Campo uno. Immesse le etichette per gli
intervalli, cliccare sul pulsante Avanti.
5. Completare le fasi rimanenti della procedura Autocomposizione Tabella pivot.
Quando Excel crea la tabella pivot, le etichette per gli intervalli vengono incluse nella casella di
riepilogo a discesa adiacente al pulsante Pagina1.
1.10 USO DI PI CAMPI DATI
In tutti gli esempi presentati fino ad ora, l'etichetta del campo dati (sopra l'intestazione di riga e a
sinistra dell'intestazione di colonna) mostra il tipo di calcolo riassuntivo (ad esempio la somma) ed
il nome del campo dati (ad esempio Vendite). Questa etichetta indica che la tabella pivot contiene
un solo campo dati.
possibile includere pi campi dati dalla fase 3 della procedura guidata Autocomposizione Tabella
pivot, Ad esempio, nella tabella per l'analisi delle vendite, possibile visualizzare le vendite per ogni
prodotto insieme ai prodotti della linea. Quando una tabella pivot presenta pi campi dati, l'etichetta
relativa non compare. Al contrario, la tabella pivot mostra un pulsante Dati e le etichette per i singoli
campi dati.

16

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.10.1 Creazione di una tabella pivot da Un'altra
Quando i dettagli visualizzati sono numerosi, una tabella pivot pu diventare cos complessa, da
richiedere la creazione di una ulteriore tabella pivot basata sulla prima, per maggiore sintesi. Per
creare una tabella pivot usando come origine un'altra tabella pivot contenuta nella stessa cartella di
lavoro, procedere come segue.
1. Accertarsi che nessuna sezione della tabella sia selezionata (se selezionata una parte
della tabella, Excel presuppone che si voglia modificare la tabella).
2. Avviare la procedura guidata Autocomposizione Tabella pivot.
3. Selezionare l'opzione Altra tabella pivot e cliccare sul pulsante Avanti. La procedura
Autocomposizione Tabella pivot visualizza l'elenco delle tabelle pivot della cartella di lavoro
attiva.
4. Selezionare la tabella pivot da usare come origine e cliccare sul pulsante Avanti.
5. Completare le fasi rimanenti della procedura.
Excel crea la seconda tabella pivot nella posizione specificata. Le due tabelle vengono aggiornate
simultaneamente, ogniqualvolta si rinnova una delle due.
Per creare una tabella pivot usando come origine un'altra tabella contenuta in un'alta cartella di
lavoro, copiare la tabella pivot esistente nella cartella di lavoro attiva. I dati copiati, se soddisfano la
definizione di un elenco, possono essere usati come origine per una nuova tabella pivot. Si tenga
presente che la nuova tabella pivot perde qualsiasi collegamento con l'origine della vecchia tabella
pivot. Ne consegue che non possibile manipolare la nuova tabella pivot come se i dati che
costituiscono l'origine risiedessero nella stessa cartella di lavoro.
1.11 CREAZIONE DI UN GRAFICO DA UNA TABELLA PIVOT
Excel permette di rappresentare in un grafico il contenuto di una tabella pivot. Il grafico varia
dinamicamente al variare della disposizione della tabella. Quando si crea un grafico da una tabella
pivot, usare al massimo due campi riga e due campi colonna della tabella, al fine di evitare
confusione. Per creare un grafico da una tabella pivot, procedere come segue.
1. Selezionare la tabella pivot. Evitare di selezionare qualsiasi colonna contenente eventuali
totali; inoltre evitare di trascinare le etichette dei campi, o Excel dedurr che si desideri
spostare il campo.
2. Cliccare sul pulsante Autocomposizione Grafico, sulla barra degli strumenti Standard.
Seguire le istruzioni visualizzate sullo schermo dalla procedura guidata.
possibile variare il tipo di raggruppamento per gli indicatori delle serie dei grafico. Selezionare il
grafico, attivare la procedura guidata Autocomposizione Grafico e variare le impostazioni alla fase
2.
La procedura guidata Autocomposizione Grafico non visualizza sul diagramma creato gli elementi
dei campi pagina, tuttavia se si seleziona un elemento in un campo pagina, il grafico creato dalla
tabella pivot cambia dinamicamente, in modo da visualizzare i dati per l'elemento selezionato.
Se le dimensioni di una tabella pivot cambiano quando si passa da una pagina all'altra (data la
variazione nel numero di elementi), il grafico non viene aggiornato automaticamente con queste
Le modifiche. Per evitare questa situazione, rimuoverei totali di righe e colonne alla fase 4 della
procedura guidata Autocomposizione Tabella pivot e selezionare l'intera tabella pivot prima di
creare il grafico.

17

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


1.12 SALVATAGGIO DEI FILE CONTENENTI TABELLE PIVOT
A volte i file contenenti tabelle pivot sono molto grandi, poich Excel crea una copia dell'origine dei
dati e la memorizza (come informazioni nascoste) insieme al foglio di lavoro contenente la tabella.
Se la tabella pivot fa riferimento ad una quantit di dati rilevante contenuti in un altro file, le stesse
informazioni vengono memorizzate due volte, ogniqualvolta si salva il file contenente la tabella.
Per evitare questo, deselezionare la casella di controllo Salva i dati con il layout della tabella, della
fase 3 della procedura guidata (cliccando sul pulsante Opzioni); Excel salva la disposizione della
tabella pivot, ma omette la copia dei dati che costituiscono l'origine; quando si modifica o si rinnova
la tabella pivot, Excel la aggiorna direttamente dall'origine. Quando si usa come origine per una
tabella pivot un'altra tabella pivot salvata insieme ai dati, i dati non vengono pi salvati con la tabella
originale.
Se si lavora con una tabella pivot collegata ad un elenco esteso contenuto in un foglio di lavoro di
Excel, si consideri la possibilit di inserire la tabella pivot in una cartella di lavoro separata e
collegarla ad un foglio chiuso per risparmiare memoria.
Problemi e soluzioni
La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot visualizza
numeri e nomi di campi privi di senso. Non stata inclusa la riga contenente i nomi dei campi
quando si specificato l'intervallo di origine dalla finestra di dialogo 2. Cliccare sul pulsante Indietro
e ridefinire l'intervallo.
Excel visualizza il messaggio Il nome del campo della tabella pivot non valido. Nella definizione
dell'intervallo, stata inclusa una colonna con un nome di campo non valido. Accade quando si
seleziona inavvertitamente una colonna vuota nella definizione dell'intervallo in fase 2.
La tabella pivot visualizza il valore "1" in ogni cella. Molto probabilmente, la tabella pivot visualizza il
conteggio degli elementi anzich la somma, la media o altre funzioni di sintesi' desiderate.
La tabella pivot vuota o quasi. Accade quando la tabella pivot contiene almeno un campo pagina,
per cui il valore del primo elemento del campo nullo o zero. Per verificare, selezionare (Tutto)
nell'elenco dei campi pagina ed osservare se la tabella pivot visualizzi pi valori.

18

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Le tabelle pivot: tecniche avanzate

L'analisi di un gruppo di informazioni spesso si effettua suddividendo il gruppo in sottogruppi


significativi e riassemblandolo secondo particolari criteri, utili allo scopo di mettere in luce
determinati aspetti dei dati. Le tabelle pivot consentono questo tipo di analisi, a qualsiasi livello di
complessit. Questo capitolo tratta i seguenti argomenti.

Aggiunta di funzioni di riepilogo e subtotali alle tabelle pivot

Visualizzazione di dettagli molto specifici in una tabella pivot

Visualizzazione di vari calcoli di riepilogo in una tabella pivot

2.1

AGGIUNTA E RIMOZIONE DEI DATI

Per effettuare qualsiasi analisi attraverso le tabelle pivot, occorre capire quale sia il rapporto tra i
campi e le posizioni di riga, colonna e pagina. Un campo non per natura un campo riga, colonna o
pagina; il campo Progetto un campo pagina solo perch stato definito tale con la procedura
guidata Autocomposizione Tabella pivot o perch stato posizionato in quel punto una volta creata
la tabella pivot. Come descritto nella sezione dedicata alla riorganizzazione delle tabelle,
trascinando un campo in una posizione diversa varia la disposizione della tabella pivot.
I valori nelle tabelle pivot possono essere liberamente formattati. Ad esempio, possibile non
visualizzare i decimali.
2.1.1

Aggiunta di nuove righe, Colonne o pagine

Per aggiungere ad una tabella pivot un campo riga, colonna o pagina, procedere come
segue.
1. Selezionare una cella della tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
trascinare il pulsante del campo desiderato sull'area opportuna (RIGA, COLONNA o
PAGINA), come si vede in figura 18.
4. Cliccare sul pulsante Fine.

19

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

figura 18 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile definire i campi, trascinando i pulsanti nelle aree opportune

Un modo pi veloce per aggiungere un campo riga o colonna, fare doppio clic su un elemento in
un campo riga o colonna di una tabella pivot. Se la tabella gi contiene pi campi in quella posizione
(riga o colonna), fare doppio clic sul campo pi interno.
2.1.2

Rimozione di righe, colonne o pagine

Per rimuovere un campo riga, colonna o pagina, trascinarlo all'esterno dell'area della tabella pivot.
Mentre si trascina il campo, compare una grossa X su esso e, quando si rilascia il pulsante del
mouse, il campo scompare dalla tabella. In alternativa, possibile cliccare sul pulsante del campo,
quindi cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot, e
scegliere Elimina.
2.1.3

Aggiunta di dati da analizzare

In alcuni casi, necessario visionare diversi tipi di informazioni insieme, ad esempio il volume delle
vendite e il fatturato, la pressione sanguigna ed il colesterolo o altro. In figura 19 compare una
tabella pivot con due campi dati. Per aggiungere un altro campo ad una tabella pivot, procedere
come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Dalla finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot,
trascinare il pulsante del campo desiderato sull'area DATI.
4. Cliccare sul pulsante Fine.

20

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 19 - Una tabella pivot con due campi dati

2.2

RIORGANIZZAZIONE DI UNA TABELLA PIVOT

Altro modo per sezionare i dati di una tabella pivot variare l'organizzazione della tabella,
trascinando le etichette dei campi in posizioni diverse. Attraverso la riorganizzazione delle tabelle
pivot, possibile esaminare i dati secondo diverse prospettive.
2.2.1

Inversione dell'orientamento

Si supponga che un manager di progetto di una ditta di consulenza debba riunire uno staff di
persone opportunamente qualificate per lavorare ad un determinato progetto. Si consideri la tabella
pivot di figura 20. In questa forma, la tabella non fornisce le informazioni necessarie, poich
visualizza principalmente le ore impiegate dal personale per portare a termine determinati progetti,
necessario visualizzare la tabella in una prospettiva per staff e codici di lavoro.

Figura 20 - Una tabella pivot indicante le ore lavorate per staff e progetto

Per spostare un campo di una tabella pivot, trascinare il campo riga, colonna o pagina nella
posizione desiderata. Compare un indicatore di inserimento. La forma dell'indicatore dipende dalla
posizione. In figura 21 si vede un campo pagina che verr spostato in una posizione di colonna.
Quando compare l'indicatore di inserimento, rilasciare il pulsante del mouse.

21

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 21 - Spostamento di un campo riga nella posizione di colonna

Per riorientare la tabella pivot in figura 21, in modo che visualizzi i codici lungo il lato superiore,
procedere come segue.
1. Trascinare l'etichetta del campo Codice lavoro dalla posizione di pagina alla posizione di
colonna; la tabella pivot diventa molto larga e la profondit diminuisce.
2. Trascinare Progetto nella posizione di pagina. Quando l'indicatore di inserimento si
trasforma nell'immagine di pi rettangoli sovrapposti, rilasciare il pulsante del mouse.
3. Trascinare Staff nella posizione di riga.
4. Selezionare (Tutto) dal campo pagina.
2.2.2

Spostamento dei singoli elementi di un campo

Per variare la sequenza degli elementi in una tabella pivot, trascinarli nelle posizioni desiderate. Per
spostare un elemento in una tabella pivot, trascinare l'etichetta di esso nella posizione desiderata,
all'interno dello stesso campo. Mentre si trascina, compare un bordo grigio intorno all'elemento;
quando il bordo posizionato correttamente, rilasciare il pulsante del mouse. Excel inserisce
l'elemento selezionato nella posizione di destinazione, insieme ai dati contenuti, spostando in
basso o verso destra gli elementi seguenti.
Gli elementi di una tabella pivot inoltre possono essere ordinati. Consultare pi avanti la sezione
sull'ordinamento.
2.2.3

Spostamento dei campi dati

Normalmente, non possibile spostare i campi dati nelle posizioni di riga, colonna o pagina; tuttavia
quando una tabella pivot contiene pi campi dati, possibile trascinare il pulsante Dati dalla
posizione di riga alla posizione di colonna. In figura 22 compare la tabella pivot con le informazioni
sui tempi di lavoro, in cui compaiono i campi dati (Ore e Lire) in orientamento riga.

22

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 22 - La tabella pivot con i campi dati in orientamento riga

Anzich visualizzare pi campi dati, possibile visualizzare pi calcoli di riepilogo per un unico
campo dati. Consultare la sezione sull'uso dei calcoli personalizzati, pi avanti.
2.2.4

Raggruppamento degli elementi

In alcuni casi, necessario filtrare quantit rilevanti di informazioni organizzate, ad esempio risultati
finanziari, dati demografici ed altro. Per analizzare nel modo corretto questo tipo di informazioni,
occorre determinare il livello di dettaglio con il quale possibile lavorare meglio. Sia quando utile
visualizzare numerosi dettagli, che quando sufficiente una panoramica generale, le tabelle pivot di
Excel forniscono il modo per visualizzare le sole informazioni desiderate.
Raggruppare gli elementi in base alla loro etichetta Si consideri come esempio di lavoro il
caso ipotetico di un grande dettagliante con punti vendita sparsi in diversi paesi. Al massimo livello
di riepilogo stanno i risultati di ogni paese; ogni paese infatti suddiviso in varie regioni, ogni regione
in varie zone e ogni zona presenta diversi punti vendita. Punto vendita, Stato, Regione, Paese e
Societ sono i livelli di aggregazione possibili, disposti in gerarchia; il livello massimo
rappresentato dalla societ. Gli stessi livelli di raggruppamento vanno definiti nella tabella pivot. Per
raggruppare vari elementi in una categoria di massimo livello, procedere come segue.
1. Selezionare contemporaneamente gli elementi (nello stesso campo) da raggruppare. Il
modo migliore per farlo selezionare un elemento, quindi tenere premuto Ctrl e cliccare
sugli altri.
2. Cliccare sul pulsante Raggruppa, sulla barra degli strumenti Tabella pivot. Excel aggiunge il
nuovo campo di gruppo alla tabella pivot ed inserisce le etichette segnaposti per i nuovi
elementi.
3. Sostituire le etichette segnaposti con le etichette per i nuovi gruppi.
Excel non in grado di dedurre i raggruppamenti dai dati di origine. Ad esempio, sebbene l'elenco di
origine presentasse i campi per citt e stato, Excel non sarebbe in grado di raggruppare
automaticamente le citt per stato, ma occorrerebbe creare manualmente i gruppi per ogni stato.
Nascondere e rivisualizzare i dettagli In alcuni casi, utile iniziare l'analisi visualizzando i valori
di riepilogo e, dopo avere creato il quadro generale della situazione, lavorare sui livelli di dettaglio.
Excel prevede un metodo veloce per passare tra le visualizzazioni dettagliate e le visualizzazioni di
riepilogo. Nei raggruppamenti delle tabelle pivot, possibile nascondere o visualizzare i dettagli; un
raggruppamento pu consistere di vari elementi raggruppati, oppure pu essere rappresentato dal
campo di pi alto livello in una posizione (riga o colonna). 1 raggruppamenti di livello pi elevato, gli
elementi di riepilogo, sono posti all'estremit superiore o esterna della tabella pivot. Gli elementi di
23

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


riepilogo sono i campi gruppo Amministrative ed Addebitabili; il campo Staff un elemento di
riepilogo.

Figura 23 - In questa tabella pivot, il campo Staff un elemento di riepilogo; il dettaglio dei codice di lavoro pu
essere visualizzato o nascosto.

Per nascondere gli elementi di dettaglio in un elemento di riepilogo, fare doppio clic sull'elemento
nel campo riga (o colonna) esterno. Ad esempio, facendo doppio clic in successione su Neri e
Ferrari, si nascondono i dettagli per quei gruppi, come si vede in figura 24.

Figura 24 - La tabella pivot, dopo avere nascosto i dettagli per Neri e Ferrari

Per visualizzare o nascondere i dettagli inoltre, possibile usare la barra degli strumenti Tabella
pivot. Per nascondere un elemento, selezionarlo e quindi cliccare sul pulsante Nascondi dettaglio.
Al fine di visualizzare i dettagli per un elemento di riepilogo, selezionare l'elemento e quindi cliccare
sul pulsante Mostra dettaglio.
Per nascondere i dettagli di pi elementi, il pulsante Nascondi dettaglio della barra degli strumenti
Tabella pivot pi efficace del doppio clic. Per nascondere i dettagli di pi elementi, selezionare gli
elementi desiderati e quindi cliccare sul pulsante Nascondi dettaglio. Con questa procedura,
possibile rimuovere un intero livello di raggruppamento da una tabella pivot.
24

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Per nascondere o visualizzare gli elementi di dettaglio attraverso i comandi da menu, procedere
come segue.
1. Selezionare l'elemento di riepilogo di cui nascondere i dettagli.
2. Scegliere il comando Raggruppa e struttura dal menu Dati (o dal menu di scelta rapida).
3. Dal sottomenu, scegliere l'opzione Mostra dettaglio o Nascondi dettaglio.
Visualizzare ulteriori dettagli Con le tabelle pivot, possibile ottenere livelli di dettaglio molto
elevati. Nella sezione precedente descritto come il doppio clic sulla riga e colonna pi esterna
(quelle contenenti gli elementi di riepilogo) limita la quantit di dettagli visualizzata; facendo doppio
clic sulla riga o colonna pi interna si ottiene l'effetto opposto: si visualizzano ulteriori dettagli.
Per aggiungere dettagli ad una tabella pivot, fare doppio clic sulla riga o colonna pi interna per la
quale visualizzare ulteriori dettagli. Facendo doppio clic su Rossi e quindi selezionando Codice
lavoro dalla finestra di dialogo Mostra dettagli appaiono i dettagli per i codici di lavoro di Rossi.
In alcuni casi, mentre si visiona una tabella pivot, necessario consultare l'origine dei dati. Facendo
doppio clic su una cella nell'area dei dati di una tabella pivot (l'area della tabella escluse le etichette
dei campi e degli elementi), Excel inserisce un nuovo foglio di lavoro e visualizza una copia dei dati
di origine usati per calcolare il valore che compare nella cella. In figura 23 compare l'origine dei dati
per le vendite di Bianchi.
I dati visualizzati sono semplicemente una copia. Modificando questa copia non si modificano i dati
di origine.

Figura 25 - La tabella ottenuta facendo doppio clic sulla cella contenente il totale generale per Bianchi, in figura
24.

Per visualizzare i dati di origine di una cella dell'area dei dati, attraverso la barra degli strumenti
Tabella pivot, procedere come segue.
1. Selezionare la cella di cui visualizzare i dati di origine collegati.
2. Cliccare sul pulsante Mostra dettaglio, sulla barra degli strumenti Tabella pivot.
Per visualizzare i dati di origine di una cella dell'area dei dati, attraverso i comandi da menu,
procedere come segue.
1. Selezionare la cella di cui visualizzare i dati di origine.
2. Scegliere il comando Raggruppa e struttura dal menu Dati (o dal menu di scelta rapida).
3. Cliccare sul pulsante Mostra dettaglio.

25

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Raggruppare gli elementi numerici in intervalli Alcune tabelle pivot contengono elementi
identificati da etichette numeriche. Excel pu raggruppare questi elementi in intervalli, sulla base
della cifra iniziale del numero.
Per raggruppare in intervalli gli elementi con etichette numeriche, procedere come segue.
1. Selezionare una delle etichette degli elementi numerici.
2. Cliccare sul pulsante Raggruppa, sulla barra degli strumenti Tabella pivot (in alternativa,
possibile scegliere il comando Raggruppa e struttura dal menu Dati o dal menu di scelta
rapida). Scegliere l'opzione Raggruppa. Excel visualizza la finestra di dialogo d figura 26.

Figura 26 - La finestra di dialogo Raggruppa appare quando gli elementi del gruppo sono etichettati con numeri
di due cifre al massimo

3. Excel determina il raggruppamento per gli elementi ed immette i valori standard per le
caselle A partire da, Fino a e Per. Per accettare gli standard, cliccare su OK. Per definire
manualmente il metodo di raggruppamento, continuare con le istruzioni da 4 a 7.
4. Nella casella A partire da, immettere il primo numero della sequenza da suddividere in
gruppi.
5. Nella casella Fino a, immettere l'ultimo numero della sequenza da suddividere in gruppi.
6. Nella casella Per, immettere la dimensione degli intervalli numerici desiderati. Cliccare su
OK.
Le opzioni Automatico nella finestra di dialogo Raggruppa sono selezionate come standard, tuttavia
vengono annullate se si immettono nelle caselle valori diversi da quelli proposti; selezionando una o
entrambe le opzioni Automatico, si ripristinano i valori iniziali e/o finali dell'elenco d origine.
Raggruppare gli elementi temporali in intervalli Se uno dei campi contiene elementi basati su
periodi temporali e gli elementi da raggruppare sono espressi in uno dei formati di data e ora di
Excel, il programma visualizza la finestra di dialogo di figura 27. Selezionare l'intervallo di tempo
desiderato per il raggruppamento degli elementi dalla casella Raggruppa per.

26

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Figura 27 - La finestra di dialogo da cui creare gruppi per i periodi temporali

Problemi e soluzioni
Quando si raggruppa un campo data, Excel crea un nuovo campo gruppo anzich visualizzare la
finestra di dialogo Raggruppa. Se la selezione comprende alcune date, accertarsi che le celle della
colonna contenente le date nell'elenco di origine siano formattate con uno dei formati data o ora
disponibili.
Alcune celle della tabella pivot mostrano il valore d'errore #DIV/O!. Questo tipo di errore si verifica
quando la tabella pivot calcola una media ed alcuni dei valori necessari mancano. Questo
messaggio indica che l'intervallo non contiene la combinazione di valori rappresentata dalla cella
che mostra l'errore; oppure che esiste una cella vuota nell'intervallo corrispondente al campo dati
della tabella pivot.
2.2.5

Analisi dei dati

Dopo avere visionato i dati di una tabella pivot, pu essere necessario modificare alcuni elementi,
per ottenere una visualizzazione pi adeguata. possibile visualizzare le informazioni di riepilogo di
livello pi elevato, oppure visualizzare numerosi dettagli. possibile variare la sequenza degli
elementi e classificare i dati per valore, anzich per elemento.
Pu essere difficile inserite le etichette di tutti gli elementi nei grafici creati dalle tabelle pivot. Se la
tabella pivot contiene molti elementi, sostituire nomi brevi alle etichette nella tabella.
2.2.6

Analisi delle tabelle pivot con i grafici

Spostando in altre posizioni i campi di una tabella pivot, il grafico che rappresenta la tabella pu
cambiare la disposizione degli indicatori delle serie, fornendo una prospettiva diversa. Il campo con
il numero pi elevato di valori viene sempre assegnato all'asse delle categorie (x),
indipendentemente dal tipo d campo (riga o colonna).
Uno dei modi pi efficaci per esaminare i dati di una tabella pivot aggiungere un campo pagina e
quindi creare un grafico dalla tabella; possibile in seguito alternare gli elementi nel campo pagina
mentre si visualizza il grafico, per vedere l'effetto dei numeri.
2.2.7

Ordinamento degli elementi

Gli elementi di un campo di una tabella pivot possono essere ordinati per etichetta; inoltre,
l'ordinamento pu essere basato sui valori dei campi dati o pu essere di tipo personalizzato.
Quando si crea una tabella pivot, tutti gli elementi vengono automaticamente ordinati per etichetta,
in sequenza decrescente. Quando si aggiungono nuovi elementi o si spostano i campi (oppure si
desidera ordinare gli elementi in modo decrescente), possibile riordinare il campo.
Per ordinare gli elementi per etichetta, dalla barra degli strumenti Standard, selezionare il campo da
ordinare e quindi cliccare sul pulsante Ordinamento crescente o Ordinamento decrescente.
Per ordinare gli elementi per etichetta, attraverso i comandi da menu, procedere come segue
1. Selezionare il campo da ordinare.
2. Scegliere il comando Dati, Ordina.
3. Accertarsi che sia selezionata l'opzione Etichette nell'area Ordina.
4. Scegliere il tipo di ordinamento (pulsante Crescente o Decrescente). La descrizione dei
parametri di ordinamento visualizzata nell'angolo inferiore sinistro della finestra di dialogo
(figura 28).
27

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5. Cliccare su OK.

Figura 28 - La finestra di dialogo Ordina, visualizzata scegliendo Dati, Ordina

2.2.8

Filtro di una tabella pivot

I campi pagina filtrano selettivamente i dati di una tabella pivot. Per visualizzare un determinato
elemento in un campo pagina, cliccare sulla freccia posta a desta del campo pagina e quindi
selezionare l'elemento desiderato dall'elenco (figura 29).

Figura 29 - La selezione di un elemento dall'elenco del campo pagina permette di visualizzare i soli dati relativi
a quell'elemento

Per visualizzare i totali per l'intero campo, selezionare (Tutto) dall'elenco. I totali visualizzati
comprendono i dati per tutti gli elementi del campo, inclusi quelli nascosti.
Uso di pi campi pagina Aggiungendo pi campi pagina, possibile filtrare i dati molto
accuratamente. possibile scegliere uno dei progetti, per vedere il tempo dedicato da Rossi a quel
particolare progetto.

Figura 30 - Con l'uso di due campi pagina, possibile visualizzare informazioni molto specifiche

Per aggiungere un campo pagina ad una tabella pivot, procedere come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
28

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


3. Trascinare il pulsante del campo desiderato sull'area PAGINA.
4. Cliccare sul pulsante Fine.
Per creare un campo pagina da un campo esistente di una tabella pivot, trascinare il pulsante del
campo dalla riga o colonna, oltre l'angolo superiore sinistro del corpo principale della tabella pivot;
quando l'indicatore di inserimento si trasforma nell'immagine di rettangoli sovrapposti, rilasciare il
pulsante del mouse.
2.2.9

Suddividere le pagine su fogli di lavoro diversi

possibile visualizzare le singole pagina di una tabella pivot in fogli di lavoro diversi, opzione utile
per poter stampare tutte le pagine della tabella, oppure spostarsi tra le pagine con l'uso delle
schede dei fogli di lavoro (in fondo alla finestra). Affinch si possa usare questa opzione, la tabella
pivot deve presentare almeno un campo pagina. Per suddividere le pagine di una tabella pivot su
fogli di lavoro separati, procedere come segue.
1. Selezionare una cella nella tabella pivot.
2. Cliccare sul pulsante Mostra pagine, sulla barra degli strumenti Tabella pivot; oppure
scegliere il comando Mostra pagine dal menu di scelta rapida.
3. La finestra di dialogo Mostra pagine visualizza l'elenco dei campi pagina della tabella pivot;
selezionare il campo i cui elementi si desidera visualizzare su fogli di lavoro separati e
cliccare su OK (se la tabella pivot contiene un solo campo, esso selezionato come
standard).
Excel inserisce nella cartella di lavoro un nuovo foglio per ogni elemento del campo pagina,
denominando i fogli di lavoro secondo i rispettivi elementi. Ciascuno dei fogli di lavoro contiene una
tabella pivot con l'elemento appropriato selezionato nel campo pagina.
2.2.10 Controllo dei totali e subtotali
Come standard, Excel visualizza automaticamente nelle tabelle pivot i totali generali per le righe e le
colonne. Se una tabella contiene pi campi riga o colonna, compaiono anche i subtotali (figura 31).

Figura 31 - Excel visualizza automaticamente nelle tabelle pivot i subtotali e i totali generali

Per riprodurre pi tabelle pivot in un foglio stampato, incollare copie fisse delle tabelle, utilizzando il
comando Modifica, Incolla speciale e le opzioni Valori e Formati.
29

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Nascondere i totali generali Per nascondere i totali generali, disattivare le prime due caselle di
controllo della finestra di dialogo Opzioni, disponibile dal passaggio 4 della procedura guidata
Autocomposizione Tabella pivot (figura 32).

Figura 32 - Per evitare la visualizzazione dei totali generali, disattivare le opzioni Totali complessivi per righe e
Totali complessivi per colonne, dalla procedura guidata Autocomposizione Tabella pivot

Quando la tabella pivot contiene pi campi dati, visualizza i totali generali per ogni campo.
possibile visualizzare i totali generali per tutti o nessuno dei campi, nella posizione di riga o colonna.
2.2.11 Nascondere i subtotali
I subtotali sono associati con i singoli campi, quindi per nasconderli o visualizzarli necessario
procedere individualmente.
Per nascondere i subtotali di un campo, procedere come segue.
1. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot (in
alternativa, possibile fare doppio clic sul campo desiderato nella tabella pivot o scegliere il
comando Campo tabella pivot dal menu di scelta rapida).
2. Nell'area Subtotali della finestra di dialogo Campo tabella pivot, selezionare Nessuno e
cliccare su OK.
Per aggiungere i subtotali, visualizzare la finestra di dialogo e selezionare Predefiniti.
2.2.12 Visualizzare i subtotali per pi campi in una riga o colonna
Quando una riga o una colonna contiene pi campi ed attivata l'opzione per i subtotali predefiniti,
la tabella pivot visualizza i subtotali per il solo campo pi esterno. possibile tuttavia visualizzare i
subtotali per il campo pi interno.
Per visualizzare i subtotali di un campo interno, procedere come segue.
1. Selezionare il campo per il quale visualizzare i subtotali.
30

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Cliccare sul pulsante Impostazioni Campo tabella pivot, sulla barra degli strumenti Tabella
pivot (in alternativa, possibile fare doppio clic sul campo desiderato nella tabella pivot, o
scegliere il comando Campo tabella pivot dal menu di scelta rapida). Si apre la finestra di
dialogo Campo tabella pivot (figura 33).

Figura 33 - Dalla finestra di dialogo Campo tabella pivot, possibile modificare le funzioni che Excel usa per il
riepilogo dei dati

3. Nell'area Subtotali della finestra di dialogo Campo tabella pivot, selezionare Personalizzati.
4. Selezionare dall'elenco adiacente il tipo di calcolo per i subtotali, ad esempio Somma, e
quindi cliccare su OK.
2.3

USO DI ALTRE FUNZIONI PER L'ANALISI DEI DATI

Molte delle tabelle pivot considerate finora calcolano i totali dei valori numerici contenuti nell'origine
dei dati. In alcuni casi tuttavia necessario eseguire altri tipi di calcoli,ad esempio le medie.
2.3.1

Cambiare la funzione di riepilogo

Se non si specifica diversamente, quando si crea una tabella pivot Excel usa la somma come
calcolo di riepilogo sui valori di origine (se invece i campi dati Contengono testo, la tabella pivot
visualizza il conteggio dei valori). Il tipo di calcolo eseguito sui dati pu essere variato a piacere.
Dalla procedura guidata Autocomposizione Tabella pivot, procedere come segue.
1. Selezionare una cella nell'area dei dati della tabella pivot.
2. Cliccare sul pulsante Autocomposizione Tabella pivot, sulla barra degli strumenti Tabella
pivot.
3. Fare doppio clic sul pulsante del campo nell'area DATI.
4. Dalla casella di riepilogo Riepiloga per, selezionare la funzione di riepilogo desiderata. In
tabella 1 sono descritti i tipi di calcoli pi comuni per le tabelle pivot.
5. Cliccare su OK per ritornare alla procedura guidata Autocomposizione Tabella pivot e
cliccare sul pulsante Fine.
Tabella 1

Funzione di riepilogo

Procedura di calcolo usata nella tabella pivot

Somma

Somma dei valori numerici

31

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Conta

Conteggio di tutti i valori

Media

Somma dei valori numerici e divisione per il numero dei record


di origine

Max

Determinazione dei valore massimo

Min

Determinazione dei valore massimo

Prodotto

Prodotto di tutti valori numerici

Conta numeri

Conteggio di tutti i valori numerici

Utilizzare funzioni di riepilogo diverse nella stessa tabella pivot In una tabella pivot, possibile usare
una diversa funzione di riepilogo per ogni campo dati.
Inoltre, possibile usare una funzione di riepilogo diversa per lo stesso campo dati, se lo si
aggiunge due volte alla tabella pivot.
2.3.2

Utilizzare calcoli personalizzati

Per le tabelle pivot, Excel prevede vari tipi di calcoli non standard, che si basano su altri valori
nell'area dei dati.
Per riepilogare gli stessi dati in modi diversi, aggiungere due volte il campo dati ed utilizzare il
pulsante Campo tabella pivot per variare i metodi di riepilogo.
Per variare il tipo di calcolo di un campo dati, procedere come segue
1. Selezionare una cella della tabella pivot nel campo da variare.
2. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot.
3. Dalla finestra di dialogo Campo tabella pivot, scegliere Opzioni.
4. Selezionare il tipo di calcolo desiderato dalla casella di riepilogo Mostra dati. In tabella 2
sono descritti i vari tipi di calcoli. Il termine risultato si riferisce al risultato calcolato dalla
funzione di riepilogo per una determinata cella della tabella pivot.

32

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Tabella 2

Tipo di calcolo

Visualizzazione in cella nella tabella pivot

Discordanza da

La differenza tra il risultato ed il campo e lelemento specificati nelle


caselle Campo base ed Elemento base

% di

Il risultato diviso per il campo basa e lelemento specificati, espresso in


percentuale

% discordanza da

La differenza tra il risultato ed il campo e lelemento specificati, diviso


il campo base e lelemento espresso in percentuale

Esegui totale in

Per il campo base specificato, i totali che sommano il risultato per


elementi successivi

% di riga

Il risultato diviso per il totale della riga espresso in percentuale

% di colonna

Il risultato diviso per il totale della colonna espresso in percentuale

% dei totale

Il risultato diviso per il totale della tabella pivot espresso in percentuale

Indice

Il valore calcolato dalla formula seguente Risultato* Totale


generale/Totale generale per riga* Totale generale per colonna

1. Se occorre, selezionare il campo e l'elemento desiderati, rispettivamente nelle caselle


Campo base ed Elemento base. Ad esempio, per il tipo di calcolo % di riga illustrato in figura
34 non occorre specificare un campo base, poich questo calcolo non usa un campo base.
2. Cliccare su OK

33

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 34 - Calcolo delle vendite come differenza percentuale comparata al periodo precedente

Per comprendere il funzionamento degli elementi e dei campi base, si immagini di studiare le
tendenze delle vendite di una societ sul lungo periodo, disponendo dei dati a partire dal 1987 e
volendo visualizzare le vendite per prodotto, con le variazioni percentuali annue.
Per visualizzare i risultati di vendita nel tempo con le variazioni percentuali, procedere come segue.
1. Creare una tabella pivot con due campi dati per le vendite.
2. Nella finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, fare
doppio clic sul pulsante Somma di vendite2 nell'area DATI. Si apre la finestra di dialogo
Campo tabella pivot.
3. Nella casella Nome, variare il nome del campo digitando Differenza.
4. Se occorre, scegliere Opzioni per espandere la finestra di dialogo.
5. Scegliere l'opzione % discordanza da, dalla casella di riepilogo Mostra dati.
6. Nella casella Campo base, selezionare Data.
7. Nella casella Elemento base, selezionare (precedente).
8. Cliccare su OK.
9. Cliccare sul pulsante Fine.
2.3.3

Creare un campo calcolato in una tabella pivot

Se non si desidera utilizzare uno dei calcoli predefiniti per le tabelle pivot, possibile creare propri
campi calcolati. Negli esempi proposti, ci si limitati ai campi del gruppo di dati originale.
possibile per voler espandere il gruppo di dati iniziali per effettuare ulteriori analisi. Ad esempio,
possibile voler calcolare, ad uso interno, la somma spettante ad ogni collaboratore in base alle ore
lavorate. Se la somma oraria prevista dalla societ di L.20.000, i totali andrebbero calcolati
moltiplicando le ore lavorate per 20.000. molto semplice.
1. Cliccare in una qualsiasi cella della tabella pivot, per attivare la tabella.

34

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Dalla barra degli strumenti Tabella pivot, scegliere il pulsante Tabella pivot.
3. Scegliere Formule, Campo calcolato. Si apre la finestra di dialogo Inserisci campi calcolati
(figura 35).

Figura 35 - La finestra di dialogo Inserisci campi calcolati permette di aggiungere campi personalizzati alla
propria tabella pivot.

4. Nella casella Nome, digitare un nome per il campo calcolato.


5. Selezionare la casella Formula. Scegliere un campo dalla casella Campi e cliccare sul
pulsante Inserisci campo. Ora, costruire la propria formula. Per il calcolo dei compensi ad
uso interno, di cui sopra, la formula sar Ore*20.
Scegliere Aggiungi e quindi cliccare su OK.
2.4

FORMATTAZIONE DELLE TABELLE PIVOT

Apparentemente, una tabella pivot rappresenta un intervallo di celle contenente costanti numeriche,
ma in realt si tratta di un'entit di riepilogo, collegata ad uno o pi altri intervalli. Le caratteristiche
tipiche delle tabelle pivot implicano speciali tecniche di formattazione.
2.4.1

Formattazione automatica delle tabelle pivot

possibile formattare individualmente le singole celle di una tabella pivot, tuttavia Excel riformatta la
tabella come entit unica, ogniqualvolta si varia la disposizione, oppure si rinnova la tabella. Per
riformattare una tabella pivot, selezionare qualsiasi cella di essa e scegliere il comando Formato,
Formattazione automatica; quindi selezionare il formato desiderato dalla finestra di dialogo
Formattazione automatica.
Quando viene riorganizzata o rinnovata, la tabella pivot mantiene i formati automatici applicati.
2.4.2

Formattazione dei numeri

Quando si crea una nuova tabella pivot, Excel applica alle celle dell'area dei dati il formato numerico
proprio dello stile Generale del foglio di lavoro. Questo formato tuttavia pu essere modificato. Per
applicare un formato numerico diverso all'area dei dati di una tabella pivot, procedere come segue.
1. Selezionare una cella nell'area dei dati della tabella pivot.
35

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Cliccare sul pulsante Campo tabella pivot, sulla barra degli strumenti Tabella pivot. Si apre
la finestra di dialogo Campo tabella pivot.
3. Cliccare sul pulsante Numero. Compare la scheda Numero della finestra di dialogo Formato
celle.
4. Selezionare il formato numerico desiderato e cliccare su OK.
Il formato numerico selezionato rimane applicato a tutte le celle dell'area dei dati, anche se l'area
cambia forma.
2.4.3

Variazione dei nomi dei campi e degli elementi

possibile variare una qualsiasi delle etichette di testo che circondano l'area dei dati, selezionando
la cella opportuna e digitando il nuovo nome.

36

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Filtraggi sui dati

Le funzionalit di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per
registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e ricavarne molte informazioni: il
caso pi tipico quello delle analisi di bilancio, che abbiamo esaminato precedentemente.
3.1

CHE COS UN DATABASE

Il termine database si potrebbe rendere in italiano con base di dati, ma linglese ha dalla sua il
vantaggio della compattezza, che ce lo fa preferire. Con questo nome si caratterizza una qualsiasi
raccolta di dati omogenei, conservati su un supporto di registrazione in una forma strutturata.
Come il borghese di Molire, che parlava in prosa senza saperlo, tutti noi viviamo in mezzo ai
database e ce ne serviamo quotidianamente, anche se non sappiamo che si chiamano cosi. Sono
infatti da considerarsi database le guide del telefono, le rubriche di indirizzi che teniamo in tasca o
sul tavolo di lavoro, le matrici degli assegni bancari e altri semplici oggetti di uso quotidiano.
Ci che caratterizza un database il fatto che contiene dati omogenei, registrati in forma
strutturata. Un bilancio non un database, perch i dati sono si, strutturati, ma si riferiscono a
realt diverse (attivit e passivit, per esempio), mentre pu essere considerato un database un
libro giornale di contabilit, perch tutte le righe contengono informazioni omogenee, disposte
sempre nello stesso modo (strutturate, quindi): numero di registrazione, data, documento, conto di
addebito, conto di accredito, importo.
In un database i dati sono organizzati secondo una gerarchia di contenitori che si chiamano campi,
record e tabelle. Questi termini tecnici si possono ricondurre a semplici realt della vita di tutti i
giorni. In un tipico database, qual la guida telefonica distribuita da Telecom, i campi contengono i
dati elementari che caratterizzano labbonato: cognome, nome, indirizzo, numero di telefono.
Mettendo insieme i campi di un singolo abbonato si ottiene un record, che corrisponde alla riga
stampata. Linsieme delle righe o record forma la tabella. Tutto qui.
La struttura data dallordine con cui sono disposti i campi nei record: nel caso della guida
telefonica, viene sempre prima il cognome, seguito dal nome, dallindirizzo e dal numero di telefono.
Un altro elemento qualificante lomogeneit dei contenuti: nel campo del numero di telefono non
compare mai un nome o un indirizzo.
Se mettiamo uno sotto laltro i record di una guida del telefono e diamo la stessa larghezza ai
campi, la tabella che ne risulta assume un aspetto molto familiare: i record potrebbero essere righe
e i campi colonne di un foglio di lavoro Excel. Lidentit strutturale fra un foglio di lavoro e una tabella
di database la base logica che consente di usare Excel anche per creare e gestire database e
non soltanto per analizzare dati numerici disposti su un foglio di lavoro.
Ben consapevoli di questa possibilit, i creatori di Excel hanno messo a punto una serie di
strumenti specializzati per agevolare luso di questo programma come gestore di database.
Vedremo in questo capitolo quali sono questi strumenti e come si possono utilizzare in concreto.
3.1.1

Ordinare i record

Sulle informazioni disposte nel foglio di lavoro secondo la struttura di un database possono agire
diverse funzionalit specifiche per questo genere di strutture. Una delle pi utili lordinamento.
Supponiamo di voler riorganizzare i record ordinati secondo il nome del cliente. Selezioniamo con
un clic il campo Cliente di un qualunque record del database e facciamo scendere il menu Dati, nel
quale selezioniamo il comando Ordina.
Lintera area del foglio di lavoro che contiene il database viene selezionata automaticamente e su
essa si visualizza una finestra di dialogo intitolata Ordina, che merita di essere esaminata con cura.
37

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Questa finestra di dialogo permette di definire i criteri per riordinare i record che compongono il
database.
Quando viene attivata nella prima casella di selezione, intitolata Ordina per, compare il nome del
campo che era selezionato quando stato dato il comando Ordina.
A fianco, due pulsanti di opzione, denominati Crescente e Decrescente, consentono di scegliere se
lelenco dei record andr ordinato disponendo i record secondo lordine che va dal pi piccolo al pi
grande (Crescente) o dal pi grande al pi piccolo (Decrescente).

Figura 36 - La finestra di dialogo Ordina.

Figura 37 - Una sezione del database dopo lordinamento.

Se il campo contiene numeri, lordinamento Crescente risulta in una distribuzione che va dal
numero pi basso al pi alto. Quando il campo contiene testo (come nel caso del campo Cliente), i
record saranno ridistribuiti in base allordine alfabetico del testo.
Se si desidera cambiare il campo in base al quale eseguire lordinamento, basta selezionarne il
nome dalla lista a discesa che sta nel riquadro Ordina per.
In molti casi si pu aver bisogno di eseguire ordinamenti in cascata: vogliamo per esempio ordinare
il database dei clienti per provincia e vederne i nomi in ordine alfabetico allinterno di ciascuna
provincia.
La finestra di dialogo Ordina consente di concatenare in questo modo fino a tre criteri di
ordinamento, attivandoli in un colpo solo. Per farlo si utilizzano (dopo la casella di selezione a
discesa Ordina per) una o entrambe le caselle di selezione che vengono subito sotto e sono
denominati Quindi per.
38

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Possiamo veder leffetto del doppio ordinamento il primo crescente sul campo Cliente e il
secondo decrescente sul campo Totale.
possibile ripristinare lordinamento precedente se i record in origine sono disposti secondo un
ordine progressivo, come nel nostro caso quello determinato dal contenuto del campo Doc. Per
tornare alla situazione di partenza, si esegue di nuovo il comando Ordina, selezionando, in questo
esempio, il campo DOC e scegliendo il criterio Crescente.
3.1.2

Filtrare i record

Con il comando Ordina dal menu Dati si ridistribuiscono tutti i record del database secondo uno o
pi criteri di ordinamento. Con questa operazione si possono mettere in evidenza determinati
gruppi di record, per elaborarli poi selettivamente.
Quando un database contiene centinaia o migliaia di record, per, lordinamento pu far comodo,
ma non risolve sempre tutti i problemi di selezione. Sarebbe utile poter evidenziare soltanto i record
che hanno certi valori in determinati campi e non altri, per esempio, operazione che si riesce a fare
solo in parte con il comando Ordina.
Per soddisfare esigenze di selezione di questo genere disponibile un altro comando specifico per
i database, che si trova sempre nel menu Dati: si tratta del comando Filtro, dal quale si possono
selezionare due sottocomandi: Filtro automatico e Filtro avanzato. Vediamo il primo.
Quando si attiva Filtro automatico in apparenza non accade nulla. Osservando pi attentamente la
finestra dellapplicazione, si nota per che le celle che contengono i nomi dei campi sono state
trasformate in altrettante caselle di selezione a discesa, pi o meno in questo modo:

Il significato operativo di questa trasformazione notevolmente interessante. Facendo clic sul


pulsante a freccia di una qualunque casella col nome di un campo, si fa scendere un elenco di
criteri di selezione associabili al campo stesso. Un clic su uno di questi criteri lo attiva e vengono
visualizzati soltanto i record del database che soddisfano il criterio selezionato per quel campo.
I criteri disponibili sono numerosi e articolati. Cominciamo dai pi semplici:
tutto, seleziona tutti i record;
vuote, seleziona i record nei quali il campo selezionato vuoto;
non vuote, seleziona i record nei quali il campo selezionato non vuoto.
Nellelenco a discesa sono poi presentati, campo per campo, alcuni criteri specifici che
corrispondono ai singoli valori diversi contenuti in quel campo in tutti i record. Per esempio, i nomi
diversi presenti nel campo Cliente dei 15 record del database di prova sono soltanto 4 e vengono
elencati fra i criteri di filtro. Nella figura che segue possiamo vedere leffetto che si ottiene
selezionando il nome Lindipendente Snc, che fra i quattro criteri specifici elencati nella lista di
selezione per il campo Cliente.

Quando un database viene filtrato, i numeri delle righe corrispondenti ai record che soddisfano le
condizioni del filtro compaiono scritti in azzurro e vengono nascoste le altre righe. Questo
39

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


accorgimento segnala che ci che si sta osservando soltanto una parte del database. Per tornare
a vedere tutti i record si seleziona il criterio Tutto nellelenco a discesa.
In Excel 7.0 la funzione Filtro automatico presenta un criterio nuovo, non disponibile in Excel 5.0,
che compare col nome Primi 10 nellelenco a discesa dei criteri.
un criterio potentissimo, di notevole effetto: infatti ordina in memoria i record, senza spostarli
fisicamente nel foglio di lavoro, usando come chiave di ordinamento il campo selezionato e
visualizza soltanto i record che in quellordinamento occupano le prime dieci posizioni.
Malauguratamente, la sua attivazione richiede una laurea in ingegneria nucleare o quasi. Battute a
parte, il concetto sarebbe anche semplice e intuitivo, ma la sua messa in pratica notevolmente
tortuosa. Vediamo intanto come si presenta da vicino.
Quando si fa clic sul nome Primi 10 compare una finestra di dialogo intitolata Filtro automatico
primi 10, che presenta tre caselle di selezione, raggruppate sotto lintestazione comune Mostra:

nella prima si pu selezionare una fra due voci: Superiore o Inferiore;

la seconda casella propone un numero predefinito (10), che si pu aumentare o diminuire


agendo sulle frecce di selezione;

la terza casella presenta anchessa due sole opzioni: Elementi o Percentuale.

Se, sconcertato da queste opzioni, formulate in maniera decisamente sibillina, lutente chiede aiuto
alla Guida contestuale, gli apparir il testo che segue (riprodotto fedelmente: provare per credere):
Per visualizzare tutte le righe contenenti un qualsiasi intervallo superiore o inferiore specificato,
selezionare lintervallo superiore o inferiore e lintervallo numerico, quindi selezionare le voci o la
percentuale.
Siccome, per nostra fortuna, non corriamo alcun rischio fisico, non ci resta che andare per tentativi
e cosi scopriamo che il criterio Primi 10 serve in realt per filtrare non i primi 10 record, ma
quanti se ne vuole (1 o n, purch siano meno del totale dei record del database) visualizzando quelli
che se fossero messi in ordine in base al campo selezionato occuperebbero le prime (
n)
posizioni o le ultime (n).
C di pi: il confronto pu essere fatto anche in termini percentuali e non soltanto sui valori assoluti
del campo selezionato.
Facciamo un esempio. Supponiamo di aver scelto il criterio Primi 10 come filtro sul campo
Imponibile:

se nella finestra di dialogo selezioniamo le opzioni Superiore, 3 ed Elementi, verranno filtrati


i 3 record che hanno il valore pi elevato rispetto agli altri 15 nel campo Imponibile;

se selezioniamo Percentuale invece di Elementi, lasciando invariate le altre due opzioni


(Superiore e 3), verr filtrato un solo record, quello dove il valore del campo Imponibile il
pi elevato di tutti gli altri in termini percentuali.

Molto pi a misura duomo si presenta lopzione Personalizza, che permette di definire un criterio di
filtro personalizzato. Il criterio si costruisce attraverso una finestra di dialogo intitolata Personalizza
filtro automatico, che vediamo qui di seguito:

40

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

In questa finestra di dialogo si possono indicare uno o due criteri di filtro, collegandoli, se sono due,
con un operatore logico And (E) oppure Or (O). Loperatore di confronto per il campo selezionato
pu essere scelto fra quelli elencati nella casella di selezione a sinistra, che presenta i simboli =, >,
<, >=, <=, e <> quando si fa clic sul pulsante a freccia.
Il termine di confronto per il contenuto del campo sul quale si basa il filtro pu essere immesso
direttamente nella casella di selezione a destra, o scelto fra quelli elencati nella casella stessa
facendo scendere la lista con il pulsante freccia. Questo elenco viene costruito con tutti i valori
diversi contenuti nel campo selezionato. Per esempio, per filtrare i record in modo che siano visibili
soltanto quelli che hanno nel campo Imponibile un importo inferiore a 1.000.000, si seleziona il
campo Imponibile, si sceglie lopzione Personalizza, nella finestra di dialogo si fa uscire loperatore
di confronto < nella prima casella di selezione in alto a sinistra e si digita 1000000 nella casella
subito a destra.
Per filtrare i record che hanno un importo nel campo Imponibile compreso fra un minimo di
1.000.000 e un massimo di 4.000.000, si impostano il primo operatore di confronto su >=, il primo
termine di confronto su 1000000, il secondo operatore di confronto su <= e il secondo termine di
confronto su 4000000. Fra i due valori di confronto si seleziona il pulsante di opzione marcato E.
In fondo alla finestra di dialogo Personalizza filtro troviamo due annotazioni: Usa ? per
rappresentare un carattere singolo e Usa * per rappresentare una serie di caratteri. Le
annotazioni sono un richiamo alla regola per i confronti sui campi che contengono stringhe di testo.
possibile infatti impostare un filtro su un campo che contiene un nome o una descrizione, in
modo che il confronto sia fatto soltanto su una parte del campo.
Supponiamo di voler filtrare tutti i record delle fatture intestate a clienti la cui ragione sociale cominci
con la lettera M. Nella casella di selezione delloperatore sceglieremo = e immetteremo i caratteri
M* nella casella del termine di confronto, dopo aver selezionato il campo Cliente. Il carattere
asterisco in quella posizione indica al programma do filtrare i record che hanno una M come primo
carattere nel campo Cliente e di ignorare nel confronto tutti i caratteri che si trovano a destra della
posizione segnata dal carattere *. Per selezionare tutti i record che nel campo Cliente hanno i
caratteri cc in una qualunque posizione, si imposta il termine di confronto su *cc*.
Il carattere punto interrogativo permette una selezione pi fine. Immaginiamo di non essere certi se
un cliente si chiami Romano o Romani. Immetteremo in questo caso la stringa Roman? Come
termine di confronto: il programma filtrer tutti i record che nel campo Cliente hanno la stringa
Romano, Romani, Romana, eccetera.
Come se tutte queste possibilit non fossero sufficienti, esiste anche un metodo di filtraggio che nel
menu Dati/Filtro individuato dal comando Filtro avanzato. Con questo comando si ottengono le
stesse selezioni che abbiamo appena visto parlando dellopzione Personalizza filtro, ma con un
significativo vantaggio in pi: possibile preparare prima i criteri di filtro e salvarli poi insieme col
database, in modo da riutilizzarli in tempi successivi senza immetterli ex novo ogni volta.

41

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Prima di attivare il comando Dati/Filtro/Filtro avanzato occorre inserire almeno due righe sopra la
riga di intestazione che contiene i nomi dei campi.
Nella prima riga si copiano dalla riga di intestazione i nomi dei campi in base ai quali si intende
applicare il filtro.
Nella seconda riga (e nelle eventuali righe successive che si sono aggiunte) si scrive la formula di
confronto in corrispondenza di ogni campo trascritto nella prima riga. Se, per esempio, il criterio di
filtro deve selezionare tutti i record che abbiano un valore inferiore a 1.000.000 nel campo
Imponibile, lintestazione del database assume laspetto riportato qui sotto:

Dopo aver predisposto il criterio o i criteri di selezione in questo modo, si sceglie il comando Filtro
avanzato, che presenta una finestra di dialogo nella quale di devono definire le seguenti opzioni,
completandole con le indicazioni del caso.
Filtra elenco sul posto: esegue loperazione direttamente nellintervallo occupato dal database,
come avviene normalmente quando si eseguono comandi di filtro automatico manualmente.
Copia in unaltra posizione: i record che soddisfano le condizioni di filtro saranno copiati in un
intervallo diverso, da specificare, mentre il database dorigine resta visualizzato per interno.
Intervallo elenco: lintervallo occupato dal database; normalmente questa casella appare gi
compilata. per possibile delimitare una parte soltanto dellelenco (cio del database) per
predisporre eventualmente condizioni di filtro di tipo pi generale.
Intervallo criteri: va indicato lintervallo di celle (minimo due) che contiene il nome del campo e il
criterio di filtro.
Copia in: questa casella si abilita soltanto se selezionata in precedenza lopzione Copia in
unaltra posizione. Va indicato lintervallo di destinazione dei record che verranno filtrati e copiati.
Copia unica dei record: se si ha ragione di supporre che il criterio di filtro far passare pi record
identici, ma interessa avere soltanto un record per ogni tipo, si spunta questa casella di controllo.

Figura 38 - La finestra di dialogo Filtro avanzato.

42

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Le funzionalit offerte da Filtro avanzato possono far comodo quando un ufficio gestisce un
database e deve fornire ad altri uffici elenchi selezionati su base ricorrente. Dopo aver predisposto i
criteri di selezione, basta indicare nella casella Copia in un intervallo opportuno, per esempio su un
foglio di lavoro separato, registrare su un file diverso il foglio con i record filtrati e farlo arrivare
allufficio che deve utilizzare i dati. In questo modo non deve essere copiato n modificato, continua
a restare sotto il controllo e la responsabilit di chi lo ha creato e lo gestisce e chi riceve lelenco
filtrato sa che i dati che gli sono stati mandati derivano dallultima versione del database dorigine.

Figura 39 - Il Filtro avanzato al lavoro.

3.1.3

Gestire i record

Un database concepito per lavorare si arricchisce tutti i giorni di nuovi record; con frequenze
diverse, quotidiane o settimanali, si deve intervenire per modificare il contenuto di qualche campo o
per eliminare i record il cui contenuto non rispecchia pi la situazione che il database intende
documentare.
Queste operazioni di aggiunta, cancellazione e modifica di record sono essenziali per la gestione di
un database. Si possono eseguire con le tecniche previste da Excel per modificare, cancellare ed
eliminare elementi di intervallo: si selezionano una o pi celle e se ne modifica il contenuto. Oppure
si selezionano una intera riga e la si cancella con il comando Elimina dal menu Modifica o dal menu
contestuale.
Quando in un foglio di lavoro esiste un intervallo caratterizzato come database, Excel mette a
disposizione automaticamente un ottimo e comodo strumento, fatto apposta per gestire i record,
che si chiama Modulo.
Lo si attiva scegliendo il comando Modulo dal menu Dati, dopo aver selezionato un campo
qualunque allinterno del database.
Come dice il suo nome, con questo comando si crea un modulo, cio un insieme strutturato di
caselle di modifica, che presenta in una forma chiara e organizzata tutti i campi di record, allo
scopo di agevolare la gestione del database: creare nuovi record, eliminare record esistenti o
modificare il contenuto dei campi di un record determinato.
Mentre il database che abbiamo usato finora come esempio aperto, scegliamo Modulo dal menu
Dati e ci si presenta una finestra di dialogo di tipo particolare.
Il modulo si presenta come una finestra di dialogo, intitolata col nome del foglio in cui si trova il
database.
La struttura di questa finestra di dialogo diversa da quelle che siamo abituati a vedere in Excel: in
effetti, non una finestra di dialogo, ma uno schema per gestire in modo uniforme un record del
database, agendo sullintero record o su uno dei campi. Proviamo a vedere come fatto questo
modulo.

43

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 40 - Il modulo per gestire individualmente i record di un database.

Nella parte sinistra troviamo i nomi di tutti i campi che concorrono a formare un record. A fianco dei
nomi vi sono un certo numero di caselle, attraverso le quali si possono immettere nuovi campi o
correggere il contenuto di campi esistenti.
Come si pu notare, non a tutti i nomi corrisponde una casella di modifica. Per i campi calcolati,
quelli cio che contengono formule, viene visualizzato il risultato della formula, ma non previsto
che vi si acceda per modificarli. Questa impostazione semplifica notevolmente la creazione di
nuovi record, perch guida loperatore a immettere soltanto i dati di base, mentre i campi che
risultano da un calcolo vengono generati automaticamente.
Al centro del modulo visibile una barra di scorrimento, che serve per spostarsi da un record
allaltro, senza dover scorrere materialmente il foglio col database.
Alla destra della barra di scorrimento due pulsanti Nuovo ed Elimina consentono di creare un
nuovo record o di eliminare quello selezionato ( il cui contenuto compare nella parte di sinistra del
modulo). Un pulsante Ripristina annulla tutte le modifiche fatte sul record, a condizione di non aver
ancora premuto il tasto Invio o di non essere passati a un nuovo record.
Un gruppo di pulsanti marcati Criteri, Trova succ. e Trova prec. consente di effettuare ricerche
con una logica simile a quelle che abbiamo visto quando abbiamo esaminato lopzione
Personalizza filtro automaticamente. In questo caso, per, possibile definire
contemporaneamente criteri di ricerca su pi campi.
Quando si fa clic sul pulsante Criteri, il modulo si trasforma presentando una casella di immissione
vuota sul lato sinistro, a fianco dei nomi di tutti i campi, anche di quelli che contengono valori
calcolati. In ciascuna di queste caselle possibile digitare un criterio di selezione, usando gli
operatori di confronto, quelli logici e gli indicatori di posizione dei caratteri (? e *).
Dopo aver immesso i criteri di selezione nei campi che interessano, un clic sul pulsante Trova
succ. attiva unesplorazione del database in avanti che si arresta visualizzando il modulo con il
primo record che corrisponde ai criteri di selezione (se ce n almeno uno). Agendo ancora sul
pulsante Trova succ. si visualizzano gli eventuali altri record e con Trova prec. Si torna indietro a
visualizzare quelli trovati in precedenza. Se non vengono trovati record che corrispondono ai criteri
impostati, si viene avvistai da una segnale acustico.

44

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Il Risolutore

Excel prevede diversi strumenti per l'analisi dei dati contenuti nei fogli di lavoro. Tra essi assumono
importanza fondamentale il comando Strumenti, Ricerca obiettivo e l'aggiunta Risolutore. Il
comando Ricerca obiettivo permette di trovare il valore che genera il risultato desiderato in una
formula. Il Risolutore uno strumento matematico che permette di trovare la risposta migliore ad
un problema, quando esistono pi variabili e vanno rispettati determinati vincoli.
Questo capitolo tratta i seguenti argomenti.
1. Applicazioni del Risolutore
2. Vincoli interi
3. Salvare i problemi del Risolutore
4.1

QUALE STRUMENTO USARE

Excel prevede diversi strumenti per la risoluzione dei problemi, ciascuno utile in determinate
situazioni. Alcuni di questi strumenti, tra cui la funzione Risolutore, sono programmi aggiuntivi.
Ricerca obiettivo e Risolutore sono strumenti progettati in modo specifico per trovare valori che
permettano di ottenere determinati risultati dalle formule. Il primo di tali strumenti trattato nel
manuale Excel 2000 avanzato.
4.2

USO DELLA FUNZIONE RISOLUTORE

Alcuni problemi sono troppo complessi perch il comando Strumenti, Ricerca obiettivo sia in grado
di trovare una soluzione. Questa situazione si verifica, ad esempio, quando le variabili sono pi di
una, oppure necessario porre determinati vincoli per le soluzioni da determinare.
Diversamente dalla funzione Ricerca obiettivo, il cui scopo trovare una determinata soluzione, la
funzione Risolutore trova una soluzione ottimale variando pi celle e mantenendo le altre formule
del foglio di lavoro entro i limiti specificati.
Spesso, occorre modificare il foglio di lavoro, affinch si adatti al tipo di modello per il quale il
Risolutore funziona meglio. In figura 41, se si chiede al Risolutore di massimizzare il profitto
cambiando i tassi di crescita delle vendite e le percentuali di spesa, semplicemente si otterranno
tassi di crescita molto elevati e percentuali di spesa negative. Per rendere significativo il problema,
occorre includere limiti, o vincoli, per le percentuali di spesa; inoltre pu essere necessario,
eventualmente, includere formule che calcolano tassi di crescita realistici per le spese, sulla base
di altri input. Per impostare un tale foglio di lavoro, occorre conoscere a fondo la situazione reale
che il modello deve rappresentare. Il Risolutore uno strumento molto potente, che pu essere
d'aiuto per creare modelli razionali finalizzati ad ottimizzare lo sfruttamento delle risorse, la gestione
della cassa e la scelta dei mix di prodotti che generano i migliori risultati.
4.2.1

Quando usare il Risolutore

Molte applicazioni pratiche del Risolutore riguardano la nozione di allocazione di risorse scarse per
ottenere determinati obbiettivi, quali massimizzare i profitti, minimizzare i costi o migliorare il pi
possibile la qualit. Le risorse possono essere materie prime, ore lavoro, ore macchina, denaro o
qualsiasi altro elemento limitato. I vincoli del Risolutore quantificano i limiti del problema. Il
Risolutore trova la migliore allocazione delle risorse che soddisfa i vincoli impostati.
Spesso, le risorse scarse possono essere utilizzate in molti modi diversi ed il Risolutore trova la
migliore combinazione di utilizzo di tali risorse. Ad esempio, gli stessi materiali si potrebbero usare
per diversi prodotti, oppure lo stesso impiegato potrebbe lavorare a progetti diversi o le medesime
45

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


risorse essere usate in periodi di tempo diversi. Il numero delle possibili combinazioni troppo
elevato per poter effettuare un'analisi manuale, mentre il Risolutore in grado di trovare
automaticamente la combinazione ottimale. Per usare il risolutore, occorre saper identificare le
variabili o celle di immissione del modello (di solito rappresentano la quantit di risorse); la formula
obiettivo che si desidera minimizzare o massimizzare; i vincoli che impostano i limiti superiori ed
inferiori dei valori che determinate formule possono presentare come soluzione.
4.2.2

I vincoli nei problemi del Risolutore

I vincoli sono relazioni quali Al<=B1, A1=A2 o Al> =0 che impongono limiti sui valori (celle) che la
formula usa. Almeno uno dei valori (celle) della formula vincolati deve dipendere da qualche cella
variabile; diversamente, il vincolo non parteciper alla determinazione della soluzione ottimale; potr
essere soddisfatto o insoddisfatto prima di avviare il Risolutore. I vincoli generalmente vengono
impostati in gruppi ed il Risolutore permette di specificarli in un solo passaggio, scrivendo ad
esempio A1:A10<=B1:B10 o A1:E1>=O.
La parte pi difficile nella creazione di un modello per il Risolutore identificare i vincoli corretti.
Alcuni particolari vincoli, ad esempio i limiti di materie prime, sono facili da identificare. Altri sono pi
difficili, come ad esempio i seguenti.
Un modello suddiviso per periodi potrebbe richiedere un vincolo secondo cui la giacenza iniziale
(cassa o altro) di ogni nuovo periodo deve essere uguale alla giacenza finale del periodo
precedente.
Un modello di gestione del magazzino potrebbe richiedere un vincolo secondo cui la giacenza
iniziale sommata ai prodotti ricevuti deve essere uguale alla giacenza finale sommata ai prodotti
spediti.
Molti modelli richiedono un vincolo secondo cui tutte le risorse devono essere usate. Ad esempio. la
somma dei fondi allocati a vari investimenti deve essere uguale al totale dei fondi disponibili.
Un vincolo molto comune, definito "non negativit", specifica che celle variabili indicanti quantit
fisiche, ad esempio prodotti, non possono essere negative.
4.2.3

Vincoli contro formule logiche

I vincoli usano la stessa sintassi delle formule logiche, ma il Risolutore li tratta in modo diverso: il
vincolo viene sempre considerato entro una tolleranza (il cui standard, definito precisione, e
0,000001). Questo significa che un vincolo quale A1>=0 potrebbe essere considerato soddisfatto (o
VERO) sebbene Al fosse -0,0000005; mentre una formula logica, in questo caso, darebbe come
risultato FALSO. Il Risolutore si comporta cosi poich i suoi calcoli complessi non possono
generare risultati perfettamente accurati quando il computer memorizza solo un numero finito di
cifre di precisione. Per la stessa ragione, il Risolutore non accetta vincoli quali Al>O, che non
sarebbe distinguibile da Al>=O.
4.2.4

Relazioni matematiche nei problemi del Risolutore

La forma matematica della relazione fra le variabili ed i risultati pu avere un grande effetto sulla
capacit del Risolutore di trovare una soluzione. Nella forma pi semplice, i risultati sono funzioni
lineari dei valori immessi. Nella rappresentazione grafica, una funzione lineare ad una variabile
una linea retta, mentre una funzione a due variabili un piano piatto. Le funzioni lineari possono
sempre essere scritte nella forma:
X=A*YI+B*Y2+C*Y3...
In questa sintassi, il risultato X; A, B e C sono costanti ed Y1, Y2 ed Y3 sono variabili, ovvero le
celle di immissione. Si noti che A, B e C potrebbero rappresentare qualsiasi calcolo complesso sul
46

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


foglio di lavoro, in quanto il calcolo non dipende da nessuna delle variabili Y1, Y2 o Y3. Poich il
Risolutore modifica solo le variabili delle celle di immissione specificate, le formule che non
dipendono dalle variabili sono costanti nei problemi del Risolutore.
Quando la cella obiettivo e tutti i vincoli sono funzioni lineari e si sceglie l'opzione Presupponi
modello lineare (tabella nelle pagine seguenti), il Risolutore pu utilizzare i metodi pi veloci ed
affidabili per trovare la soluzione. Quando non si seleziona questa opzione, il Risolutore tratta il
modello come non lineare ed usa metodi pi generali, ma pi lenti e meno affidabili, sebbene tutte le
relazioni siano effettivamente lineari.
Il Risolutore pu inoltre gestire problemi caratterizzati da relazioni non lineari fra variabili e risultati.
Una relazione non lineare una funzione che non pu essere espressa nella forma descritta sopra
o una funzione il cui grafico contiene una curva. Seguono alcuni esempi di funzioni non lineari.

Le vendite crescono, fino ad un determinato valore, quindi decrescono.

La qualit del prodotto viene generalmente misurata attraverso la varianza o la deviazione


standard, che dipende dalle differenze al quadrato rispetto alla norma.

La risposta alla pubblicit aumenta prima rapidamente, quindi pi lentamente, con la


frequenza degli avvisi.

I costi dei prodotti variano con i diversi volumi di vendita.

Alcune delle forme di espressione di relazioni non lineari sono le seguenti:


X=Yl/Y2
X=Y1^,5 (la radice quadrata di Y1)
X=A+Yl*Y2
In questo caso, il risultato X, A una costante, YI ed Y2 sono le variabili. Il Risolutore pu gestire
un'ampia variet di formule non lineari di questo tipo.
Il Risolutore ha difficolt con problemi in cui le relazioni fra variabili e costanti sono discontinue.
Quando la si rappresenta graficamente, una funzione discontinua presenta improvvisi dislivelli nei
valori. Il caso pi comune un'espressione SE di Excel. Ad esempio, il risolutore potrebbe avere
difficolt a trovare una soluzione ad un problema con un obiettivo o un vincolo del tipo seguente
=SE(Y1>;A*Y1;B*Y1)
dove Y1 una variabile del problema. Come prima, possibile usare le espressioni SE nei modelli
del Risolutore, purch la parte condizionale dell'espressione SE non dipenda da nessuna delle
variabile e sia quindi costante nel problema del Risolutore. Altre funzioni che possono causare
difficolt al Risolutore sono CERCA.VERT() e SCEGLI() ed in alcuni casi funzioni quali ASS(), INT()
ed ARROTONDA().
4.2.5

Installazione del Risolutore

Il Risolutore composto da una cartella di lavoro aggiuntiva e da una speciale DLL di Excel. Se il
Risolutore non stato installato insieme ad Excel, possibile rieseguire la procedura di
installazione in qualsiasi momento e scegliere di installare il Risolutore. Non occorre reinstallare per
intero il programma Excel.
Dopo avere installato il Risolutore, la funzione sar disponibile fra le aggiunte di Excel. Perch il
Risolutore sia pi facilmente disponibile, possibile selezionarlo come aggiunta. Affinch il
Risolutore venga caricato all'avvio di Excel, selezionarlo come aggiunta; procedere come segue.
1. Scegliere Strumenti, Aggiunte.

47

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Dalla finestra di dialogo che appare, selezionare la casella di controllo Risolutore da Aggiunte
disponibili. Se non disponibile l'opzione Risolutore, usare il pulsante Sfoglia, al fine di
selezionare il file SOLVER.XLA che generalmente si trova nella cartella
\PROGRAMMI\MICROSOFT OFFICE\OFFICE\LIBRERIA\SOLVER.
3. Cliccare su OK.
Al momento di usare il Risolutore, baster selezionare il comando Strumenti, Risolutore. L'aggiunta
si avvia e mostra la finestra di dialogo principale. Quando si sceglie il comando per la prima volta,
l'aggiunta Risolutore viene automaticamente caricata in memoria.
4.2.6

Costruzione di un modello applicativo

Il foglio di lavoro in figura 41 illustra un semplice modello creato per l'uso del Risolutore. Il modello
finalizzato ad effettuare calcoli relativi ad un programma di riciclaggio di rifiuti. Nel foglio di lavoro
sono rappresentate le informazioni relative al programma di riciclaggio, denominato Eco Rifiuti,
ideato e realizzato da un comune allo scopo di sfruttare alcune risorse esistenti per ottenere
prodotti da cui realizzare profitti.

Figura 41 - Il Risolutore usa il foglio di lavoro Eco Rifiuti per trovare la migliore combinazione di materiali in
grado di generare il pi elevato margine di profitto.

Il programma prevede la raccolta di rifiuti organici, da combinare in diversi mix con terriccio ed altri
additivi minerali, al fine di ottenere terriccio di elevata qualit. Parte del lavoro svolto da volontari; i
costi dei materiali, esclusi i costi di raccolta, sono piuttosto bassi.
Il foglio di lavoro calcola la combinazione migliore di materiali in grado di garantire il margine pi
elevato, visualizzato in cella I17. Molti problemi reali sono meno semplici di questo, tuttavia il
Risolutore si adatta molto bene ai vincoli del mondo reale, quando si tratta di determinare la
soluzione migliore, date alcune condizioni variabili.
La maggior parte del foglio di lavoro Eco Rifiuti composta da testo e valori costanti. Per costruire il
foglio di lavoro, digitare il testo come in figura 41, quindi immettere i numeri e formule descritti in
seguito.
Le variabili del modello sono Terriccio, Composto, Minerali e Pacciame, nelle colonne da C ad E. I
risultati sono Fertilizzante giardino, Terriccio da giardino, Terriccio fertilizzante e Terriccio per orti,
nelle righe dalla 5 alla 8.
Nel modello, i valori dell'intervallo C5:F5 rappresentano il mix di materiali necessario per ottenere il
prodotto Fertilizzante giardino, il cui prezzo unitario al dettaglio pari a L.105. Il Risolutore calcola la
quantit di produzione ottimale in cella G5. Calcolata la quantit di produzione, viene determinato il
48

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


valore del fatturato in cella 15, moltiplicando G5 per H5. La stessa procedura viene usata per tutti i
prodotti.
Il principale vincolo dato dalla disponibilit limitata delle materie prime. L'inventario dei materiali
disponibili, Terriccio, Composto, Minerali e Pacciame, indicato nelle celle C12:F12. Le celle
C13:F13 indicano la quantit necessaria di ogni materiale per i vari prodotti, informazione utile per
determinare la combinazione di prodotti ottimale. Il costo dei materiali usati viene calcolato
moltiplicando il costo unitario dei materiali (C16:FI6) perla quantit di materiali usata (C13:F13). Il
risultato visualizzato nelle celle C17:F17.
I ricavi totali sono calcolati in cella I15, come somma dell'intervallo I5:I8. Il costo del venduto
calcolato in cella I16, come somma dell'intervallo C17:F17. Il margine in I17 dato dai ricavi totali
meno i costi totali.
Prima di eseguire il Risolutore, salvare il foglio di lavoro su disco con il comando File, Salva con
nome.
4.2.7

Trovare la soluzione ottimale

Si supponga che per il modello descritto l'obiettivo sia trovare il risultato massimo ottenibile, in cella
I17. Questo obiettivo potrebbe espandere il riciclaggio, incentivando il programma Eco Rifiuti e
riducendo le tasse. Le variabili da modificare per raggiungere l'obiettivo di reddito prefissato sono le
quantit da produrre. Come prima applicazione, si ipotizzi che le quantit da produrre possano
essere determinate liberamente, poich non esistono vincoli sulle quantit vendibili. In seguito verr
considerato il caso in cui le quantit vendibili sono limitate. Le variabili che il Risolutore deve
determinare si trovano nell'intervallo G5:G8, ed in figura 41 sono pari a zero. Per limitare i tempi di
ricalcolo, preferibile iniziare con variabili il pi possibile vicine alla soluzione.
Il limite imposto che le materie prime da usare non possano eccedere la quantit disponibile.
Quindi, i totali calcolati nelle celle C13:F13 non possono superare i valori corrispondenti in C12:F12.
Inoltre, i valori in G5:G8 devono essere maggiori di 0, poich non ammessa una produzione
negativa.
Una volta compilata, la finestra di dialogo Parametri del Risolutore si presenta come in figura 42.

Figura 42 - La finestra di dialogo Parametri del Risolutore con le informazioni utili per la massimizzazione del
margine in cella I17, dati i vincoli di disponibilit di materie prime

Per trovare la soluzione ottimale al problema, procedere come segue.


1. Selezionare la cella da ottimizzare; nell'esempio la cella I17.

49

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


2. Scegliere Strumenti, Risolutore. Il Risolutore viene caricato (se non stato caricato all'avvio
di Excel) e si apre la finestra di dialogo Parametri del Risolutore vuota.
3. Nella casella di testo Imposta cella obiettivo, indicare il riferimento della cella da ottimizzare.
4. Definire il tipo di relazione tra la cella obiettivo ed il valore della soluzione, selezionando uno
dei pulsanti seguenti nella sezione Uguale a.
Max

Trova il risultato massimo per la cella obiettivo.

Min

Trova il risultato minimo per la cella obiettivo.

Valore di

Trova, per le variabili, i valori che permettono alla cella obiettivo di generare il
numero digitato nella casella di testo Valore di. Per questo esempio,
selezionare Max.

5. Cliccare nella casella di testo Cambiando le celle, quindi selezionare le celle che il
Risolutore dovr variare nel tentativo di trovare la soluzione migliore. Per questo esempio, le
celle sono $G$5:$G$8. possibile digitare il riferimento, selezionare le celle dalla tastiera o
trascinare sulle celle. Se le celle non sono visibili, cliccare sul pulsante Riduci finestra o
scorrere il foglio di lavoro.
6. Cliccare sul pulsante Aggiungi per aggiungere i vincoli alla casella Vincoli. Si apre la finestra
di dialogo Aggiungi vincolo (figura 43).

Figura 43 - La finestra di dialogo Aggiungi vincolo va usata per ognuno dei vincoli impostati.

7. Immettere il primo vincolo. Nell'applicazione proposta, i valori contenuti nell'intervallo


$G$5:$G$8 devono essere maggiori di 0, poich le quantit da produrre devono sempre
essere positive o pari a zero. Nella casella di testo Riferimento, immettere $G$5:$G$8.
possibile digitare il riferimento, selezionare le celle dalla tastiera o trascinare sulle celle. Se
le celle non sono visibili, cliccare sul pulsante Riduci finestra o scorrere il foglio di lavoro.
Premere Tab o cliccare sulla freccia rivolta in basso, per aprire l'elenco degli operatori. Per
questo esempio, selezionare l'operatore >=. Nella casella di testo Vincolo, immettere 0. I
vincoli sulle celle di immissioni quali G5:G8>=0 sono comuni a molti problemi del Risolutore.
Excel 97 prevede una scelta rapida per definirli, attraverso la casella di controllo Presupponi
non negativo, disponibile dalla finestra di dialogo Opzioni del Risolutore.
8. Cliccare sul pulsante Aggiungi, per poter aggiungere il secondo vincolo. Nell'applicazione
proposta, il secondo vincolo $C$12:$F$12>=$C$13:$F$13, il quale indica che le materie
prime usate devono essere minori o uguali a quelle disponibili.
9. Cliccare su OK. Si apre la finestra di dialogo Parametri del Risolutore, completa di tutte le
informazioni necessarie per risolvere il problema (figura 42).
10. Cliccare sul pulsante Risolvi per eseguire il Risolutore e trovare la combinazione ottimale di
prodotti, ovvero quella in grado di generare il margine massimo. Quando il Risolutore trova
una soluzione, si apre la finestra di dialogo Risultato del Risolutore di figura 44.

50

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Figura 44 - La finestra di dialogo Risultato dei Risolutore, da cui scegliere le opzioni per l'uso della soluzione
calcolata

11. Selezionare il pulsante Mantieni la soluzione del Risolutore, per mantenere la soluzione
visualizzata sul foglio di lavoro. Selezionare l'opzione Ripristina i valori originali, per
ripristinare i valori originali sul foglio di lavoro. Per questa applicazione, selezionare Mantieni
la soluzione del Risolutore e cliccare su OK. Nella finestra di dialogo inoltre possibile
scegliere il tipo di rapporto da creare, come descritto pi avanti nella sezione dedicata alla
stampa dei rapporti del Risolutore.
Il Risolutore indica che il margine massimo si ottiene producendo 11 confezioni di Fertilizzante
giardino, 49 di Terriccio da giardino, nessuna di Terriccio fertilizzante e 21 di Terriccio per orti. Con
questo mix di produzione, il margine ottenuto pari a L.4.425,89.
possibile interrompere o sospendere un calcolo particolarmente lungo dei Risolutore, premendo il
tasto Esc.
Il Risolutore memorizza i parametri della finestra di dialogo con il foglio di lavoro contenente il
problema, sotto forma di formule denominate. Quindi, con alcuni semplici interventi, possibile
rieseguire il Risolutore con i vincoli modificati. Dopo avere calcolato una soluzione, possibile
inoltre salvare i riferimenti usati nella casella Cambiando le celle, al fine di usarli nella casella
corrispondente di Gestione scenari. Se si desidera usare Gestione scenari con la soluzione trovata
dal Risolutore, cliccare sul pulsante Salva Scenario, nella finestra di dialogo Risultato del Risolutore
di figura 44. Quando si apre la finestra di dialogo Salva scenario, digitare il nome desiderato.
Questo nome viene associato alle variabili determinate dal Risolutore per le celle elencate nella
casella di testo Cambiando le celle. Per memorizzare le impostazioni senza eseguire il Risolutore,
immetterle come descritto nelle precedenti istruzioni e quindi cliccare sul pulsante Chiudi.
4.2.8

Modifica della quantit disponibile di una risorsa

Nelle situazioni reali, le quantit disponibili di risorse spesso variano ed il Risolutore pu tenere
conto di queste variazioni.
Si supponga che sia possibile ottenere 100 Kg di minerali per L.10, il costo del gas necessario per il
trasporto. Questo acquisto causa una leggera variazione nel prezzo medio del minerale ed
necessario decidere se esso convenga, in termini di margine ottenuto, quindi occorre effettuare
un'analisi di convenienza comparata.
Per calcolare il margine ottenuto considerando l'acquisto degli ulteriori 100 Kg di minerali,
modificare la quantit disponibile di minerale in cella E12, da 3.500 a 3.600; immettere zeri
nell'intervallo G5:G8 e rieseguire il Risolutore con le stesse impostazioni del problema precedente.
Secondo i calcoli del Risolutore, aggiungendo 100 Kg di minerali, il margine passa da L.4.425,89 a
L.4.464,24. Il costo dei minerali, L.10, contribuisce per L.38,35 al margine, quindi l'acquisto senza
dubbio conveniente.

51

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Si potrebbe rispondere a questa domanda senza ricorrere al Risolutore, se si fosse creato un
rapporto di sensibilit nella precedente esecuzione. Fra le altre cose, il rapporto di sensibilit
mostra l'effetto marginale di piccoli cambiamenti nei vincoli. Questi valori sono definiti valori duplici,
prezzi ombra o (per i problemi non lineari) moltiplicatori di Lagrange. In questo caso, il valore
duplice riportato per il vincolo sui Minerali 0,3835.
4.2.9

Modifica dei vincoli

Nel mondo reale, si verificano frequenti cambiamenti nei vincoli di produzione ed il Risolutore in
grado di ricalcolare le soluzioni al variare dei vincoli.
Si supponga che vengano richieste 10 confezioni del prodotto Terriccio fertilizzante. Poich
secondo il piano di produzione formulato all'inizio, al fine di ottenete il margine massimo non
andrebbe prodotta alcuna confezione del prodotto in questione, si desidera determinare l'effetto sul
margine dato dalla produzione delle 10 confezioni.
Scegliere il comando Strumenti, Risolutore per aprire la finestra di dialogo Parametri del Risolutore;
aggiungere il nuovo vincolo e quindi rieseguire il Risolutore. Per aggiungere il vincolo, procedere
come segue.
1. Cliccare sul pulsante Aggiungi e quindi digitare il vincolo seguente.
$G$7>=10
L'istruzione indica che devono essere prodotte almeno 10 confezioni del prodotto
Terriccio fertilizzante. Cliccare su OK.
2. Cliccare sul pulsante Risolvi per calcolare il nuovo margine.
Il nuovo margine pari a L.4.039,10, valore inferiore di L.325,14 al margine ottenuto con l'aggiunta
dei 100 Kg di minerali. Per soddisfare le richieste del cliente, si ottiene una perdita a breve, tuttavia
la scelta potrebbe rivelarsi proficua nel lungo periodo.
possibile eliminare i vincoli impostati selezionandoli e cliccando sul pulsante Elimina. Cliccare sul
pulsante Reimposta per cancellare tutti i parametri nella finestra di dialogo Parametri del Risolutore.
4.2.10 Impostazione di vincoli con numeri interi
Secondo il valore in cella G5, il Risolutore consiglia di produrre una confezione di Fertilizzante
giardino. Selezionando la cella G5 ed osservando la barra della formula, si nota che il Risolutore
calcola come valore ottimale il numero 0,879608026131586. Il valore calcolato viene arrotondato
per la visualizzazione all'intero pi vicino, a causa della formattazione della cella; tuttavia la formula
Margine in cella I17 usa il valore calcolato, quindi determina un risultato che considera la produzione
e la vendita di una frazione e non dell'intera confezione. Affinch il Risolutore usi, per le confezioni
da produrre, soli valori interi, scegliere il comando Strumenti, Risolutore e, dalla finestra di dialogo
Parametri del Risolutore, aggiungere un vincolo intero e rieseguire il Risolutore. Per aggiungere un
vincolo intero, procedere come segue.
1. Nella finestra di dialogo Parametri del Risolutore, cliccare sul pulsante Aggiungi.
2. Selezionare le celle $G$5:$G$8.
3. Selezionare l'opzione int dalla casella di riepilogo a discesa contenente gli operatori di
comparazione. Il contenuto della casella Vincolo diventa "intero".
4. Cliccare su OK. Il vincolo $G$5:$G$8=intero compare nella casella di riepilogo Vincoli.
5. Cliccare sul pulsante Risolvi. Il Risolutore calcola solo numeri interi per le confezioni da
produrre. Si tenga presente che i vincoli interi rallentano notevolmente i calcoli.
52

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


Il nuovo margine pari a L.4.023,11 e la produzione consigliata di Fertilizzante giardino zero; il
valore inferiore a prima, ma pi preciso e realistico, poich tutte le quantit sono espresse
come numero intero. Si noti che il Risolutore non arrotonda semplicemente la soluzione precedente
all'intero pi vicino. In questo problema, cosi facendo si eccederebbero i vincoli. In altri problemi,
altre combinazioni di valori interi per le variabili potrebbero essere preferibili al semplice
arrotondamento. Il margine inferiore a prima: i vincoli addizionali, inclusi i vincoli interi, possono
solo peggiorare l'obiettivo o lasciarlo invariato.
I vincoli interi presentano molti utilizzi, che vanno ben oltre questo esempio. Se si impone un vincolo
inferiore pari a 0, un vincolo superiore pari ad 1 ed un vincolo intero sulla stessa cella variabile, la
cella deve essere 0 o 1 come soluzione ottimale. Una tale variabile pu rappresentare una
decisione del tipo "si /no", quale avviare una macchina o costruire un nuovo impianto che pu avere
costi fissi associati. Sebbene il Risolutore non possa gestire direttamente problemi con funzioni
discontinue (come SE() e CERCA.VERT()), come detto sopra, lo stesso effetto spesso si pu
ottenere usando vincoli interi, che il Risolutore riesce a gestire.
Excel 97 prevede una scelta ulteriore nella casella di riepilogo dei simboli di confronto. Si tratta della
scelta per i valori binari, che visualizza Binario nella casella Vincolo e permette di combinare un
vincolo >= 0, un vincolo <= 1 ed un vincolo "int sulle stesse celle variabili. Questa viene spesso
definita variabile "0~1" o "intera binaria".
Si tenga presente tuttavia che i vincoli interi possono accrescere notevolmente i tempi di calcolo.
Esistono alcuni noti problemi con solo alcune centinaia di variabili intere, cosi difficili da non essere
mai stati risolti in modo ottimale, anche dai computer pi veloci.
4.2.11 Variare i parametri operativi del Risolutore
possibile intervenire in vari modi sulla modalit di lavoro usata dal Risolutore, attraverso la
finestra di dialogo Opzioni del Risolutore (figura 45), visualizzata scegliendo il pulsante Opzioni
dalla finestra di dialogo Parametri del Risolutore. I parametri standard sono adatti per la maggior
parte dei problemi da risolvere. In tabella sono elencate e descritte le altre opzioni.

Figura 45 - La finestra di dialogo Opzioni dei Risolutore permette di controllare in vari modi la modalit di lavoro
dei Risolutore per il calcolo delle soluzioni

53

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Opzione

Effetto

Tempo massimo

Specifica tempo massimo, in secondi che il


Risolutore pu impiegare per trovare una soluzione.

Iterazioni

Specifica il numero dei ricalcoli eseguiti da


Risolutore per trovare una soluzione.

Approssimazione

Specifica lapprossimazione che deve essere


raggiunta tra due soluzioni, affinch venga dichiarata
la soluzione ottimale.

Tolleranza

Specifica, in percentuale, lapprossimazione della


soluzione calcolata, rispetto alla soluzione migliore,
quando di lavora con i numeri interi. Se i problemi
sono complessi, impostando una tolleranza pi alta,
il calcolo diventa pi veloce lopzione va usata solo
con i modelli basati sui numeri interi.

Convergenza

Specifica quanto devono avvicinarsi il valore


obiettivo e le soluzioni delle prove successive,
affinch il Risolutore visualizzi il messaggio di
convergenza alla soluzione corrente. Da usare solo
con i problemi non lineari, quando non attivata la
casella Presupponi modello lineare.

Presupponi modello lineare

Attivando questa opzione, il Risolutore usa un


metodo di soluzione lineare e compare un avviso se
il modello non di tipo lineare.

Presupponi non negativo

Specifica che alle celle variabili che non presentano


vincoli espliciti > = nella casella Vincolo, deve
essere attribuito un limite interiore presunto > = 0.

Usa scala automatica

Attivando questa opzione, il Risolutore imposta


alcune delle celle variabili a valori molto pi grandi o
pi piccoli di altri.

Mostra il risultato delle iterazioni

Attivando questa opzione, vengono visualizzate le


soluzioni interne die calcolate ed possibile
scegliere di continuare o smettere.

Stima

Metodi di soluzione ulteriori sono Tangente e


Quadratica. Usare lopzione Quadratica si il foglio di
lavoro contiene formule complesse non lineari.

Derivate

Specificare il metodo di derivazione parziale, usando


le opzioni Diretta o Centrale.
La derivazione
centrale pu richiedere pi tempo ma calcola
soluzioni migliori,

Cerca

Specifica il metodo di ricerca Newton o Gradienti


coniugati.

Fare attenzione nell'uso di una Approssimazione molto pi piccola dello standard, polche la
precisione finita dell'aritmetica dei computer virtualmente assicura che i valori calcolati dal
Risolutore differiranno dai valori attesi o "veri" di un piccolo importo. Dall'altro lato, l'impostazione
54

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


della precisione ad un valore molto pi grande indurrebbe i vincoli ad essere soddisfatti troppo
facilmente. Se i vincoli non sono soddisfatti poich i valori da calcolare sono molto grandi, ad
esempio miliardi, considerare la selezione della casella Usa scala automatica, anzich alterare la
precisione.
In Excel 97, la funzione Usa scala automatica funziona sia per i problemi lineari che non lineari.
Nelle versioni precedenti di Excel, questa opzione era efficace solo per i problemi non lineari.
Grazie ad un perfezionamento collegato del programma, anche i test che il Risolutore usa per
verificare che un modello sia lineare usano la scala automatica. Le versioni precedenti del
Risolutore, in alcuni casi, hanno identificato modelli lineari contenenti valori con ordini di grandezza
molto diversi come non lineari; questo problema non dovrebbe verificarsi con la nuova versione del
Risolutore.
4.2.12 Stampa dei rapporti del Risolutore
Il Risolutore genera rapporti che riassumono i risultati delle soluzioni calcolate. Questi rapporti
permettono di confrontare l'effetto ottenuto sui risultati con la variazione dei vincoli e dei valori di
base.
Il Risolutore pu generare tre tipi di rapporti: Valori, Sensibilit e Limiti. Per creare un rapporto dopo
avere risolto un modello, selezionare uno o pi tipi dalla casella di riepilogo Rapporti, nella finestra
Risultato del Risolutore di figura 44. Scegliere il pulsante di guida, per avere informazioni su ci che
contenuto in ogni tipo di rapporto. Per selezionare pi tipi di rapporti dall'elenco, cliccare sul
primo, tenere premuto Ctrl e cliccare sugli altri. Ciascun rapporto viene immesso in un proprio
foglio. Selezionare la scheda del foglio o premere Ctrl+PagGi e Ctrl+PagSu per attivare in
sequenza i rapporti ed il foglio di dati originale.
4.2.13 Salvataggio e caricamento dei dati del Risolutore
Il Risolutore salva sul foglio di lavoro le ultime impostazioni usate per risolvere un problema (le
impostazioni attive nella finestra di dialogo Parametri del Risolutore quando si sceglie OK). Le
ultime impostazioni usate vengono memorizzate in formule denominate e quando si apre in seguito
quel foglio di lavoro e si esegue il Risolutore, compare la finestra di dialogo Parametri del Risolutore
nella forma in cui la si era usata la volta precedente. Ogni foglio della cartella di lavoro mantiene gli
ultimi parametri del Risolutore usati su quel foglio.
In alcuni casi, utile memorizzare impostazioni predefinite per la finestra di dialogo Parametri del
Risolutore e si pu procedere immettendo i singoli gruppi di impostazioni nelle celle del foglio di
lavoro, per poterle caricare velocemente all'occorrenza.
possibile salvare e caricare pi modelli (gruppi di impostazioni) del Risolutore, cliccando sul
pulsante Opzioni dalla finestra di dialogo Parametri del Risolutore.
Per salvare le impostazioni del Risolutore, procedere come segue.
1. Immettere le impostazioni da salvare nelle finestre di dialogo Parametri del Risolutore ed
Opzioni del Risolutore.
2. Se la finestra di dialogo Opzioni dei Risolutore non visualizzata, scegliere Opzioni.
3. Selezionare Salva modello.
4. Dalla finestra di dialogo Salva modello, selezionare un intervallo di celle sul foglio di lavoro
uguale al numero di vincoli pi tre celle ulteriori. L'intervallo pu presentare qualsiasi forma,
pu essere inoltre pi grande del dovuto. Excel avvisa l'utente se l'intervallo non
abbastanza grande. Se si seleziona una sola cella, Excel estende l'intervallo verso il basso,
sul numero di celle richiesto.
55

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5. Cliccare su OK per accettare l'intervallo presente nella finestra di dialogo e cliccare di nuovo
su OK quando ricompare la finestra di dialogo Opzioni del Risolutore.
6. Dalla finestra di dialogo Parametri del risolutore, cliccare sul pulsante Chiudi per ritornare al
foglio di lavoro.
L'intervallo viene riempito con le impostazioni della finestra di dialogo Parametri del Risolutore. In
figura 46 compare un esempio dei parametri salvati.

Figura 46 - Le impostazioni della finestra di dialogo Parametri del Risolutore possono essere salvate come
valori in cella per facilitare l'uso delle impostazioni in futuro

Quando si usa la procedura descritta per salvare il modello, vengono salvate tutte le informazioni
necessarie affinch il Risolutore possa funzionare, le quali permettono di attivare prospettive
diverse di analisi dei problema. Quando si esegue il comando Salva Scenario al termine di un
calcolo dei Risolutore, si salvano i soli valori per le celle variabili.
Per caricare le impostazioni al fine di rieseguire un modello del Risolutore salvato, procedere come
segue.
1. Scegliere Strumenti, Risolutore.
2. Cliccare sul pulsante Opzioni.
3. Scegliere Carica modello.
4. Selezionare l'intervallo contenente il modello e cliccare su OK. Se stata modificata una
qualsiasi impostazione, compare un messaggio di avviso. Cliccare su OK.
5. Quando ricompare la finestra di dialogo Parametri del Risolutore, cliccare su OK.
6. Cliccare sul pulsante Risolvi per eseguire il Risolutore con il modello caricato; oppure
cliccare sul pulsante Chiudi per effettuare l'analisi in seguito.

56

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5

Proteggere le cartelle e i fogli di lavoro

Dopo avere fatto un grande sforzo per creare un foglio o una cartella di lavoro complicata o piena di
formule complesse, sicuramente vorrete evitare che altre persone modifichino o eliminino
inavvertitamente le formule. Anche nel caso di un foglio di lavoro con oggetti grafici complessi o con
un grafico importante, vorrete evitare che altre persone aprano la cartella di lavoro e modifichino gli
oggetti. In Excel sono inclusi alcuni blocchi che aiutano a proteggere le cartelle di lavoro intere o i
singoli fogli in una cartella.
Potete proteggere una cartella di lavoro per evitare che vengano eseguite su di essa le seguenti
operazioni:
eliminare o inserire fogli di lavoro;
modificare il nome del fogli di lavoro;
copiare o spostare fogli di lavoro;
nascondere o mostrare fogli di lavoro;
modificare le dimensioni o la forma delle finestre dei fogli di lavoro;
dividere o unire pannelli;
bloccare o sbloccare pannelli.
Potete proteggere un foglio di lavoro se desiderate che non vengano apportate modifiche ai
seguenti elementi:
contenuto delle celle;
grafici;
oggetti grafici;
definizioni di scenari.
Se desiderate condividere una cartella di lavoro e assicurarvi allo stesso tempo che vengano
registrate le modifiche apportate dagli altri utenti, potete. proteggere una cartella di lavoro condivisa,
facendo in modo che nessuno possa annullare il rilevamento delle modifiche.
5.1

PROTEGGERE UNA CARTELLA DI LAVORO

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Proteggi
cartella di lavoro.
2. Nella finestra di dialogo Proteggi cartella di lavoro, selezionate la casella di controllo
Struttura o Finestre o entrambe. A meno che non sia assolutamente necessario, non
consigliabile utilizzare una password, pertanto lasciate vuota la casella Password (in questo
modo potrete rimuovere la protezione dalla cartella di lavoro per apportare modifiche molto
pi velocemente).
3. Scegliete OK.
Per rimuovere la protezione da una cartella di lavoro, in modo che sia possibile apportare modifiche
alla disposizione dei fogli di lavoro o delle finestre, nel menu Strumenti posizionate il puntatore del
mouse su Protezione e scegliete Rimuovi protez. cartella di lavoro. Se avete protetto la cartella di
lavoro con una password, dovete immetterla e scegliere OK.
Chiunque conosca Excel pu rimuovere la protezione da una cartella di lavoro, pertanto, per
proteggere realmente una cartella, dovete digitare una password nella casella Password. Ricordate
che nella password viene fatta distinzione tra lettere maiuscole e minuscole e che, se la
dimenticate, non potrete pi aprire la cartella di lavoro.

57

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


5.1.1

Proteggere un foglio di lavoro

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Proteggi
foglio.
2. Nella finestra di dialogo Proteggi foglio, selezionate la casella di controllo Contenuto, Oggetti
o Scenari. Selezionando Oggetti si proteggono gli oggetti grafici, inclusi i grafici.
Selezionando Scenari si proteggono le definizioni degli scenari; gli scenari possono essere
visualizzati, ma non modificati. Selezionando Contenuto si protegge il contenuto delle celle
bloccate, in modo che non possano essere modificate. In base alle impostazioni predefinite,
tutte le celle nei fogli di lavoro sono bloccate, pertanto tutte le celle vengono protette quando
si protegge un foglio di lavoro. Se desiderate proteggere le formule, permettendo agli utenti
di immettere i valori utilizzati da queste, dovete sbloccare le celle nelle quali si possono
immettere i valori e proteggere il foglio di lavoro. Come con la protezione delle cartelle di
lavoro, a meno che non sia assolutamente necessario, non consigliabile utilizzare una
password, pertanto lasciate vuota la casella Password (in questo modo potrete rimuovere la
protezione dal foglio di lavoro per apportare modifiche molto pi velocemente).
3. Scegliete OK.
Per rimuovere la protezione da un foglio di lavoro e apportare modifiche alle formule, nel menu
Strumenti posizionate il puntatore del mouse su Protezione e scegliete Rimuovi protezione foglio.
Se avete protetto il foglio di lavoro con una password, dovete immettere la password e scegliere
OK.
5.1.2

Sbloccare celle in un foglio di lavoro prima di proteggerle

1. Selezionate le celle specifiche che desiderate sbloccare (in modo che sia possibile
modificarne i valori). In base alle impostazioni predefinite, tutte le celle in un foglio di lavoro
sono bloccate.
2. Scegliete Formato e Celle.
3. Nella scheda Protezione della finestra di dialogo Formato Celle, deselezionate la casella di
controllo Bloccata.
4. Scegliete OK.
Ora potete proteggere il foglio di lavoro per impedire che vengano apportate modifiche alle celle
bloccate, permettendo tuttavia di immettere dati in quelle non bloccate.
Nella scheda Protezione delta finestra di dialogo Formato celle vi una casella di controllo che
permette di "nascondere" le celle. In realt, le celle non sono nascoste, in quanto sono visibili, ma
sono nascoste le formule che contengono. Se nascondete una cella che contiene una formula e
quindi selezionate la cella, nella barra della Formula non appare niente. Potete usare questa
funzionalit, per esempio, per creare una formula complessa che non volete mostrare ad altri. Per
farlo, nascondete e bloccate la cella e proteggete il foglio di lavoro e nessuno potr vedere la
formula.
5.1.3

Proteggere il rilevamento delle modifiche in una cartella di lavoro condivisa

1. Nel menu Strumenti, posizionate il puntatore del mouse su Protezione.


2. Scegliete Proteggi e condividi cartella di lavoro.
3. Nella finestra di dialogo Proteggi cartella condivisa, selezionate la casella di controllo
Condividi con rilevamento modifiche, quindi scegliete OK. La rimozione della protezione e
quella della condivisione dalla cartella di lavoro sono due passaggi separati. Innanzitutto,
scegliete Strumenti, posizionate il puntatore del mouse su Protezione e scegliete Rimuovi
protezione cartella condivisa; quindi, scegliete Strumenti e Condividi aree di lavoro,
deselezionate la casella di controllo Consenti modifiche e scegliete OK.

58

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale

Personalizzazione dei grafici

6.1

M ODIFICARE I COLORI E LE LINEE E I CARATTERI DI UN GRAFICO

Esattamente come i fogli di lavoro, anche i grafici possono limitarsi a rappresentare in maniera
molto spartana oppure essere rielaborati fino ad assumere laspetto desiderate.
Quando si crea un nuovo grafico, Excel usa le impostazioni predefinite per i colori, per i caratteri e
per le altre caratteristiche grafiche, pertanto il grafico si presenta come qualsiasi altro grafico creato
con Excel 2000. Tuttavia, dopo averlo creato, avete a disposizione innumerevoli possibilit per
modificarne laspetto.
Una volta raggiunto il risultato estetico desiderate, potete salvare lintera serie celle impostazioni di
formattazione per riutilizzarle come formate personalizzato.
Per mantenere viva lattenzione del pubblico durante una presentazione, cercate di usare nei grafici
una formattazione accattivante per i colori, le linee e i caratteri; per ottenere omogeneit e
professionalit in una presentazione che include diversi grafici, cercate di mantenere uno stile
uniforme usando la stessa formattazione.
Per modificare il colore, il tratto, il tipo di carattere e le altre caratteristiche di un elemento, dovete
selezionare loggetto e aprire la finestra di dialogo Formato. A volte pu risultare complicato
selezionare un elemento, per esempio perch troppo piccolo o nascosto da altri; e per questo
che sono disponibili pi modi per selezionare gli oggetti del grafico da elaborare.
6.1.1

Modificare la formattazione dei colori, delle linee e dei caratteri in un grafico

1. Per selezionare lelemento desiderato potete:

fare clic su di esso con il mouse;

nella casella Oggetti grafico sulla barra degli strumenti Grafico, fare clic sulla freccia
e selezionare il nome dell'oggetto nellelenco;

selezionare un qualsiasi elemento, quindi muovervi con i tasti freccia a destra e a


sinistra per spostarvi sugli altri oggetti.

2. Per aprire la finestra di dialogo Formato relativa agli elementi selezionati potete:

fare doppio clic su uno degli elementi selezionati;

fare clic sul pulsante Formato sulla barra degli strumenti Grafico (il nome del
pulsante sar Formato <oggetto>, a seconda dell'oggetto selezionato);

fare clic con il pulsante destro del mouse sullelemento, quindi scegliere Formato (il
nome del comando sar Formato <oggetto>, a seconda dell'oggetto selezionato).

3. Selezionate le opzioni desiderate nella finestra di dialogo Formato.


4. Scegliete OK.
Il Per cambiare rapidamente il colore, selezionate I'elemento, quindi usate il pulsante Colore
riempimento o Colore carattere sulla barra degli strumenti Formattazione. Le opzioni che possono
essere selezionate con questi pulsanti sono limitate in confronto a quelle offerte dalla finestra di
dialogo, ma questo metodo molto pi veloce.

59

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


6.2

ELIMINARE UN ELEMENTO DI UN GRAFICO

Potete eliminare da un grafico qualsiasi elemento: singole serie, elementi aggiunti


successivamente (per esempio una linea di tendenza), la legenda, la tabella del dati, gli assi e le
linee della griglia. Potete cancellare qualsiasi oggetto, in modo da lasciare esclusivamente gli
elementi che desiderate visualizzare.
6.2.1

Eliminare un elemento di un grafico

1. Selezionate lelemento.
2. Premete Canc.
Se cambiate idea dopo avere cancellato un elemento, potete fare clic sul pulsante Annulla sulla
barra degli strumenti Standard per ripristinarlo.
6.3

M ODIFICARE LA SCALA DEGLI ASSI

Modificando la scala di un asse del grafico, avete la possibilit di influenzare lopinione del pubblico.
Per esempio, immaginate che un impianto chimico sia stato costruito ai margini di un bosco e che
sia in corso una discussione sugli effetti che lo stabilimento avr sulla vita degli alberi. Voi avete
misurato il numero di alberi per ettaro in quattro settori della foresta e il risultato sempre tra 100 e
200.
Se volete convincere il pubblico che tra i settori non esistono differenze sostanziali, potete mostrare
i dati in una scala da 0 a 200. Per convincere gli interlocutori che nel settore Quad2 vicino
all'impianto chimico si registrano dei grossi rischi, potete visualizzare i dati usando una scala molto
pi ridotta, che varia dal valore minimo a quello massimo. I dati sono gli stessi e possono essere
presentati in un modo o nell'altro: quello che cambia la percezione che ne ricava il pubblico.
6.3.1

Modificare la scala di un asse di un grafico

1. Selezionate lasse.
2. Fate clic sul pulsante Formato asse che si trova sulla barra degli strumenti Grafico. Viene
aperta la finestra di dialogo Formato asse.
3. Nella casella Valore massimo della scheda Scala, digitate il valore massimo da visualizzare
nella scala personalizzata.
4. Nella casella Valore minimo, digitate invece il valore minimo da visualizzare.
6.4

M ODIFICARE L'ORDINE DELLE SERIE

Quando create un grafico, le serie di dati vengono rappresentate nell'ordine in cui Excel le trova
all'interno dell'intervallo di origine, ma questo non assolutamente un vincolo. Potete decidere di
modificare la sequenza delle serie, specialmente se avete realizzato un grafico 3D, in cui eventuali
serie con valori troppo alti in primo piano possono nascondere serie con colonne pi basse poste in
secondo piano
6.4.1

Modificare l'ordine delle serie in un grafico

1. Fate doppio clic su una serie qualsiasi all'interno del grafico. Viene aperta la finestra di
dialogo Formato serie dati.
2. Selezionate la scheda Ordine delle serie.

60

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 professionale


3. Modificate l'ordine delle serie: selezionate il nome di una serie, quindi scegliete Sposta in
alto o Sposta in basso.
4. Al termine, scegliete OK.
Modificando l'ordine delle serie, il grafico pu diventare molto pi leggibile (potete modificare l'ordine
delle serie anche nei grafici bidimensionali).
I grafici 3D, in genere, hanno altezza e larghezza uguali, ma solitamente si preferisce modificare
quest'impostazione.
6.5

M ODIFICARE LA PROSPETTIVA DI UN GRAFICO 3D

Un grafico tridimensionale pu risultare estremamente efficace, ma a volte pu essere difficile


riconoscere tutti i valori, perch alcuni indicatori possono nasconderne altri.
Per rendere visibili i valori nascosti potete notare il grafico 3D su tutti e tre gli assi. Per ruotare
velocemente basta trascinare uno degli angoli dell'area del tracciato; per una maggiore precisione
potete utilizzare una finestra di dialogo in quanto questa consente un controllo pi accurato della
rotazione. I grafici 3D presentano alcuni elementi che mancano in quelli 2D: i concetti di parete e di
base. Pensate al grafico come a una scatola alla quale sono stati tagliati due lati: le pareti sono i lati
rimasti, mentre la base larea che si trova sotto i valori. Se fate clic sulle pareti o sulla base, su
ogni angolo vengono visualizzati alcuni quadratini che potete usare per ruotare lintero grafico in
qualsiasi direzione.
6.5.1

Modificare la prospettiva di un grafico 3D con il trascinamento

1. Selezionate le pareti o la base del grafico.


Su ogni angolo vengono visualizzati alcuni quadratini.
2. Trascinate uno degli angoli per ruotare il grafico Per avere un controllo pi precise del
trascinamento:

6.5.2

trascinate uno degli angoli in primo piano della base;


tenete premuto il tasto Ctrl durante il trascinamento per visualizzare la struttura degli
indicatori.

Modificare la prospettiva utilizzando una finestra di dialogo

Per modificare la prospettiva trascinando uno degli angoli del grafico necessaria un po' di pratica;
di seguito descritta una tecnica per la rotazione che garantisce un controllo pi preciso sulla
prospettiva del grafico.
6.5.3

Modificare la prospettiva utilizzando una finestra di dialogo

1. Fate clic con il pulsante destro del mouse sull'area del grafico o del tracciato.
2. Scegliete Visualizzazione 3D. Si apre la finestra di dialogo Visualizzazione 3D.
3. Ruotate il grafico attorno a uno dei tre assi (Elevazione, Rotazione o Prospettiva) facendo
clic sui relativi pulsanti.
4. Al termine, scegliete OK.

61

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Dipartimento del Tesoro

EXCEL 2000
avanzato

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

1. LA RIORGANIZZAZIONE DI CARTELLE E FOGLI


3
1.1 CARTELLE DI LAVORO E FOGLI ................................................................................................... 3
1.2 SCELTA DEL NUMERO DI FOGLI PER LE NUOVE CARTELLE ........................................................... 4
1.3 INSERIMENTO E RIMOZIONE DEI FOGLI......................................................................................... 4
1.4 COPIA E SPOSTAMENTO DEI FOGLI.............................................................................................. 5
1.5 RINOMINA DI UN FOGLIO............................................................................................................. 8
1.6 RAGGRUPPAMENTO DEI FOGLI PER LA MODIFICA, LA FORMATTAZIONE E LA RIORGANIZZAZIONE ...... 9
1.7 DARE UN NOME AGLI INTERVALLI .............................................................................................. 10
2. FORMULE E FORMATTAZIONE DEI FOGLI
13
2.1 AUTOCOMPOSIZIONE FUNZIONE............................................................................................... 13
2.2 FORMATTAZIONE DI UN FOGLIO DI LAVORO ................................................................................ 14
2.3 CAMBIARE LA FORMATTAZIONE DEL CARATTERE ........................................................................ 16
2.4 APPLICARE IL FORMATO NUMERICO, DATA O ORA ..................................................................... 17
2.5 ALLINEARE IL TESTO O NUMERI ................................................................................................ 17
3. GESTIONE IMMAGINI
19
3.1 INSERIMENTO .......................................................................................................................... 19
3.2 RIDIMENSIONAMENTO .............................................................................................................. 19
3.3 ELIMINAZIONE E SPOSTAMENTO................................................................................................ 20
3.4 BARRA DEGLI STRUMENTI IMMAGINE: ........................................................................................ 20
4. USO DI EXCEL COME DATABASE
22
4.1 CHE COS UN DATABASE ........................................................................................................ 22
4.2 ANALIZZARE UN DATABASE ....................................................................................................... 29
5. RICERCA OBIETTIVO
33
5.1 QUALE STRUMENTO USARE ..................................................................................................... 33
5.2 USO DELLA FUNZIONE RICERCA OBIETTIVO ............................................................................... 33
6. PERSONALIZZARE LE BARRE DEGLI STRUMENTI
37
6.1 SPOSTARE LE BARRE DEGLI STRUMENTI................................................................................... 37
6.2 NASCONDERE E MOSTRARE LE BARRE DEGLI STRUMENTI.......................................................... 38
6.3 MODIFICARE I PULSANTI E LE BARRE DEGLI STRUMENTI PREIMPOSTATE ..................................... 39
7. DISEGNO DI OGGETTI GRAFICI
41
7.1 PRINCIPI DEL DISEGNO............................................................................................................ 41
7.2 DISEGNARE UN OGGETTO GRAFICO DI BASE.............................................................................. 42
8. FUNZIONI CONDIZIONALI
44
8.1 CHE COSA SONO LE FUNZIONI CONDIZIONALI............................................................................ 44
8.2 SOMMA.SE .............................................................................................................................. 44
8.3 CONTA.SE............................................................................................................................... 45
8.4 SE .......................................................................................................................................... 46
8.5 E, O....................................................................................................................................... 46

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

1. La riorganizzazione di cartelle e fogli


La cartella di lavoro e i fogli contenuti in essa costituiscono i fondamenti di qualsiasi applicazione
del programma, in ogni contesto di lavoro. Ogni cartella contiene pi fogli di lavoro, sui quali
possibile immettere formule, database, grafici, diapositive, macro e procedure Visual Basic.
Le cartelle di lavoro facilitano il raggruppamento dei documenti per progetto, o secondo qualsiasi
altro criterio. Quando occorre creare pi cartelle di lavoro simili per progetti dello stesso tipo,
preferibile definire un modello, che conferisca un aspetto standardizzato a tutti i documenti.
Quando si apre una nuova cartella di lavoro, essa contiene un numero standard di fogli. Questo
numero non fisso ed possibile sia variarlo per tutte le nuove cartelle aperte, modificandone
l'impostazione; sia ridurlo o aumentarlo nella singola cartella, eliminando o inserendo altri fogli di
qualsiasi tipo.
Questo capitolo tratta i seguenti argomenti.

Modifica del numero di fogli standard per le nuove cartelle di lavoro

Inserimento e rimozione dei fogli dalle cartelle di lavoro

Copia e spostamento dei fogli di lavoro

Rinomina dei fogli di lavoro

Raggruppamento dei fogli di lavoro per la modifica, la formattazione e la riorganizzazione

Gestione dei problemi dati dai riferimenti tridimensionali in seguito alla riorganizzazione dei
fogli

In fase di organizzazione di una cartella di lavoro, si tenga presente che tutti i fogli contenuti in essa
si aprono con la cartella e ciascuno occupa memoria. Quindi, se in una cartella che si usa
quotidianamente contenuto un foglio di lavoro molto esteso usato solo raramente, preferibile
inserirlo in una cartella a parte, da aprire solo all'occorrenza.

1.1 CARTELLE DI LAVORO E FOGLI


La cartella di lavoro il file di Excel e costituisce l'ambito in cui l'utente lavora ed immette le
informazione. Ogni cartella pu contenere pi fogli e si pu trattare di fogli di lavoro, grafici,
diapositive, macro, fogli di dialogo, modelli Visual Basic. Quando si apre, si chiude, si salva, si
duplica o si elimina un file in Excel, si interviene su una cartella di lavoro.
La cartella di lavoro standard si apre con tre fogli, ma questo numero pu essere variato
liberamente e trova unico limite nella memoria disponibile. I nomi dei fogli compaiono sulle schede
dei fogli, in fondo alla finestra della cartella di lavoro, e per attivare i singoli fogli, sufficiente
cliccare sulla scheda relativa o usare le combinazioni da tastiera Ctrl+PagSu o Ctrl+PagGi.
L'etichetta sulla scheda del foglio attivo appare in grassetto.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

1.2 SCELTA DEL NUMERO DI FOGLI PER LE NUOVE CARTELLE


Per modificare il numero dei fogli che saranno contenuti nelle nuove cartelle di lavoro, procedere
come segue.
1. Scegliere Strumenti, Opzioni per aprire la finestra di dialogo Opzioni.
2. Cliccare sulla scheda Generale (figura 1).
3. Selezionare l'opzione Fogli nella nuova cartella e specificare il numero di fogli desiderato,
cliccando sulla freccia a destra della casella. Dalla tastiera, premere Alt+V e quindi il tasto
Freccia in su o Freccia in gi, oppure digitare il numero desiderato.
4. Cliccare su OK.
Tutte le nuove cartelle di lavoro create conterranno il numero di fogli scelto, fino a quando questo
numero non verr nuovamente modificato attraverso l'opzione Fogli nella nuova cartella.

1.3 INSERIMENTO E RIMOZIONE DEI FOGLI


In una cartella di lavoro, pu essere necessario aggiungere ulteriori dati, da disporre su nuovi fogli,
oppure eliminare fogli esistenti, contenenti informazioni che non servono pi. possibile, in ogni
momento, inserire e rimuovere fogli a piacere, in qualsiasi cartella di lavoro.

Figura 1 - L'opzione Fogli nella nuova cartella controlla il numero dei fogli per le nuove
cartelle di lavoro create
1.3.1 Inserimento di un foglio
Per inserire un nuovo foglio in una cartella di lavoro, procedere come segue.
1. Attivare la cartella di lavoro in cui inserire il foglio.
2. Selezionare il foglio di lavoro prima del quale inserire il nuovo foglio, cliccando sulla scheda
del foglio, in fondo alla cartella di lavoro, o premendo Ctrl+PagSu o Ctrl+PagGi.
4

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

3. Scegliere il comando di inserimento Inserisci, Foglio di lavoro.


possibile inoltre utilizzare le scelte rapide da tastiera: Maiusc+F11 per inserire un nuovo foglio di
lavoro; F11 per inserire un nuovo foglio grafico o Ctrl+F11 per inserire un nuovo foglio macro di
Excel.
Per l'inserimento dei nuovi fogli, disponibile un menu di scelta rapida. Posizionare il puntatore del
mouse sulla scheda dei foglio attivo e cliccare con il pulsante destro. Scegliere Inserisci e, dalla
finestra di dialogo Inserisci, scegliere Foglio di lavoro, Grafico, Macro MS Excel, Foglio macro
internazionale, o Finestra di dialogo di Microsoft Excel.
possibile inserire contemporaneamente diversi fogli dello stesso tipo. Raggruppare pi fogli
adiacenti (con il metodo descritto sotto), quindi eseguire le istruzioni al punto 3 della procedura
precedente per inserire i fogli. Il numero dei fogli inseriti uguale al numero dei fogli del gruppo. Per
inserire un foglio nella posizione finale di una cartella di lavoro, inserirlo in una posizione qualsiasi e
quindi spostarlo in fondo alla cartella di lavoro.
1.3.2 Rimozione di un foglio
Per rimuovere un foglio da una cartella di lavoro, procedere come segue.
1. Selezionare il foglio da rimuovere.
2. Scegliere il comando Modifica, Elimina foglio. Compare un messaggio di conferma.
3. Cliccare su OK.
Alfine di rimuovere un foglio dal menu di scelta rapida, cliccare sulla scheda dei foglio da rimuovere
ci per attivarlo, cliccare con il pulsante destro dei mouse e scegliere Elimina.
possibile rimuovere pi fogli contemporaneamente, raggruppandoli prima di scegliere il comando
d eliminazione.

1.4 COPIA E SPOSTAMENTO DEI FOGLI


possibile copiare e spostare i fogli, sia nella stessa cartella di lavoro, sia da una cartella di lavoro
all'altra.
1.4.1 Copia di un foglio
Con il mouse, per copiare un foglio nella stessa cartella di lavoro o in un'altra, procedere come
segue.
1. Selezionare il foglio da copiare.
2. Per copiare il foglio nella stessa cartella di lavoro, tenere premuto Ctrl e trascinare nella
nuova posizione la scheda del foglio, in fondo alla cartella di lavoro. Per copiare il foglio in
un'altra cartella di lavoro, disporre la visualizzazione in modo da vedere entrambe le cartella
di lavoro, utilizzando il comando Finestra, Disponi. Tenere premuto Ctrl e trascinare nella
nuova posizione la scheda del foglio, in fondo alla cartella di lavoro di destinazione. Durante
il trascinamento lungo le schede, compare un piccolo triangolo nero (figura 2) indicante la
posizione di destinazione della copia.
3. Rilasciare il pulsante del mouse.
5

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Una copia del foglio viene inserita nella nuova posizione. Il nome della copia lo stesso del foglio
originale e, se nella cartella di lavoro esiste gi un foglio con lo stesso nome, al nome del nuovo
foglio viene aggiunto un numero fra parentesi. Ad esempio, se il foglio originale denominato Alfa, il
foglio copiato sar Alfa (2).
Dalla tastiera, per copiare un foglio in un'altra cartella di lavoro, procedere come segue.
1. Attivare la cartella di lavoro da cui copiare il foglio, dopo avere aperto anche la cartella di
destinazione.
2. Selezionare il foglio da copiare.

Figura 2 - Mentre si trascina la scheda di un foglio, un piccolo triangolo indica la posizione


di destinazione
3. Scegliere il comando Modifica, Sposta o copia foglio. Si apre la finestra di dialogo Sposta o
copia di figura 3.

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Figura 3 - La finestra di dialogo Sposta o copia


4. Dalla casella di riepilogo Alla cartella, selezionare il nome della cartella di lavoro di
destinazione.
5. Dalla casella di riepilogo Prima del foglio, selezionare il nome del foglio prima del quale
inserire il foglio copiato.
6. Selezionare la casella di controllo Crea una copia.
7. Cliccare su OK.
possibile copiare pi fogli contemporaneamente, selezionando e copiando un gruppo, con la
procedura precedente. I fogli copiati vengono inseriti in ordine e rimangono adiacenti.
Con il mouse, per copiare un foglio e contemporaneamente creare una nuova cartella di lavoro in
cui inserirlo, tenere premuto Alt e trascinare la scheda del foglio sullo sfondo della finestra di Excel.
Quindi rilasciare il pulsante del mouse. Una copia del foglio compare in una nuova cartella di lavoro
che contiene il solo foglio copiato.
Dalla tastiera, per copiare un foglio in una nuova cartella di lavoro che non contiene altri fogli,
procedere come segue.
1. Selezionare il foglio da copiare.
2. Scegliere il comando Modifica, Sposta o copia foglio.
3. Dalla casella di riepilogo Alla cartella, selezionare (nuova cartella).
4. Selezionare la casella di controllo Crea una copia.
5. Cliccare su OK.
1.4.2 Spostamento di un foglio
Con il mouse, per spostare un foglio nella stessa cartella di lavoro o in un'altra, procedere come
segue.
1. Selezionare il foglio da spostare.
7

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

2. Per spostare il foglio nella stessa cartella di lavoro, trascinarne la scheda nella nuova
posizione, in fondo alla stessa cartella. Per spostare il foglio in un'altra cartella di lavoro,
trascinarne la scheda nella nuova posizione, in fondo alla cartella di destinazione (disporre
la visualizzazione in modo da vedere entrambe le cartelle di lavoro). In fase di
trascinamento, il piccolo triangolo nero che appare sopra le schede indica la nuova
posizione che il foglio assumer.
3. Rilasciare il pulsante dei mouse.
Le tecniche per copiare e spostare i fogli con il mouse sono simili. La differenza e l'uso del tasto
Ctrl per la copia.
possibile spostare pi fogli contemporaneamente, creando e spostando un gruppo. I fogli spostati
vengono inseriti in ordine e rimangono adiacenti.
Il foglio viene inserito nella nuova posizione e, se gi presente un foglio con lo stesso nome, al
nome del foglio inserito viene aggiunto un numero fra parentesi.
Dalla tastiera, per spostare un foglio in un'altra cartella di lavoro, procedere come segue.
1. Attivare la cartella di origine ed aprire la cartella di destinazione.
2. Selezionare il foglio da spostare.
3. Scegliere il comando Modifica, Sposta o copia foglio. Si apre la finestra di dialogo Sposta o
copia di figura 3.
4. Dalla casella di riepilogo Alla cartella, selezionare il nome della cartella di lavoro di
destinazione.
5. Dalla casella di riepilogo Prima del foglio, selezionare il nome del foglio prima del quale
inserire il foglio spostato.
6. Deselezionare la casella di controllo Crea una copia.
7. Cliccare su OK.
Con il mouse, per spostare un foglio in una nuova cartella di lavoro, trascinarne la scheda sullo
sfondo della finestra di Excel e rilasciare il pulsante del mouse. Il foglio scompare dalla cartella di
lavoro originaria e compare in una nuova cartella.
Dalla tastiera, per spostare un foglio in una nuova cartella di lavoro procedere come segue.
1. Selezionare il foglio da spostare.
2. Scegliere il comando Modifica, Sposta o copia foglio.
3. Dalla casella di riepilogo Alla cartella, selezionare (nuova cartella).
4. Deselezionare la casella di controllo Crea una copia.
5. Cliccare su OK.

1.5 RINOMINA DI UN FOGLIO


Per rinominare un foglio di lavoro, procedere come segue.
8

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

1. Selezionare il foglio da rinominare.


2. Fare doppio clic sulla scheda del foglio o scegliere il comando Formato, Foglio, Rinomina.
Per rinominare un foglio attraverso il menu di scelta rapida, posizionare il puntatore dei mouse sulla
scheda dei foglio attivo e cliccare con il pulsante destro, quindi scegliere Rinomina.
Il nome del foglio evidenziato, come in figura 4.
3. Digitare il nuovo nome con un massimo di 31 caratteri, compresi gli spazi.
4. Cliccare su OK.
Il nuovo nome compare sulla scheda del foglio rinominato.

Figura 4 - Il nome dei foglio evidenziato per la rinomina

1.6 RAGGRUPPAMENTO

DEI

FOGLI

PER

LA

MODIFICA,

LA

FORMATTAZIONE

LA

RIORGANIZZAZIONE

possibile intervenire su pi fogli contemporaneamente, effettuando una selezione di gruppo, utile


ad esempio per modificare o formattare vari fogli in modo identico.
Per selezionare un gruppo di fogli consecutivi, procedere come segue.
1. Selezionare la scheda del primo foglio.
2. Tenere premuto Maiusc e selezionare la scheda dell'ultimo foglio del gruppo. Per
deselezionare il gruppo, scegliere Separa fogli dal menu di scelta rapida delle schede, o
cliccare su qualsiasi scheda non selezionata.
Per selezionare un gruppo di fogli non consecutivi, procedere come segue.
9

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

1. Selezionare la scheda del primo foglio.


2. Tenere premuto Ctrl e selezionare le schede degli altri fogli del gruppo.
Per deselezionare il gruppo, scegliere Separa fogli dal menu di scelta rapida delle schede, o
cliccare su qualsiasi scheda non selezionata.
Per selezionare tutti i fogli di una cartella di lavoro, procedere come segue.
1. Posizionare il puntatore del mouse su qualsiasi scheda.
2. Cliccare con il pulsante destro del mouse per visualizzare il menu di scelta rapida e
scegliere Seleziona tutti i fogli.
Per deselezionare il gruppo, scegliere Separa fogli dal menu di scelta rapida o cliccare su qualsiasi
scheda.
Creata una selezione di gruppo, compare l'indicazione [Gruppo] sulla barra del titolo della cartella di
lavoro. Per modificare o formattare un gruppo di fogli, creare il gruppo, quindi applicare la procedura
di modifica o formattazione. Per inserire, rimuovere, copiare o spostare un gruppo d fogli, creare il
gruppo e quindi seguire le istruzioni riportate in questo capitolo, nelle sezioni dedicate ai singoli
argomenti.

1.7 DARE UN NOME AGLI INTERVALLI


Per riferirsi a celle che si trovano su un altro foglio si usano formule del tipo:

=Foglio1!$F$1
o, nel caso di intervalli:

=Foglio1!$A$1:$A$7
Esiste per una maniera pi semplice per riferirsi agli intervalli: si d loro un nome. In una formula,
invece di scrivere:

=SOMMA(Foglio1!$A$1:$A$7)
possiamo scrivere:

=SOMMA(spese)
se prima abbiamo dato allintervallo A1:A7 del Foglio1 il nome spese.
Per assegnare un nome ad un intervallo, lo si seleziona e si fa scendere il menu Inserisci, nel quale
si seleziona Nome. Dal sottomenu si sceglie Definisci.
Nella finestra di dialogo Definisci Nome, lintervallo selezionato appare nella casella Riferito A.
Scriviamo il nome che vogliamo attribuire e facciamo clic su OK. Attribuiamo a F1 il nome Tariffa.
La cella F1 che abbiamo selezionato per attribuire un nome indicata nella casella di Riferimento A
con una notazione diversa da quella usata fino ad ora:

=Foglio1!$F$1
10

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Come si ricorder, per Excel i riferimenti alle celle nelle formule sono sempre relativi, a meno che si
indichi diversamente ( il simbolo $). Diversamente significa che il riferimento pu essere
co
ASSOLUTO, invece che relativo. Per caratterizzare un riferimento come assoluto, bisogna
mettere davanti ai componenti di colonna e di riga del nome di una cella il carattere dollaro ($).
Nel caso della formula precedente lassoluto ribadito anche dalla segnalazione del nome del foglio
nel quale si trova lintervallo. In questo modo il nome Tariffa, usato in qualunque formula scritta in
qualsiasi foglio della cartella di lavoro, indicher sempre la casella F1 del foglio 1.
Dopo aver assegnato il nome Tariffa alla cella F1, possiamo scrivere nella cella B8 la formula:

=B7*Tariffa
Lasterisco in questa formula il segno di moltiplicazione.
Somma

Sottrazione

Moltiplicazione

Divisione

Elevamento a Potenza ^

Problemi e soluzioni
Dopo avere aggiunto un foglio di lavoro nell'intervallo di una formula tridimensionale, i numeri dei
fogli nella formula non vengono aggiornati. Accertarsi che i nuovi fogli siano interni al riferimento
contenuto nella formula. Se si trovano in altra posizione, una formula tridimensionale non li
comprende.
Dopo avere riorganizzato i fogli di una cartella di lavoro, le formule tridimensionali risultano errate.
Molte delle regole di variazione delle formule in seguito allinserimento o alla rimozione dei fogli sono
ovvie. Se nella cartella di lavoro presente la formula =SOMMA(Foglio2:Foglio4!C2) e si inserisce
un nuovo foglio tra il 2 ed il 4, il valore in cella C2 del foglio inserito viene compreso nella somma.
11

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Se si rimuove un foglio tra il 2 ed il 4, il valore in cella C2 del foglio rimosso viene escluso dalla
somma.
Fare attenzione nell'inserimento, rimozione e spostamento dei fogli all'interno dei riferimenti
tridimensionali, poich questi interventi potrebbero alterare i risultati dei calcoli.
Quando si sposta un foglio all'interno di una cartella di lavoro, possibile alterare determinate
formule, specialmente se il foglio spostato costituisce un'ancora (una estremit di un intervallo di
fogli). Continuando nell'esempio, se si sposta il foglio 2 o 4 ed il foglio 2 viene a trovarsi ancora in
una posizione precedente al foglio 4, la somma include i valori di C2 per tutti i fogli posti tra le
stesse ancore, utilizzando la stessa formula usata prima dello spostamento. Se si sposta il foglio 4
in una posizione precedente il foglio 2, la formula diventa =SOMMA (Foglio2: Foglio3!C2); mentre
se si sposta il foglio 2 in una posizione successiva al foglio 4, la formula diventa
=SOMMA(Foglio3:Foglio4!C2).

12

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

2. Formule e Formattazione dei fogli


2.1 AUTOCOMPOSIZIONE FUNZIONE
La tendenza al gigantismo di Excel si manifesta in tutto il suo splendore nella dotazione di funzioni
predefinite: sono esattamente 274 suddivise in categorie
Lautocomposizione Funzione si avvia automaticamente quando si sceglie il comando Funzione dal
menu Inserisci. Pu essere attivata anche dal pulsante Fx nella barra degli strumenti Standard
oppure dallo stesso pulsante che si trova nella barra delle formule in forma ridotta.

Lautocomposizione si sviluppa in due soli passaggi. Il primo serve per selezionare la funzione che
si vuole utilizzare mentre il secondo guida lutente allinserimento degli argomenti.
Quando lautocomposizione ha ricevuto le informazioni richieste dalle sue due finestre, inserisce
automaticamente la formula nella cella selezionata.
La prima finestra di dialogo a sinistra elenca le categorie in cui sono raggruppate le funzioni.
Selezionando il nome della categoria, lelenco delle funzioni che ne fanno parte compare nella
selezione di destra.
Per facilitare la ricerca, nella casella Categoria sono disponibili altri due raggruppamenti:
Tutte, che sviluppa la lista completa di tutte e 274 le funzioni disponibili in ordine alfabetico.
Usate pi di Recente. Fa comparire nella casella Nome Funzione un elenco ridotto delle funzioni
che sono state usate nellultima sessione di Excel e in quella in corso.
Scelta la funzione che interessa, ad esempio Media, si fa clic su Avanti.

13

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Si apre la seconda finestra. Una dicitura spiega che gli argomenti indicati come num1, num2....
possono essere da 1 a 30 e devono essere numerici. In alcuni casi esistono argomenti facoltativi e
altri obbligatori.
Quelli obbligatori sono visualizzati in grassetto, mentre gli altri sono da ritenersi opzionali.
Per la funzione media richiesto come minimo un argomento che deve essere o un numero
costante o un intervallo di celle che contengono numeri.
Per indicare largomento lutente pu digitarlo direttamente nella casella oppure pu puntare col
mouse la cella che contiene il valore che intende immettere. In entrambi i casi, una volta introdotto
un argomento, il valore che ha in quel momento nel foglio di lavoro compare nella parte destra della
casella in cui stato immesso. Contestualmente allimmissione degli argomenti, nella casella in
alto a destra, con letichetta valore, si presenta il risultato della funzione per gli argomenti immessi
fino a quel momento.
Un clic sul pulsante Fine provoca la chiusura dellautocomposizione e limmissione della funzione
nella barra della formula.
Da li premendo il tasto INVIO si pu immettere la funzione nella cella che era stata selezionata
allinizio del ciclo.

2.2 FORMATTAZIONE DI UN FOGLIO DI LAVORO


Una volta creato un foglio di lavoro possibile formattarlo per evidenziare le informazioni e creare
dei rapporti pi efficaci.
La barra degli strumenti Standard contiene gli strumenti e le opzioni di formattazione pi comuni,
quali grassetto, allineamento e bordatura delle celle.
Per disporre di pi opzioni di formattazione direttamente sul foglio di lavoro possibile visualizzare
la barra degli Strumenti Formattazione tramite la scheda Barre degli Strumenti nel menu Visualizza.
anche possibile utilizzare i comandi nel menu Formato.
2.2.1 Formattazione con bordi e ombreggiature
In Excel le celle possono essere racchiuse in una cornice e ombreggiate. possibile disegnare
una qualsiasi combinazione di linee orizzontali e verticali, a sinistra e a destra, in alto e in basso
rispetto alla cella. anche possibile creare sottolineature doppie e linee di colonna.

14

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Il comando Celle nel menu Formato consente di visualizzare le schede Bordi e Sfondo che
permettono di controllare il formato dei bordi e delle ombreggiature.
Le celle adiacenti condividono i bordi. Inserire, ad esempio, un bordo inferiore in una cella equivale
ad inserire un bordo superiore nella cella sottostante.
possibile far risaltare i bordi, sottolineature doppie e ombreggiature nascondendo le griglie in un
foglio di lavoro.
Per nascondere le griglie di riferimento quando si visualizza o si stampa un foglio di lavoro scegliere
il comando Opzioni dal menu Strumenti e selezionare la scheda Visualizza. Disattivare la casella di
controllo Griglia.
2.2.2 Aggiungere bordi e ombreggiature
1. Selezionare la cella o le celle da Formattare.
2. Scegliere il comando Celle dal menu Formato.
3. Selezionare la scheda Bordi.

4. Selezionare le opzioni desiderate.


5. Scegliere OK.
Ombreggiare le celle con dei motivi
1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.
15

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

3. Selezionare la scheda Motivo.

4. Selezionare il motivo dellombreggiatura ed i colori di primo piano e di sfondo desiderati.


5. Scegliere OK.

2.3 CAMBIARE LA FORMATTAZIONE DEL CARATTERE


1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.
3. Selezionare la scheda Carattere.

4. Selezionare le opzioni desiderate.


5. Scegliere OK.
16

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

2.4 APPLICARE IL FORMATO NUMERICO, D ATA O ORA


1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.

3. Selezionare la scheda Numero.


4. Selezionare le opzioni desiderate.
5. Scegliere OK.

2.5 ALLINEARE IL TESTO O NUMERI


1. Selezionare la cella o le celle da formattare.
2. Scegliere il comando Celle dal menu Formato.

17

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

3. Selezionare la scheda Allineamento.


4. Selezionare le opzioni desiderate.
5. Scegliere OK.

18

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

3. Gestione immagini
3.1 INSERIMENTO
Spesso pu essere utile inserire unimmagine in un documento per aumentarne la chiarezza.
Linserimento di unimmagine un operazione molto semplice.
1. Posizionare il cursore dove si desidera che compaia limmagine
2. Dal men inserisci scegliere Immagine e poi Da File
3. Scegliere limmagine
4. Premere su Inserisci
Il pulsante Inserisci pu essere aperto a tendina per mostrare tre opzioni:

Inserisci: ingloba il file selezionato dentro il documento Excel (aumentandone quindi la


dimensione

Collega: inserisce un puntatore allimmagine dentro al documento. I vantaggi di questa


scelta sono che il documento non aumenta di dimensioni, ed eventuali modifiche allimmagine
sono immediatamente visibili allinterno del documento.Lo svantaggio che i file devono
accompagnare sempre il documento.

Inserisci e Collega: ingloba il file e ne scrive un puntatore in modo che eventuali modifiche
siano immediatamente visibili.

Un metodo alternativo pu essere quello di copiare unimmagine negli appunti da un altro testo o da
unaltra applicazione e poi incollarla secondo le seguenti modalit:
1. Posizionare il cursore dove si vuole limmagine
2. Premere il tasto destro del mouse
3. Selezionare incolla.
Alternativamente si pu scegliere dal menu modifica Incolla o Incolla speciale.
Incolla speciale permette di selezionare con quale formato deve inglobato il file (ad esempio avendo
unimmagine in formato jpeg potremmo incollarla speciale in formato bitmap).

3.2 RIDIMENSIONAMENTO
Dopo aver inserito limmagine potremmo accorgerci che le sue dimensioni non sono soddisfacenti.
E allora possibile allora farla ridimensionare dinamicamente da Excel.
1.Facendo clic sullimmagine apparir una cornice con dei quadratini
2.facendo clic su uno dei quadratini possibile ingrandire o ridurre limmagine in quella
direzione.
Un metodo che consente una maggior precisione consiste nel fare clic con il tasto destro del
mouse sullimmagine e selezionare Formato Immagine dal menu a tendina:
19

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Cliccando su dimensioni appare una finestra dove possibile variare limmagine o in modo
assoluto (inserendo le dimensioni) o in modo percentuale (indicando la variazione rispetto
alloriginale). Se blocca le proporzioni attivo le modifiche sullaltezza (o sulla larghezza) si
ripercuoteranno sullaltra dimensione affinch limmagine mantenga le proporzioni iniziali.

3.3 ELIMINAZIONE E SPOSTAMENTO


Per eliminare unimmagine sufficiente farci clic una volta con il tasto sinistro del mouse e premere
il tasto Canc sulla tastiera. Per lo spostamento sufficiente tenere premuto a lungo il tasto sinistro
del mouse e, quando appare un quadratino sotto il puntatore, muoverlo nella posizione desiderata e
lasciare il pulsante.

3.4 BARRA DEGLI STRUMENTI IMMAGINE:

Aprendo la barra degli strumenti immagine si presentano 12 icone divise in 4 gruppi


1. Inserisci immagine: analoga alla funzione gi vista dal men
2. Controllo immagine: definisce il tipo di retinatura per le immagini con pochi colori o in bianco
e nero
3. Aumenta contrasto, diminuisci contrasto, aumenta luminosit e diminuisci luminosit non
hanno bisogno di spiegazioni
20

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

4. Ritaglia permette appunto di ritagliare un pezzo di immagine per poterla usare in un altro
punto del documento
5. Stile della linea - permette di stabilire lo spessore della linea
6. Disposizione testo permette di variare la locazione del testo vicino allimmagine (sopra,
sotto, a fianco, intorno, ecc)
7. Formato Immagine: Apre la finestra formato immagine
8. Imposta colore trasparente: permette di scegliere un colore nella figura che sar sostituito
dallo sfondo del documento
9. Reimposta immagine: elimina tutte le modifiche effettuate ricaricando limmagine originale

21

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

4. Uso di Excel come database


Le funzionalit di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per
registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e ricavarne molte informazioni: il
caso pi tipico quello delle analisi di bilancio, che abbiamo esaminato precedentemente.

4.1 CHE COS UN DATABASE


Il termine database si potrebbe rendere in italiano con base di dati, ma linglese ha dalla sua il
vantaggio della compattezza, che ce lo fa preferire. Con questo nome si caratterizza una qualsiasi
raccolta di dati omogenei, conservati su un supporto di registrazione in una forma strutturata.
Come il borghese di Molire, che parlava in prosa senza saperlo, tutti noi viviamo in mezzo ai
database e ce ne serviamo quotidianamente, anche se non sappiamo che si chiamano cosi. Sono
infatti da considerarsi database le guide del telefono, le rubriche di indirizzi che teniamo in tasca o
sul tavolo di lavoro, le matrici degli assegni bancari e altri semplici oggetti di uso quotidiano.
Ci che caratterizza un database il fatto che contiene dati omogenei, registrati in forma
strutturata. Un bilancio non un database, perch i dati sono si, strutturati, ma si riferiscono a realt
diverse (attivit e passivit, per esempio), mentre pu essere considerato un database un libro
giornale di contabilit, perch tutte le righe contengono informazioni omogenee, disposte sempre
nello stesso modo (strutturate, quindi): numero di registrazione, data, documento, conto di
addebito, conto di accredito, importo.
In un database i dati sono organizzati secondo una gerarchia di contenitori che si chiamano campi,
record e tabelle. Questi termini tecnici si possono ricondurre a semplici realt della vita di tutti i
giorni. In un tipico database, qual la guida telefonica distribuita da Telecom, i campi contengono i
dati elementari che caratterizzano labbonato: cognome, nome, indirizzo, numero di telefono.
Mettendo insieme i campi di un singolo abbonato si ottiene un record, che corrisponde alla riga
stampata. Linsieme delle righe o record forma la tabella. Tutto qui.
La struttura data dallordine con cui sono disposti i campi nei record: nel caso della guida
telefonica, viene sempre prima il cognome, seguito dal nome, dallindirizzo e dal numero di telefono.
Un altro elemento qualificante lomogeneit dei contenuti: nel campo del numero di telefono non
compare mai un nome o un indirizzo.
Se mettiamo uno sotto laltro i record di una guida del telefono e diamo la stessa larghezza ai
campi, la tabella che ne risulta assume un aspetto molto familiare: i record potrebbero essere righe
e i campi colonne di un foglio di lavoro Excel. Lidentit strutturale fra un foglio di lavoro e una tabella
di database la base logica che consente di usare Excel anche per creare e gestire database e
non soltanto per analizzare dati numerici disposti su un foglio di lavoro.
Ben consapevoli di questa possibilit, i creatori di Excel hanno messo a punto una serie di strumenti
specializzati per agevolare luso di questo programma come gestore di database. Vedremo in
questo capitolo quali sono questi strumenti e come si possono utilizzare in concreto.
4.1.1 Ordinare i record
Sulle informazioni disposte nel foglio di lavoro secondo la struttura di un database possono agire
diverse funzionalit specifiche per questo genere di strutture. Una delle pi utili lordinamento.

22

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Supponiamo di voler riorganizzare i record ordinati secondo il nome del cliente. Selezioniamo con
un clic il campo Cliente di un qualunque record del database e facciamo scendere il menu Dati, nel
quale selezioniamo il comando Ordina.
Lintera area del foglio di lavoro che contiene il database viene selezionata automaticamente e su
essa si visualizza una finestra di dialogo intitolata Ordina, che merita di essere esaminata con cura.
Questa finestra di dialogo permette di definire i criteri per riordinare i record che compongono il
database.
Quando viene attivata nella prima casella di selezione, intitolata Ordina per, compare il nome del
campo che era selezionato quando stato dato il comando Ordina.
A fianco, due pulsanti di opzione, denominati Crescente e Decrescente, consentono di scegliere se
lelenco dei record andr ordinato disponendo i record secondo lordine che va dal pi piccolo al pi
grande (Crescente) o dal pi grande al pi piccolo (Decrescente).

Figura 5 - La finestra di dialogo Ordina.

Figura 6 - Una sezione del database dopo lordinamento.


Se il campo contiene numeri, lordinamento Crescente risulta in una distribuzione che va dal
numero pi basso al pi alto. Quando il campo contiene testo (come nel caso del campo Cliente), i
record saranno ridistribuiti in base allordine alfabetico del testo.
23

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Se si desidera cambiare il campo in base al quale eseguire lordinamento, basta selezionarne il


nome dalla lista a discesa che sta nel riquadro Ordina per.
In molti casi si pu aver bisogno di eseguire ordinamenti in cascata: vogliamo per esempio ordinare
il database dei clienti per provincia e vederne i nomi in ordine alfabetico allinterno di ciascuna
provincia.
La finestra di dialogo Ordina consente di concatenare in questo modo fino a tre criteri di
ordinamento, attivandoli in un colpo solo. Per farlo si utilizzano (dopo la casella di selezione a
discesa Ordina per) una o entrambe le caselle di selezione che vengono subito sotto e sono
denominati Quindi per.
Possiamo veder leffetto del doppio ordinamento il primo crescente sul campo Cliente e il
secondo decrescente sul campo Totale.
possibile ripristinare lordinamento precedente se i record in origine sono disposti secondo un
ordine progressivo, come nel nostro caso quello determinato dal contenuto del campo Doc. Per
tornare alla situazione di partenza, si esegue di nuovo il comando Ordina, selezionando, in questo
esempio, il campo DOC e scegliendo il criterio Crescente.
4.1.2 Filtrare i record
Con il comando Ordina dal menu Dati si ridistribuiscono tutti i record del database secondo uno o
pi criteri di ordinamento. Con questa operazione si possono mettere in evidenza determinati
gruppi di record, per elaborarli poi selettivamente.
Quando un database contiene centinaia o migliaia di record, per, lordinamento pu far comodo,
ma non risolve sempre tutti i problemi di selezione. Sarebbe utile poter evidenziare soltanto i record
che hanno certi valori in determinati campi e non altri, per esempio, operazione che si riesce a fare
solo in parte con il comando Ordina.
Per soddisfare esigenze di selezione di questo genere disponibile un altro comando specifico per
i database, che si trova sempre nel menu Dati: si tratta del comando Filtro, dal quale si possono
selezionare due sottocomandi: Filtro automatico e Filtro avanzato. Vediamo il primo.
Quando si attiva Filtro automatico in apparenza non accade nulla. Osservando pi attentamente la
finestra dellapplicazione, si nota per che le celle che contengono i nomi dei campi sono state
trasformate in altrettante caselle di selezione a discesa, pi o meno in questo modo:

Il significato operativo di questa trasformazione notevolmente interessante. Facendo clic sul


pulsante a freccia di una qualunque casella col nome di un campo, si fa scendere un elenco di
criteri di selezione associabili al campo stesso. Un clic su uno di questi criteri lo attiva e vengono
visualizzati soltanto i record del database che soddisfano il criterio selezionato per quel campo.
I criteri disponibili sono numerosi e articolati. Cominciamo dai pi semplici:

tutto, seleziona tutti i record;

vuote, seleziona i record nei quali il campo selezionato vuoto;

non vuote, seleziona i record nei quali il campo selezionato non vuoto.
24

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Nellelenco a discesa sono poi presentati, campo per campo, alcuni criteri specifici che
corrispondono ai singoli valori diversi contenuti in quel campo in tutti i record. Per esempio, i nomi
diversi presenti nel campo Cliente dei 15 record del database di prova sono soltanto 4 e vengono
elencati fra i criteri di filtro. Nella figura che segue possiamo vedere leffetto che si ottiene
selezionando il nome Lindipendente Snc, che fra i quattro criteri specifici elencati nella lista di
selezione per il campo Cliente.

Figura 7

Quando un database viene filtrato, i numeri delle righe corrispondenti ai record che soddisfano le
condizioni del filtro compaiono scritti in azzurro e vengono nascoste le altre righe. Questo
accorgimento segnala che ci che si sta osservando soltanto una parte del database. Per tornare
a vedere tutti i record si seleziona il criterio Tutto nellelenco a discesa.
In Excel 7.0 la funzione Filtro automatico presenta un criterio nuovo, non disponibile in Excel 5.0,
che compare col nome Primi 10 nellelenco a discesa dei criteri.
un criterio potentissimo, di notevole effetto: infatti ordina in memoria i record, senza spostarli
fisicamente nel foglio di lavoro, usando come chiave di ordinamento il campo selezionato e
visualizza soltanto i record che in quellordinamento occupano le prime dieci posizioni.
Malauguratamente, la sua attivazione richiede una laurea in ingegneria nucleare o quasi. Battute a
parte, il concetto sarebbe anche semplice e intuitivo, ma la sua messa in pratica notevolmente
tortuosa. Vediamo intanto come si presenta da vicino.
Quando si fa clic sul nome Primi 10 compare una finestra di dialogo intitolata Filtro automatico
primi 10, che presenta tre caselle di selezione, raggruppate sotto lintestazione comune Mostra:

nella prima si pu selezionare una fra due voci: Superiore o Inferiore;

la seconda casella propone un numero predefinito (10), che si pu aumentare o diminuire


agendo sulle frecce di selezione;

la terza casella presenta anchessa due sole opzioni: Elementi o Percentuale.

Se, sconcertato da queste opzioni, formulate in maniera decisamente sibillina, lutente chiede aiuto
alla Guida contestuale, gli apparir il testo che segue (riprodotto fedelmente: provare per credere):
Per visualizzare tutte le righe contenenti un qualsiasi intervallo superiore o inferiore specificato,
selezionare lintervallo superiore o inferiore e lintervallo numerico, quindi selezionare le voci o la
percentuale.
Siccome, per nostra fortuna, non corriamo alcun rischio fisico, non ci resta che andare per tentativi
e cosi scopriamo che il criterio Primi 10 serve in realt per filtrare non i primi 10 record, ma quanti
se ne vuole (1 o n, purch siano meno del totale dei record del database) visualizzando quelli che
se fossero messi in ordine in base al campo selezionato occuperebbero le prime (n) posizioni o
le ultime (n).
25

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

C di pi: il confronto pu essere fatto anche in termini percentuali e non soltanto sui valori assoluti
del campo selezionato.
Facciamo un esempio. Supponiamo di aver scelto il criterio Primi 10 come filtro sul campo
Imponibile:
se nella finestra di dialogo selezioniamo le opzioni Superiore, 3 ed Elementi, verranno filtrati i 3
record che hanno il valore pi elevato rispetto agli altri 15 nel campo Imponibile;
se selezioniamo Percentuale invece di Elementi, lasciando invariate le altre due opzioni
(Superiore e 3), verr filtrato un solo record, quello dove il valore del campo Imponibile il pi
elevato di tutti gli altri in termini percentuali.
Molto pi a misura duomo si presenta lopzione Personalizza, che permette di definire un criterio di
filtro personalizzato. Il criterio si costruisce attraverso una finestra di dialogo intitolata Personalizza
filtro automatico, che vediamo qui di seguito:

Figura 8

In questa finestra di dialogo si possono indicare uno o due criteri di filtro, collegandoli, se sono due,
con un operatore logico And (E) oppure Or (O). Loperatore di confronto per il campo selezionato
pu essere scelto fra quelli elencati nella casella di selezione a sinistra, che presenta i simboli =, >,
<, >=, <=, e <> quando si fa clic sul pulsante a freccia.
Il termine di confronto per il contenuto del campo sul quale si basa il filtro pu essere immesso
direttamente nella casella di selezione a destra, o scelto fra quelli elencati nella casella stessa
facendo scendere la lista con il pulsante freccia. Questo elenco viene costruito con tutti i valori
diversi contenuti nel campo selezionato. Per esempio, per filtrare i record in modo che siano visibili
soltanto quelli che hanno nel campo Imponibile un importo inferiore a 1.000.000, si seleziona il
campo Imponibile, si sceglie lopzione Personalizza, nella finestra di dialogo si fa uscire loperatore
di confronto < nella prima casella di selezione in alto a sinistra e si digita 1000000 nella casella
subito a destra.
Per filtrare i record che hanno un importo nel campo Imponibile compreso fra un minimo di
1.000.000 e un massimo di 4.000.000, si impostano il primo operatore di confronto su >=, il primo
termine di confronto su 1000000, il secondo operatore di confronto su <= e il secondo termine di
confronto su 4000000. Fra i due valori di confronto si seleziona il pulsante di opzione marcato E.
In fondo alla finestra di dialogo Personalizza filtro troviamo due annotazioni: Usa ? per
rappresentare un carattere singolo e Usa * per rappresentare una serie di caratteri. Le
annotazioni sono un richiamo alla regola per i confronti sui campi che contengono stringhe di testo.
possibile infatti impostare un filtro su un campo che contiene un nome o una descrizione, in
modo che il confronto sia fatto soltanto su una parte del campo.
26

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Supponiamo di voler filtrare tutti i record delle fatture intestate a clienti la cui ragione sociale cominci
con la lettera M. Nella casella di selezione delloperatore sceglieremo = e immetteremo i caratteri
M* nella casella del termine di confronto, dopo aver selezionato il campo Cliente. Il carattere
asterisco in quella posizione indica al programma do filtrare i record che hanno una M come primo
carattere nel campo Cliente e di ignorare nel confronto tutti i caratteri che si trovano a destra della
posizione segnata dal carattere *. Per selezionare tutti i record che nel campo Cliente hanno i
caratteri cc in una qualunque posizione, si imposta il termine di confronto su *cc*.
Il carattere punto interrogativo permette una selezione pi fine. Immaginiamo di non essere certi se
un cliente si chiami Romano o Romani. Immetteremo in questo caso la stringa Roman? Come
termine di confronto: il programma filtrer tutti i record che nel campo Cliente hanno la stringa
Romano, Romani, Romana, eccetera.
4.1.3 Gestire i record
Un database concepito per lavorare si arricchisce tutti i giorni di nuovi record; con frequenze
diverse, quotidiane o settimanali, si deve intervenire per modificare il contenuto di qualche campo o
per eliminare i record il cui contenuto non rispecchia pi la situazione che il database intende
documentare.
Queste operazioni di aggiunta, cancellazione e modifica di record sono essenziali per la gestione di
un database. Si possono eseguire con le tecniche previste da Excel per modificare, cancellare ed
eliminare elementi di intervallo: si selezionano una o pi celle e se ne modifica il contenuto. Oppure
si selezionano una intera riga e la si cancella con il comando Elimina dal menu Modifica o dal menu
contestuale.
Quando in un foglio di lavoro esiste un intervallo caratterizzato come database, Excel mette a
disposizione automaticamente un ottimo e comodo strumento, fatto apposta per gestire i record,
che si chiama Modulo.
Lo si attiva scegliendo il comando Modulo dal menu Dati, dopo aver selezionato un campo
qualunque allinterno del database.
Come dice il suo nome, con questo comando si crea un modulo, cio un insieme strutturato di
caselle di modifica, che presenta in una forma chiara e organizzata tutti i campi di record, allo
scopo di agevolare la gestione del database: creare nuovi record, eliminare record esistenti o
modificare il contenuto dei campi di un record determinato.
Mentre il database che abbiamo usato finora come esempio aperto, scegliamo Modulo dal menu
Dati e ci si presenta una finestra di dialogo di tipo particolare.
Il modulo si presenta come una finestra di dialogo, intitolata col nome del foglio in cui si trova il
database.
La struttura di questa finestra di dialogo diversa da quelle che siamo abituati a vedere in Excel: in
effetti, non una finestra di dialogo, ma uno schema per gestire in modo uniforme un record del
database, agendo sullintero record o su uno dei campi. Proviamo a vedere come fatto questo
modulo.

27

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Figura 9 - Il modulo per gestire individualmente i record di un database.


Nella parte sinistra troviamo i nomi di tutti i campi che concorrono a formare un record. A fianco dei
nomi vi sono un certo numero di caselle, attraverso le quali si possono immettere nuovi campi o
correggere il contenuto di campi esistenti.
Come si pu notare, non a tutti i nomi corrisponde una casella di modifica. Per i campi calcolati,
quelli cio che contengono formule, viene visualizzato il risultato della formula, ma non previsto
che vi si acceda per modificarli. Questa impostazione semplifica notevolmente la creazione di
nuovi record, perch guida loperatore a immettere soltanto i dati di base, mentre i campi che
risultano da un calcolo vengono generati automaticamente.
Al centro del modulo visibile una barra di scorrimento, che serve per spostarsi da un record
allaltro, senza dover scorrere materialmente il foglio col database.
Alla destra della barra di scorrimento due pulsanti Nuovo ed Elimina consentono di creare un
nuovo record o di eliminare quello selezionato ( il cui contenuto compare nella parte di sinistra del
modulo). Un pulsante Ripristina annulla tutte le modifiche fatte sul record, a condizione di non aver
ancora premuto il tasto Invio o di non essere passati a un nuovo record.
Un gruppo di pulsanti marcati Criteri, Trova succ. e Trova prec. consente di effettuare ricerche
con una logica simile a quelle che abbiamo visto quando abbiamo esaminato lopzione
Personalizza filtro automaticamente. In questo caso, per, possibile definire
contemporaneamente criteri di ricerca su pi campi.
Quando si fa clic sul pulsante Criteri, il modulo si trasforma presentando una casella di immissione
vuota sul lato sinistro, a fianco dei nomi di tutti i campi, anche di quelli che contengono valori
calcolati. In ciascuna di queste caselle possibile digitare un criterio di selezione, usando gli
operatori di confronto, quelli logici e gli indicatori di posizione dei caratteri (? e *).
Dopo aver immesso i criteri di selezione nei campi che interessano, un clic sul pulsante Trova
succ. attiva unesplorazione del database in avanti che si arresta visualizzando il modulo con il
primo record che corrisponde ai criteri di selezione (se ce n almeno uno). Agendo ancora sul
pulsante Trova succ. si visualizzano gli eventuali altri record e con Trova prec. Si torna indietro a
visualizzare quelli trovati in precedenza. Se non vengono trovati record che corrispondono ai criteri
impostati, si viene avvistai da una segnale acustico.
28

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

4.2 ANALIZZARE UN DATABASE


Abbiamo visto fin qui gli strumenti di lavoro che Excel mette a disposizione per gestire i database:
aggiungere, eliminare o modificare record; ordinare i record o selezionarli in base a criteri semplici
o complessi.
Oltre a questi strumenti per la gestione ne esistono altri, finalizzati allanalisi dei dati contenuti in un
database. Qui ne esaminiamo uno, chiamato Subtotali, di notevole potenza e semplicit duso. Ne
vedremo anche altri, pi impegnativi e complessi, nei prossimi capitoli.
Quando si lavora su un database i cui record contengono campi con valori numerici, come il
database di fatture che abbiamo usato finora per gli esempi, pu sicuramente far comodo calcolare
uno o pi totali parziali: per cliente, per esempio, o per data di fatturazione o per aliquota IVA. E,
perch no, anche un totale generale. esattamente quello che si pu ottenere automaticamente
con il comando Subtotali, che si trova nel menu Dati.
Per poter usare questo comodo strumento, bisogna prima ordinare i record in base al campo di
riferimento per i totali parziali da calcolare: se vogliamo ottenere il totale degli imponibili per ciascun
cliente bisogna ordinare il database sul campo Cliente; se ci interessa un subtotale per data di
fatturazione lordinamento va fatto sul campo Data e cosi via.
Dopo aver ordinato il database col comando Ordina, possiamo anche ridurne le dimensioni,
escludendo con le tecniche di Filtro automatico tutti i record che non ci interessa includere nelle
totalizzazioni. Una volta sistemata la base di riferimento, si attiva il comando Subtotali dal menu
Dati, provocando luscita di una finestra di dialogo.

Figura 10 - La finestra di dialogo Subtotali.


Le opzioni disponibili in questa finestra di dialogo sono molto semplici e intuitive:

nella prima casella di selezione a discesa si sceglie il campo di riferimento, fra tutti quelli
presenti nei record;

il campo che contiene i dati da aggregare si sceglie nella terza casella di selezione a discesa,
quella intitolata Aggiungi subtotali a. Mentre nella prima casella si pu scegliere un solo campo
di riferimento, possibile scegliere pi di un campo per i valori da calcolare, impostando con un
clic il segno di spunta accanto al nome del campo;

29

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

La casella di selezione che sta al centro, intitolata Usa la funzione, presenta un elenco di
funzioni matematiche che si possono utilizzare per aggregare i dati definiti nella casella
Aggiungi subtotali a.

Il termine subtotali che si usa in questa finestra di dialogo un po riduttivo. Infatti, se si fa


scendere lelenco contenuto nella casella di selezione Usa la funzione, si scopre che possibile
scegliere fra undici funzioni di calcolo per aggregare i numeri contenuti nei campi selezionati
nellelenco Aggiungi subtotali a. Si pu scegliere fra somma, prodotto, media, selezione del valore
minimo o del valore massimo, calcolo della varianza e della deviazione standard, conteggio delle
occorrenze.
In pratica, quando si sceglie il comando Subtotali si hanno a disposizione tute le operazioni di
conteggio, calcolo e valorizzazione per gruppi e aggregati usate pi di frequente da chi si occupa di
analisi di serie storiche: risultati di vendite, iniziative promozionali, rendiconti quantitativi delle pi
varie nature, organizzati sotto forma di database.
Come sempre in Excel, una prova fa capire molto pi di una descrizione. Attiviamo quindi il
comando Subtotali sul database di fatture e scegliamo di sommare il campo Totale a ogni cambio
del contenuto del campo Cliente. Dopo aver ordinato i database sul campo Cliente, eseguiamo le
seguenti selezioni:
Ad ogni cambiamento in:

Cliente

Usa la funzione:

Somma

Aggiungi subtotali a:

Totale

Figura 11 - Il foglio di lavoro del database Fatture dopo la definizione dei subtotali.
Dopo un clic su OK si pu vedere che fra lultimo record di ogni cliente e il primo del cliente che lo
segue in ordine alfabetico stato inserito un nuovo record, che nel campo di riferimento porta la
dicitura Totale, seguita dal nome contenuto nel campo Cliente. In corrispondenza del campo
Totale il nuovo record presenta la somma dei valori di tutti i record di quel cliente.
4.2.1 I vantaggi della struttura
Probabilmente, laspetto pi interessante del foglio di lavoro, dopo lesecuzione del comando
Subtotali, non sta tanto nei risultati aritmetici (la cui correttezza si pu dare per scontata) quanto nel
modo in cui vengono presentati.
30

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Esaminando la finestra del documento, infatti, si pu notare che comparso un nuovo elemento
grafico, a sinistra dei numeri di riga. Questo elemento si presenta come una colonna che ha in
testa tre pulsanti numerati progressivamente da 1 a 3, da ciascuno dei quali discende una linea
verticale spessa, che in alcuni punti interrotta da una casella con inscritto un segno meno. Sotto il
pulsante col numero 3, quello pi interno, non c la linea nera continua, ma troviamo una serie di
punti.
Il nuovo elemento grafico contemporaneamente un indicatore e uno strumento. Come indicatore,
segnala che al foglio di lavoro stata aggiunta una struttura; come strumento, consente di
estendere o comprimere la struttura cosi rappresentata. Ma che cos la struttura?
Normalmente, le righe di una tabella (o i record di un database, che sono poi la stessa cosa) sono
tutte allo stesso livello, nel senso che non ce n una pi importante o pi significativa di altre.
Il comando Subtotali ha inserito nel database alcuni record diversi da quelli che cerano prima per
contenuto, numero e disposizione dei campi. I nuovi record, quelli che contengono i totali parziali,
danno informazioni riepilogative, mentre gli altri forniscono informazioni di dettaglio. Le righe del
foglio di lavoro, quindi, non sono pi allo stesso livello informativo: ci sono righe sintetiche e righe
analitiche. questa differenziazione di livello che prende il nome di struttura.
I simboli che vediamo sulla sinistra del foglio di lavoro mettono in risalto la struttura e permettono di
utilizzarla per modificare la presentazione dei record: agendo sui pulsanti numerati e sui quadratini
col segno meno (che sono pulsanti anchessi) si pu espandere o comprimere la struttura,
selezionando opportunamente i livelli da visualizzare.
Quando stato eseguito il comando Subtotali, il foglio di lavoro presenta la struttura espansa al
massimo livello, si vedono, cio, tutti i record analitici e tutti i record sintetici. Se facciamo clic sul
primo pulsante a sinistra nellarea della struttura, quello marcato col numero 1, otteniamo leffetto
riprodotto di seguito:

tutti i record analitici e tutti i record con i totali parziali sono scomparsi, la struttura stata
compressa al massimo e si vede un solo record, quello di massimo livello, che contiene il totale
complessivo, cio il totale dei subtotali.
Un clic sul pulsante col numero 2 e si passa al secondo livello della struttura: sono visibili soltanto i
record sintetici, quelli dei totali parziali per ciascun cliente, pi quello del totale complessivo. Con
questo secondo esempio possiamo capire meglio il significato dei simboli di struttura.
Sotto il pulsante col numero 1 si stende una riga spessa che termina in una casella/pulsante con il
segno meno. La riga rappresenta idealmente una grande parentesi graffa aperta verso destra e sta
a significare che tutto ci su cui si estende la riga verticale incorporato nel livello 1.

31

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Il segno meno nella casella in fondo alla riga verticale indica che non ci sono altri livelli da
visualizzare.
Sotto il pulsante col numero 2 vediamo una serie di caselle/pulsanti con un segno pi, ciascuna in
corrispondenza di un totale parziale. Il segno pi indica che esiste un ulteriore livello di espansione.
E infatti, come sappiamo, per ogni record di totale parziale esistono due o pi record di base. Un
clic su uno dei pulsanti col segno pi espande la struttura per quel livello, visualizzando lo schema
che segue:

nel quale lunico elemento grafico in pi il puntino in corrispondenza dei singoli record analitici, per
segnalare che non ci sono livelli ulteriori di espansione. Un clic su un pulsante di struttura col segno
meno comprime la struttura. Nel nostro caso, da un unico livello, quello originale, formato dai record
con i dati analitici, ne sono nati altri due: il livello 2, quello dei totali parziali, e il livello 1, quello del
totale generale (la numerazione dei livelli ne indica la posizione gerarchica: quello di base porta il
numero pi alto, il 3 nel nostro esempio).
Se un database raggiunge una dimensione significativa, qualche centinaio o qualche migliaio di
record, la generazione automatica dello schema di struttura quando si creano i Subtotali pu fare
molto comodo nella analisi, perch i comandi della struttura permettono di passare in un attimo da
una visualizzazione analitica a una sintetica, scegliendo di volta in volta il livello che interessa.

32

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

5. Ricerca obiettivo
Excel prevede diversi strumenti per l'analisi dei dati contenuti nei fogli di lavoro. Tra essi assumono
importanza fondamentale il comando Strumenti, Ricerca obiettivo e l'aggiunta Risolutore. Il
comando Ricerca obiettivo permette di trovare il valore che genera il risultato desiderato in una
formula. Il Risolutore uno strumento matematico che permette di trovare la risposta migliore ad
un problema, quando esistono pi variabili e vanno rispettati determinati vincoli.
Questo capitolo tratta i seguenti argomenti.
1. Ricerca obiettivo sul foglio di lavoro
2. Ricerca obiettivo con i grafici

5.1 QUALE STRUMENTO USARE


Excel prevede diversi strumenti per la risoluzione dei problemi, ciascuno utile in determinate
situazioni. Alcuni di questi strumenti, tra cui la funzione Risolutore, sono programmi aggiuntivi.
Ricerca obiettivo e Risolutore sono strumenti progettati in modo specifico per trovare valori che
permettano di ottenere determinati risultati dalle formule.

5.2 USO DELLA FUNZIONE RICERCA OBIETTIVO


Quando si desidera ottenere un determinato risultato da una formula, modificando uno dei valori
che la formula usa, ricorrere alla funzione Ricerca obiettivo. Scegliere il comando Strumenti,
Ricerca obiettivo, specificare il risultato che si intende ottenere e quindi la cella che deve essere
modificata per ottenere quel risultato. Per trovare il valore che genera il risultato desiderato, Excel
procede per ipotesi, nel tentativo di avvicinarsi sempre di pi al valore esatto. Il comando Ricerca
obiettivo permette di calcolare velocemente valori, quali il tasso di crescita necessario per
raggiungere un determinato obiettivo di vendite o il numero delle unit che occorre vendere per
raggiungere la quantit di pareggio.
Quando si sceglie il comando Strumenti, Ricerca obiettivo, la cella da variare deve contenere un
valore (non una formula) e questo valore deve essere usato dalla cella in cui si desidera ottenere il
Particolare risultato.
5.2.1 Soluzione unica
In figura 12 compare un semplice foglio di lavoro con i valori previsionali di vendite, costi e risultato
netto relativi a cinque anni. I valori variabili sono costituiti dai tassi di variazione in riga 16 e dai
coefficienti di costo nelle celle B18:B20. I tassi di variazione vengono usati per la proiezione nel
futuro dei valori delle vendite, i coefficienti di costo vengono usati per la stima dei costi futuri.
Si supponga di voler calcolare il tasso di variazione per le vendite relative al 1998 (cella D16) che
generi un reddito netto pari a L.3.000 per il 2000 (cella F12). La funzione Ricerca obiettivo in grado
di modificare il valore in cella D16, in modo tale che la cella F12 raggiunga il valore L.3.000.
Quando selezionata l'opzione Approssimazione come visualizzata, sulla scheda Strumenti,
Opzioni, Calcolo, Excel potrebbe non riuscire a calcolare il risultato esatto, sebbene esista.
Disattivare l'opzione Approssimazione come visualizzata dalla scheda Calcolo, prima di eseguire il
comando Ricerca obiettivo. L'opzione potr essere nuovamente attivata in seguito
33

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Per trovare una determinata soluzione con la funzione Ricerca obiettivo, procedere come segue.
1. Selezionare la cella contenente la formula che dovr restituire il risultato desiderato, ovvero
la cella obiettivo; nell'esempio si tratta di F12.
2. Scegliere il comando Strumenti, Ricerca obiettivo. Si apre la finestra di dialogo Ricerca
obiettivo (figura 12). La casella di testo Imposta la cella contiene la cella selezionata al punto
1.

Figura 12 - Un esempio di foglio di lavoro a cui possibile applicare la funzione Ricerca


obiettivo. La finestra di dialogo Ricerca obiettivo compare in fondo al foglio di lavoro.
3. Nella casella di testo Al valore, digitare la soluzione da ottenere. Nell'esempio, la soluzione
L.3.000, quindi digitare 3000.
4. Nella casella di testo Cambiando la cella, immettere il riferimento della cella da modificare,
al fine di ottenere il risultato desiderato. Nell'esempio, la cella da modificare D16, quindi
digitare D16 o cliccare in cella D16. In questo caso, la cella D16 fornisce il proprio valore
alla formula solo indirettamente, poich entra nella determinazione dei valori di vendita in
riga 5 e sono poi le celle con i valori delle vendite a determinare i valori del risultato netto in
riga 12. In figura 13 compare la finestra di dialogo Ricerca obiettivo completa delle scelte
effettuate.

Figura 13 - Le scelte effettuate dalla finestra di dialogo Ricerca obiettivo


5. Cliccare su OK.
34

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Per calcolare la soluzione, la funzione Ricerca obiettivo sostituisce valori alti e bassi in cella
D16, fino ad ottenere la convergenza di questi valori, in modo tale che la soluzione si
avvicini il pi possibile a quella desiderata.
6. Per interrompere o terminare la funzione Ricerca obiettivo, dalla finestra di dialogo Stato
ricerca obiettivo, visualizzata durante i calcoli, cliccare sul pulsante Pausa o Annulla. Per
eseguire le iterazioni passo per passo, scegliere Incremento. Procedendo passo per passo,
il valore di ogni soluzione trovata compare nella finestra di dialogo. Per continuare a piena
velocit dopo la pausa, cliccare sul pulsante Continua.
La cella selezionata al punto 4 deve fornire il proprio valore alla formula della cella obiettivo e non
deve contenere una formula a sua volta. Per vedere quali celle sono precedenti della cella obiettivo,
ovvero forniscono direttamente o indirettamente valori ad essa, selezionare la cella obiettivo,
scegliere il comando Modifica, Vai a e cliccare sul pulsante Speciale. Dalla finestra di dialogo Vai a
formato speciale, selezionare il pulsante d'opzione Precedenti Tutti i livelli e cliccare su OK.
Vengono selezionate tutte le celle che forniscono valori alla cella obiettivo. Per muoversi tra le celle
selezionate, premere Tab o Invio, le celle rimangono selezionate.
Una volta trovata una soluzione, cliccare su OK per sostituire i valori originali con i nuovi valori o
cliccare su Annulla per mantenere i valori originali,
5.2.2 Trascinamento degli indicatori di un grafico per trovare un risultato
Anche da un grafico possibile trovare una soluzione del tipo descritto sopra. Si deve trattare di un
grafico bidimensionale a barre, lineare o istogramma. Se si trascina un indicatore del grafico in una
nuova posizione, affinch assuma un valore diverso, compare la finestra di dialogo Ricerca
obiettivo, si apre il foglio di lavoro contenente i dati del grafico ed possibile indicare quali celle
modificare per ottenere il nuovo valore definito modificando l'indicatore.
Per trovare una soluzione definita graficamente, procedere come segue.
1. Aprire il foglio di lavoro ed il grafico su cui intervenire. Attivare il grafico.
2. Cliccare sull'indicatore di cui variare il valore (colonna, barra o simbolo di linea), per
selezionare l'intera serie. Quindi, cliccare di nuovo sull'indicatore, per selezionare
quell'indicatore specifico. Compaiono sull'indicatore alcune maniglie nere.
3. Trascinare le maniglie nere per spostare l'indicatore, assegnando ad esso un nuovo valore.
Nell'esempio, trascinare le maniglie nere verso l'alto o verso il basso, per variare l'altezza
della colonna. Mentre si trascina l'indicatore, si noti che il valore numerico che esso assume
compare nell'area dei riferimenti, a sinistra della barra della formula. Il riferimento permette
di vedere la variazione nell'indicatore in seguito al riposizionamento. Quando si rilascia il
pulsante del mouse, si apre la finestra di dialogo Ricerca obiettivo (figura 14). Nella finestra
di dialogo Ricerca obiettivo, la casella di testo Al valore contiene il nuovo valore
dell'indicatore del grafico.Se l'indicatore dei grafico rappresenta una cella contenente un
numero anzich una formula, la finestra di dialogo Ricerca obiettivo non compare, ma
semplicemente viene modificato il numero sul foglio di lavoro, secondo il nuovo valore
dell'indicatore.

35

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Figura 14 Trascinando l'indicatore dei grafico ad un nuovo valore, si apre la finestra di


dialogo Ricerca obiettivo, se l'indicatore rappresenta il risultato di una formula.
4. Variare eventualmente il numero nella casella Al valore. La casella Imposta la cella contiene
la cella del foglio di lavoro rappresentata dall'indicatore del grafico.
5. S. Nella casella di testo Cambiando la cella, digitare il riferimento della cella da variare;
oppure cliccare sulla cella con il pulsante del mouse.
6. Cliccare su OK.
Mentre Excel ricerca il valore, possibile usare le opzioni della funzione Ricerca obiettivo, descritte
al punto 6 della procedura precedente.

36

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

6. Personalizzare le barre degli strumenti


Excel possiede diverse barre degli strumenti preimpostate che potete personalizzare cancellando i
pulsanti poco utilizzati e aggiungendone di nuovi. Le barre degli strumenti Standard e
Formattazione vengono avviate per default con Excel e, probabilmente, le avete gia utilizzate. Altre
barre degli strumenti utili sono la barra degli strumenti Grafico, che viene visualizzata quando
create un grafico, la barra degli strumenti Tabella Pivot, che compare quando create una Tabella
pivot, la barra degli strumenti Disegno e altre che potete visualizzare ed esplorare per semplice
curiosit. Tutte possono essere personalizzate.
Alcune cose che potreste desiderare sapere sulle barre degli strumenti sono:
muoverle all'interno dello schermo, comprendendo il fluttuamento e lancoramento;
mostrarle e nasconderle;
modificare i pulsanti che mostrano;
creare una nuova barra degli strumenti.
Per verificare se un pulsante multifunzionale, mantenete premuto il tasto Maiusc e fate clic su di
esso se l'aspetto del pulsante cambia, multifunzionale. Ma non dovete rilasciare il pulsante del
mouse mentre state puntando il pulsante, o l'azione del pulsante sar eseguita; al contrario,
trascinate il puntatore del mouse lontano dalla barra degli strumenti prima di rilasciare il pulsante
del mouse.
Molti pulsanti della barra degli strumenti sono multifunzionali utilizzando il tasto Maiusc (in modo da
ridurre il numero dei pulsanti su una barra degli strumenti e creare spazio per altri.). Ad esempio,
potete fare clic sul pulsante Ordinamento crescente per ordinare una lista in ordine ascendente
oppure premere il tasto Maiusc e contemporaneamente fare clic sullo stesso pulsante per ordinare
una lista in ordine discendente. Altri pulsanti multifunzionali sono Salva/Apri, Stampa/Anteprima di
stampa, Allinea a sinistra/Allinea a destra e Unisci e centra/Centra.

6.1 SPOSTARE LE BARRE DEGLI STRUMENTI


La posizione abituale di una barra degli strumenti "ancorata", o attaccata alla cima della vostra
finestra di Excel (proprio sotto la barra del menu); ma potete anche ancorare le barre degli
strumenti contro il fondo o i lati della vostra finestra di Excel o farle "fluttuare" al centro dello
schermo.
6.1.1 Spostare una barra degli strumenti in una posizione differente
1. Fare clic sulla barra verticale posta sull'estremit a sinistra della barra degli strumenti o fare
clic su uno spazio tra i pulsanti.
2. Trascinare la barra degli strumenti in una nuova posizione nella finestra di Excel e
rilasciarla.
Se rilasciate la barra degli strumenti in mezzo alla finestra di Excel, fluttuer in quella
posizione; potete riposizionare una barra fluttuante trascinando la sua barra del titolo.
Per modificare la forma di una barra fluttuante, trascinate uno dei sui bordi.
37

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Se trascinate la barra degli strumenti sul fondo o su un lato della finestra Excel, si ancorer
contro quel bordo della finestra. Le barre degli strumenti rimangono dove le avete lasciate,
anche quando chiudete o riaprite Excel.

6.2 NASCONDERE E MOSTRARE LE BARRE DEGLI STRUMENTI


Nascondere e mostrare le barre degli strumenti importante quando imparate a creare le vostre
barre personalizzate; potreste desiderare nascondere le barre degli strumenti preimpostate per
sostituirle con le vostre. Oltre a nascondere e mostrare le barre degli strumenti, potete anche
scegliere di mantenere le vostre barre degli strumenti Standard e Formattazione sulla stessa riga
(che significa che alcuni dei pulsanti saranno sempre nascosti) o mostrarle nel modo tradizionale,
ossia su due righe. Se state lavorando con un monitor a 17 pollici, probabilmente mantenere
entrambe le barre degli strumenti sulla stessa riga non salver molto spazio sullo schermo, ma se
state utilizzando un monitor a 15 pollici o a 14 pollici (o un laptop), potreste considerare ogni
centimetro in pi di foglio indispensabile.
Il metodo pi efficiente per salvare spazio sullo schermo quello di creare le vostre barre degli
strumenti personalizzate, che contengono solamente i pulsanti che utilizzate, e mostrarle al posto
delle barre degli strumenti Standard e Formattazione.
6.2.1 Nascondere o mostrare le barre degli strumenti
1. Fate clic con il tasto destro del mouse su qualunque barra degli strumenti sulla barra del
menu. Viene visualizzato Il menu scorciatoia della barra degli strumenti. Se non vedete
visualizzato il nome desiderato, lo troverete nella finestra di dialogo Personalizza.
2. Fate clic sul nome della barra degli strumenti che desiderate mostrare o nascondere. I
comandi sono tutti doppi: fate clic per mostrare e di nuovo per nascondere. Il nome di una
barra degli strumenti con un segno di spunta indica che quest'ultima mostrata; se non
dato nessun segno di spunta significa che la barra degli strumenti nascosta.
3. Se non vedete il nome della barra degli strumenti che desiderate nascondere o mostrare,
fate clic su Personalizza. Verr mostrata la finestra di dialogo Personalizza.
4. Selezionate i segni di spunta per le barre degli strumenti che desiderate mostrare;
deselezionateli nel caso desideriate nasconderle.
5. Fate clic su Chiudi per terminare.
6.2.2 Mostrare le barre degli strumenti su una o due righe
Potete anche modificare la visualizzazione delle vostre barre degli strumenti Standard e
Formattazione in modo da condividere una sola riga o da occuparne due.
1. Fate clic con il tasto destro del mouse sulla barra dei menu e selezionare Personalizza.
2. Nella sezione Opzioni, selezionate la finestra di spunta Barre degli strumenti standard e
Formattazione su una stessa riga. Selezionate la casella per condividere una sola riga e
salvare spazio, deselezionate la casella di spunta per mostrare entrambe le barre degli
strumenti, ciascuna su una riga. La finestra di spunta non sar disponibile fino a quando le
barre degli strumenti Standard e Formattazione non vengono visualizzate e agganciate.
3. Fate clic su Chiudi per terminare.
38

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

6.3 MODIFICARE I PULSANTI E LE BARRE DEGLI STRUMENTI PREIMPOSTATE


L'enorme variet di pulsanti sulle barre degli strumenti Standard e Formattazione potrebbe non
soddisfare le vostre necessita, ma potete modificare qualunque barra degli strumenti secondo le
vostre esigenze. Potete applicare con facilita i seguenti cambiamenti:
spostare i pulsanti per comodit;
cancellare pulsanti che non utilizzate;
aggiungere pulsanti desiderati.
6.3.1 Spostare i pulsanti della barra degli strumenti e riorganizzarli
1. Mantenete premuto il tasto Alt.
2. Trascinate i pulsanti nella nuova posizione sulla barra degli strumenti.
Rilasciate un pulsante tra uno o due pulsanti per riorganizzarli; aggiungere uno spazio trascinando
un pulsante di lato.
Per aggiungere o eliminare rapidamente i pulsanti da barre degli strumenti preimpostate e
agganciate, selezionate la piccola freccia posta sull'estremit destra, poi selezionate Aggiungi o
rimuovi pulsanti. Comparir un elenco dei pulsanti assegnati alla specifica barra degli strumenti
preimpostata; i pulsanti visualizzati sono evidenziati dal segno di spunta. Selezionate quelli che
desiderate mostrare o nascondere, poi fate clic su una cella del foglio di lavoro per chiudere la lista.
Per aggiungere pulsanti che non sono presenti nella lista preimpostata, seguite l'esercizio
"Aggiungere pulsanti a una barra degli strumenti pi avanti in questo capitolo.
6.3.2 Cancellare pulsanti da una barra degli strumenti
1. Mantenete premuto il tasto Alt.
2.

Trascinate il pulsante lontano dalla barra degli strumenti e lasciatelo in un punto qualsiasi
nell'area di lavoro.

Il pulsante stato rimosso dalla barra degli strumenti. Se la barra degli strumenti era una di quelle
preimpostate di Excel e lavete resa irriconoscibile, potete riportarla alla sua configurazione
originale.
6.3.3 Ripristinare la configurazione originale di una barra degli strumenti preimpostata
1. Fate clic con il tasto destro del mouse su qualunque barra degli strumenti, quindi selezionate
Personalizza.
2. Nella sezione Barre degli strumenti, selezionate il nome della barra degli strumenti che
desiderate ripristinare.
3. Fate clic sul pulsante Reimposta. Se un messaggio chiede se siete sicuri, rispondete OK.
4. Selezionate Chiudi per terminare.
6.3.4 Aggiungere pulsanti a una barra degli strumenti
1. Fate clic con il tasto destro del mouse su qualunque barra degli strumenti, quindi selezionate
Personalizza.
39

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

2. Fate clic con il tasto destro del mouse e selezionate successivamente Personalizza.
3. Nella sezione Comandi, selezionate la categoria di comandi nella quale supponete si trovi il
pulsante desiderato. I pulsanti delle barre degli strumenti rappresentano tutti un rapido modo
di accesso ai comandi di menu, perci sono organizzati in categorie che corrispondono ai
menu di Excel.
4. Sfogliate la lista Comandi fino a quando non rintracciate il pulsante della barra degli strumenti
desiderato.
5. Trascinate il pulsante al di fuori della finestra di dialogo e lasciatelo cadere sulla barra degli
strumenti.
6. Nella finestra di dialogo Personalizza, selezionate Chiudi per terminare.
Potete reimpostare le barre degli strumenti preimpostate, ma non potete cancellarle; al contrario,
potete cancellare le barre degli strumenti personali, ma non potete reimpostarle.

40

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

7. Disegno di oggetti grafici


7.1 PRINCIPI DEL DISEGNO
Excel non uno strumento pensato appositamente per creare oggetti grafici, ma nonostante ci,
come tutti gli altri programmi di Office 2000, include numerosi strumenti di disegno. Oltre a ci, gli
oggetti grafici che create possono avere un uso pratico, in quanto possibile assegnare a essi una
macro che viene eseguita quando si fa clic sull'oggetto.
In questo capitolo viene fornita un'introduzione generale al disegno di oggetti. Se avete delle
inclinazioni artistiche potrete approfondire ulteriormente l'argomento per esercitarvi nella creazione
di oggetti grafici. Per disegnare qualsiasi cosa in Excel, iniziate visualizzando la barra degli
strumenti Disegno facendo clic con il pulsante destro del mouse su una barra degli strumenti e
scegliendo Disegno. Molto probabilmente la barra degli strumenti Disegno verr visualizzata
(solitamente nella parte inferiore della finestra di Excel). Nella Tabella seguente sono descritti i
pulsanti della barra degli strumenti Disegno.
7.1.1 Pulsanti delta barra degli strumenti Disegno (nellordine):

Disegno

Apre un menu con altri comandi per il disegno.

Selezione oggetti Permette di selezionare gli oggetti usando il puntatore del mouse. Fate clic
per disattivarlo quando desiderate selezionare una cella del foglio di lavoro.
Ruota per gradi
Forme

Permette di ruotare un oggetto con il mouse.

Apre un menu di categorie di forme.

Linea Disegna un linea retta.


Freccia

Disegna una freccia.

Rettangolo

Disegna un rettangolo o un quadrato.

Ovale

Disegna un ovale o un cerchio.

Casella di testo

Disegna una casella che contiene del testo.

Inserisci WordArt

Avvia lapplet WordArt.

Inserisci ClipArt

Apre la Raccolta ClipArt.

Colore riempimento
selezionato.

Mostra una palette di colori da usare per il riempimento dell'oggetto

Colore linea Mostra una palette di colori da usare per le righe, per le frecce o per il bordo degli
oggetti selezionati.

41

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Colore carattere

Mostra una palette di colori da usare per il testo selezionato.

Stile linea
Mostra una palette con varie larghezze per le linee, per le frecce o per i bordi degli
oggetti selezionati.
Stile tratteggio
Mostra una palette di stili per le linee tratteggiate delle righe, delle frecce o dei
bordi degli oggetti selezionati.
Stile freccia Mostra una palette con diverse frecce per le linee o per le frecce selezionate.
Ombreggiatura
3D

Mostra una palette di ombreggiature per gli oggetti selezionati.

Mostra una palette di stili 3D per convertire gli oggetti selezionati.

Le forme di base comprendono le linee e le frecce, i rettangoli e gli ovali. Potete mostrare e
nascondere la barre degli strumenti Disegno ancora pi velocemente facendo clic sul pulsante
Disegno della barre degli strumenti Standard.

7.2 DISEGNARE UN OGGETTO GRAFICO DI BASE


1. Fate clic sul pulsante della forma che desiderate disegnare (una linea, una freccia, un
rettangolo o un ovale). II puntatore del mouse assume la forma di una croce.
2. Fate clic sullo schermo e trascinate diagonalmente per creare un ovale o un rettangolo o
nella direzione desiderata per creare una linea o una freccia. Se loggetto create non ha la
forma che desiderate o se non si trova nella posizione giusta, potrete spostarlo e
modificarne la forma pi avanti.
Di seguito sono riportati alcuni suggerimenti per disegnare e per formattare le forme di base:

Per disegnare una linea perfettamente verticale o orizzontale, tenete premuto il tasto Maiusc
mentre disegnate la linea.

Per disegnare qualsiasi oggetto partendo dal centro, tenete premuto il tasto Ctrl mentre
disegnate.

Per disegnare un quadrato o un cerchio perfetto, tenete premuto il tasto Maiusc mentre
disegnate un rettangolo o un ovale.

Per convertire una freccia in una linea (o viceversa) o per modificare la direzione di una
freccia, selezionate la linea o la freccia e scegliete uno stile diverse usando il pulsante Stile
freccia.

Per modificare lo spessore di una linea o di un bordo, selezionate loggetto e quindi scegliete
uno spessore diverse usando il pulsante Stile linea.

Per spostare un oggetto, fate clic su di esso e trascinatelo con il puntatore di spostamento
con quattro frecce.

Per ridimensionare un oggetto o per cambiarne la forma, fate clic su di esso e trascinate un
quadratino di ridimensionamento.

Per allineare un oggetto alla griglia del foglio di lavoro, premete Alt mentre spostate l'oggetto
o mentre trascinate un quadratino di ridimensionamento. Il bordo dell'oggetto si sposta
automatica per allinearsi alla linea della griglia pi vicina.
42

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

Per disegnare pi linee, frecce, rettangoli o ovali, fate doppio clic sul pulsante della forma
che desiderate creare e disegnate tutti gli oggetti che volete. Fate clic nuovamente sul
pulsante per disattivarlo quando avete terminato.

Per copiare una forma, premete Ctrl mentre trascinate e rilasciate loggetto.

Per assegnare una macro a un oggetto, fate clic sull'oggetto con il pulsante destro del
mouse, scegliete Assegna macro, selezionate il nome della macro e infine scegliete OK.

Per formattare pi oggetti contemporaneamente, selezionateli come gruppo: tenete premuto


il tasto Maiusc mentre fate clic sui singoli oggetti oppure fate clic sul pulsante Selezione
oggetti e disegnate un rettangolo intorno al gruppo di oggetti che desiderate selezionare.

43

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

8. FUNZIONI CONDIZIONALI
8.1 CHE COSA SONO LE FUNZIONI CONDIZIONALI
Si intende per funzione condizionale una funzione il cui risultato sia dipendente dal verificarsi
o meno di una o pi condizioni.
Integrando le formule e funzioni di Excel con le funzioni condizionali, si elegge la cartella di
Excel ad un vero e proprio linguaggio di programmazione funzionale.
Le funzioni condizionali che tratteremo sono:
Funzione

Descrizione

CONTA.SE

Contare tutti i valori che soddisfano criteri specifici

SOMMA.SE

Sommare tutti i valori che soddisfano criteri specifici

SE

Visualizzare un valore che dipende dai criteri che avete impostato

E, O Abbinare in AND e OR due o pi condizioni, da usare poi allinterno di una funzione


condizionale

8.2 SOMMA.SE
Disponendo di una tabella di prodotti di una pelletteria, si supponga di voler calcolare quanto del
prodotto chiamato Cintura stato venduto in Dicembre. A tale scopo, usate la funzione
SOMMA.SE, che somma i valori che corrispondono a un dato criterio (in questo esempio scrivete
una formula che somma i valori della colonna Totale se corrispondono al valore Cintura nella
colonna Prodotto). Una formula SOMMA.SE pu essere scritta in due modi. Potete usare
l'autocomposizione Creazione guidata Somma condizionale, un'aggiunta che pero fa perdere molto
tempo se dovete effettuare la somma in base a un solo criterio. L'altro modo consiste nell'usare la
Finestra della formula, che e pi semplice e veloce per le somme che si basano su un solo criterio.
Di seguito sono descritti entrambi i metodi, in modo che possiate decidere qual e pi facile.
8.2.1 Scrivere una formula SOMMA.SE usando la finestra di dialogo Incolla funzione
1. Fate clic sulla cella in cui desiderate inserire la formula.

2. Fate clic sul pulsante Incolla funzione fx .


3. Nella categoria Tutte o Matematiche e trig, fate doppio clic su SOMMA.SE. Cos facendo,
viene visualizzata la Finestra della formula per SOMMA.SE.
4. Nella casella Intervallo, inserite lintervallo di celle che contiene il criterio. Potete trascinate le
celle, per esempio, nella colonna B (B3:B56) o inserire lintera colonna (B:B).
5. Nella casella Criterio, inserite i criteri in base ai quali desiderate sommare i valori.. Se si
tratta di una stringa di testo, assicuratevi di racchiuderla tra virgolette. Diversamente, invece di
digitare la stringa con le virgolette, potete fare clic su una cella che contiene linserimento
Cintura.
44

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

6. Nella casella Int somma, inserite lintervallo di valori che desiderate sommare (per esempio,
la colonna E, inserita come intervallo E:E).
7. Scegliete OK
La formula SOMMA.SE completa. Per trovare il totale per il prodotto Guanti, aprite la cella,
modificate la formula da "Cintura" in "Guanti", quindi premete Invio.
L'autocomposizione Creazione guidata Somma condizionale un modo lungo e tortuoso per
ottenere lo stesso risultato per un singolo criterio, ma migliore rispetto alla funzione SOMMA.SE,
se desiderate scrivere una somma condizionale per criteri multipli.
Se in una formula di somma condizionale desiderate usare pi di un criterio (per esempio, quanti
ordini del prodotto Cintura hanno una quantit superiore a 5, pi semplice usare
l'autocomposizione Creazione guidata Somma condizionale.La voce di intervallo B:B indica che
l'intera colonna B l'intervallo che contiene i criteri. E importante che non vi siano altre voci nel
foglio di lavoro sotto questa tabella, altrimenti la formula esegue i calcoli con queste voci e produce
risultati errati. Inoltre. il riferimento di intervallo B:B un riferimento relativo. Per imposture un
riferimento assoluto alla colonna B, dovete digitare $B:$B.
Un altro modo per ottenere una risposta rapida a questo problema consiste nel filtrare la tabella in
modo da visualizzare solo il prodotto Cintura e quindi nel contare gli ordini con Calcolo automatico.

8.3 CONTA.SE
La funzione CONTA.SE conta il numero di valori in un intervallo che soddisfano un criterio
specifico, come "Quanti ordini ci sono stati per il prodotto Cintura in dicembre?"
La funzione CONTA.SE si comporta come la funzione SOMMA.SE, ma non esiste lalternativa di
un'autocomposizione.
8.3.1 Usare la funzione CONTA.SE
1. Fate clic sulla cella in cui desiderate inserire il risultato.
2. Fate clic sul pulsante Incolla funzione.
3. Nella categoria Tutte o Statistiche, fate doppio clic sulla funzione CONTA.SE. Viene
visualizzata la finestra di dialogo CONTA.SE.
4. Nella casella Intervallo, inserite lintervallo di celle in cui eseguire la ricerca (in questo
caso, la colonna B).
5. Nella casella Criteri, inserite i criteri in base ai quali devono essere contate le celle (in
questo caso, fate clic sul una cella che contiene la voce Cintura, in modo che la funzione
conti tutte le voci identiche a questa).
6. Scegliete OK
La formula completa. Potete trovare la media degli ordini di Cintura dividendo la somma per il
conteggio.

45

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

Excel 2000 avanzato

8.4 SE
La funzione SE un altro modo per determinare un valore di cella a seconda dei criteri impostati.
Segue questo principale) in questo modo: SE un'affermazione vera, ALLORA restituisci questo
primo valore. ALTRIMENTI restituisci questo secondo valore.
La funzione SE pu essere nidificata, vale a dire inserita all'interno di altre funzioni SE per renderle
ancora pi utili. Ogni funzione pu essere nidificata in un'altra, fino a sette livelli di profondit. cosa
che permette di sbizzarrirsi con i calcoli nei fogli di lavoro.
Lesempio seguente mostra una formula che restituisce, nella cella stessa, POSITIVO o NON
POSITIVO a seconda del valore contenuto in A1.
=SE(A1>0;POSITIVO;NON POSITIVO)

8.5 E, O
Come risulta lecito aspettarsi possibile combinare pi criteri in AND e in OR. Ci si realizza
tramite le funzioni E(Condiz1, Condiz2, ) e O(Condiz1, Condiz2, ):
=SE(E(A1>0;A1<=10);OK;FUORI DAL RANGE)
Tale formula restituisce OK solo se in A1 presente un valore maggiore di 0 e minore o uguale a
10, cio compreso tra 1 e 10 se consideriamo solo numeri interi.

46

Propriet del Dipartimento Tesoro - Ministero del Tesoro, del Bilancio e della Programmazione Economica.
Il presente manuale pu essere riprodotto liberamente con qualsasi mezzo a condizione di citarne la fonte.

corso di Excel

pag. 1

Appunti su Excel
Introduzione:
Si tratta di alcuni appunti che avevo scritto per tenere un corso di approfondimento su EXCEL.
Il corso si rivolge alle persone che gi conoscono gli elementi di base del foglio elettronico e che
intendono utilizzarlo per realizzare delle applicazioni, sfruttando anche l'uso delle macro e delle
routines in visual basic.
Si utilizzata una metodologia basata sugli esempi.
Alcuni esempi prendono spunto da articoli di riviste: SfondoArlecchino, Date, Tabella Pivot,
Risolutore (auto). Purtroppo si tratta di riviste vecchie che ho da tempo cestinato e andando a
memoria non vorrei citare la rivista sbagliata.
Gli altri sono sostanzialmente originali, talvolta frutto della necessit di risolvere reali problemi.
Nellappendice ho riassunto alcune informazioni presenti nella guida in linea di Excel.
Autore: Lucio Borsato.
Sommario:
Appunti su Excel .......................................................................................................................................................................................1
Introduzione: .........................................................................................................................................................................................1
Sommario:..............................................................................................................................................................................................1
Registrazione di una macro:...............................................................................................................................................................2
Funzioni e Sub .......................................................................................................................................................................................5
Sub aCaso() ...........................................................................................................................................................................................7
Sub SfondoArlecchino() ......................................................................................................................................................................9
Function ConvNumLett(ByVal Numero As Currency) As String........................................................................................... 10
date....................................................................................................................................................................................................... 13
Utilizzo del risolutore: ..................................................................................................................................................................... 15
Altro esempio di utilizzo del risolutore: ...................................................................................................................................... 16
Quesiti a risposta chiusa:................................................................................................................................................................. 17
Tabella Pivot: ...................................................................................................................................................................................... 20
Il Gioco del Lotto.............................................................................................................................................................................. 22
Fatturazione:....................................................................................................................................................................................... 25
SCRUTINI;.......................................................................................................................................................................................... 31
Appendice: .......................................................................................................................................................................................... 34

corso di Excel

pag. 2

Registrazione di una macro:


Scegliere:
1. strumenti
2. macro
3. registra nuova macro
Digitare il nome "Titoli" come
nome della macro.
Memorizzare la macro nella
cartella "personale" per
poterla utilizzare in qualunque
altra cartella di lavoro.
La cartella "personale" gestita
da Excel in modo particolare. All'apertura del programma viene comunque aperta, se esiste, e per
non creare confusione all'utente rimane nascosta.
Viene salvata automaticamente in una direttrice definita al momento dell'installazione e non pi
modificabile: C:\.\XLSTART.
Dal momento che sono sempre disponibili, per essere eseguite, tutte le macro
appartenenti alle cartelle aperte e che la suddetta cartella sempre aperta,
memorizzare una macro in "personale.XLS" significa averla sempre a disposizione.
A questo punto compare la finestra che consentir di interrompere la registrazione della macro.
Vogliamo ora registrare le seguenti operazioni:
Selezioniamo il colore dello sfondo giallo.
Selezioniamo il colore del carattere blu.
Selezioniamo grassetto per il carattere.
Selezionare la dimensione del carattere (12 pti)
Interrompiamo la registrazione premendo il pulsante fine registrazione.
Per eseguire una macro, possiamo ad esempio
associarla ad un pulsante di comando:
aprire la barra moduli (tasto destro sulla barra
dei comandi, e poi spuntare la casella
corrispondente a moduli).
Selezionare quindi pulsante e disegnarlo sul
foglio di lavoro, nella posizione desiderata.
Associare quindi al pulsante la macro voluta
Titoli e cambiare l'etichetta proposta
(pulsante1) con una pi significativa, ad esempio
Titoli.
Per eseguire la macro:
Selezioniamo alcune celle da evidenziare
Premiamo il pulsante associato alla macro

corso di Excel

pag. 3

Ed ecco il risultato, dopo aver evidenziato le celle b5 e b6 e aver premuto il pulsante evidenzia.
Se invece vogliamo avere a disposizione questa nuova macro in una barra degli strumenti,
utilizzabile in tutte le cartelle, possiamo procedere cos:

Visualizza\Barra degli strumenti\personalizza:

Scegliamo nuova e poi digitiamo il nome personale,

OK,
selezioniamo la linguetta comandi,
evidenziamo macro e trasciniamo il pulsante personalizzato nella barra personale,
CHIUDI,
Premiamo il nuovo pulsante (sole che ride)
Associamo il nome della macro Evidenzia, della cartella person
Trasciniamo la nuova barra degli strumenti dove preferiamo

corso di Excel

pag. 4

Ora le barre degli strumenti si presenteranno cosi:


e la nuova macro sar disponibile in tutte le cartelle.

corso di Excel

pag. 5

Funzioni e Sub
Vogliamo ora provare a scrivere ed eseguire una Funzione ed una Sub.
Una routine Sub una serie distruzioni racchiuse tra le istruzioni Sub e End Sub e che non restituisce un valore.

Una Function una serie distruzioni racchiuse tra Function ed End Function e pu restituire
un valore.
Scegliamo Visualizza/Barra degli strumenti e spuntiamo la
casella Visual Basic
Entriamo in editor di Visual Basic
Tasto destro del mouse, inserisci modulo

Possiamo ora nel modulo iniziare a scrivere la


nostra funzione (AreaCerchio) e la Sub Prova
che serve a provare tale funzione.

' sub utilizzata per provare la funzione AreaCerchio

Sub prova()
Dim Dato As Single
Dim Area As Single
'introduzione dati

Dato = InputBox(prompt:="Inserisci il raggio")


'calcolo l'area del cerchio utilizzando la funzione AreaCerchio e passandole il valore del raggio

Area = AreaCerchio(Dato)
'fornisce la risposta

risposta = "L'area del cerchio con" & Chr(13) & " r = " & Dato & _
Chr(13) & " uguale a " & Area
MsgBox prompt:=risposta, Buttons:=vbOKOnly + vbInformation
End Sub
================================================================
'calcola l'area del cerchio, dato il raggio

Function AreaCerchio(ByVal Raggio As Single) As Single

corso di Excel

pag. 6

'il programma chiamante passer una copia del valore del Raggio e non l'indirizzo, dato che Raggio preceduto
dall'opzione ByVal

Dim PiGreco As Single


'tre diversi modi per memorizzare la costante PiGreco
'si attribuisce alla variabile PiGreco il valore 3,14

PiGreco = 3.14
'ricava la costante pigreco dalla funzione di Excel PI.GRECO()
'si noti che:
' a) bisogna far precedere il nome della funzione dalla parola Application
' b) si utilizza il nome della funzione della versione inglese
'
PI.GRECO() ===> PI()
'

PiGreco = Application.Pi()
'si calcola PiGreco utilizzando le funzioni del Basic

PiGreco = 4 * Atn(1)
'si calcola l'area del cerchio

AreaCerchio = PiGreco * Raggio ^ 2


End Function
Siamo ora in grado di provare la nostra Sub
e la Function che verr chiamata.
Strumenti/Macro/Macro
Selezioniamo il nome della macro prova
Esegui
Inseriamo il raggio nella finestra che
compare
OK
In risposta otterremo il messaggio seguente.
Possiamo anche utilizzare la funzione AreaCerchio nel foglio
elettronico, in aggiunta a quelle fornite da Excel.
Ricordiamoci che se vogliamo utilizzare tale funzione in qualsiasi foglio
di lavoro, dobbiamo memorizzarla in un modulo della cartella person.

corso di Excel

pag. 7

Sub aCaso()
Nella prima colonna, a partire dalla quarta riga, registra un progressivo da 1 a 15.
Genera 15 numeri casuali compresi tra 0 e 100 e li inserisce nella seconda colonna del foglio di lavoro.
Nella prima e seconda riga del foglio di lavoro, inserisce rispettivamente il minimo ed il massimo dei numeri
generati, nonch la riga corrispondente.
Evidenzia in verde e giallo il minimo ed il massimo
L'istruzione Const Inizio = 3 permette di utilizzare la parola Inizio al posto del numero 3 in tutte le
istruzioni della sub. Volendo cambiare il 3 in 5 in tutte le istruzioni in cui compare, sar sufficiente
modificare l'istruzione Const.

L'istruzione Randomize Timer inizializza il generatore di numeri casuali, utilizzando il timer del computer
per stabilire l'elemento da cui partire.
Notiamo la presenza del gruppo for I = 1 to FinoA . next I
Tutte le istruzioni racchiuse all'interno vengono eseguite 15 volte, dal momento che FinoA vale 15.
Ogni volta che il ciclo viene eseguito, I viene incrementato di una unit.

L'istruzione Int(Rnd()*101) fornisce un numero intero compreso tra 0 e 101.


L'istruzione Rnd() fornisce un numero casuale non intero compreso tra zero ed 1.
Rnd()*101 permette di ottenere un numero casuale, con decimali maggiore o uguale a zero e minore di
101.
Int( ) restitusce la parte intera dell'argomento.
Le istruzioni if Then Else Endif servono per memorizzare il massimo ed il minimo dei numeri generati e
le righe corrispondenti.
L'istruzione Cells(Inizio + I, 2) = Numero
consente di scrivere nella cella corrispondente alla
riga = Inizio + I
colonna = 2
del foglio di lavoro attivo, il numero casuale generato.

corso di Excel

pag. 8

La sub Cerca() permette di individuare le celle contenenti i numeri massimi e minimi e li evidenzia, colorando lo
sfondo di giallo e verde, e scrivendo nella cella a fianco rispettivamente "massimo" e "minimo".
Le istruzioni Racchiuse tra Do Until Cells(I + inizio, 1) e Loop vengono eseguite un certo numero di volte, finch
la cella di coordinate I+Inizio ed 1 non risulta vuota.
Dal momento che Inizio vale 3 e che ad I viene assegnato il valore 1 prima del gruppo Do, la prima volta viene
esaminata la cella riga 4, colonna 1.
Le istruzioni If Then Else permettono di memorizzare le righe corrispondenti al massimo ed al minimo numero letto.
Non appena si incontra una cella vuota, si esce dal gruppo Do.
A questo punto (conoscendo le righe corrispondenti al massimo ed al minimo possibile evidenziarli).
L'istruzione Cells(RigaMax, 2).Interior.Color = vbYellow permette di cambiare la propriet del colore dello sfondo

della cella di coordinate RigaMax, 2 assegnandole il colore giallo. vBYellow una costante
numerica corrispondente al colore giallo.
L'istruzione Cells(RigaMax, 3) = "massimo" permette di memorizzare la scritta "massimo" nella cella di coordinate
RigaMax, 3.

corso di Excel

pag. 9

Sub SfondoArlecchino()
'colora lo sfondo delle celle selezionate in modo casuale

Dim Verde, Rosso, Blu As Integer


Dim C As Range
' la funzione Rnd() genera un numero casuale compreso tra zero ed uno
'la funzione RGB permette di ottenere un colore mescolando i tre componenti fondamentali
'C in questo caso rappresenta un oggetto Range, cio una cella
'l'istruzione For . next permette di ripetere un gruppo di istruzioni per ogni C appartenente alla zona
'selezionata
.Interior.Color una propriet dell'oggetto range (colore dello sfondo)
.Value permette di scrivere qualcosa nella cella selezionata (in questo caso il numero corrispondente al colore dello
sfondo)

For Each C In Selection


Rosso =
Int(Rnd() * 256)
Verde =
Int(Rnd() * 256)
Blu
=
Int(Rnd() * 256)
C.Interior.Color = RGB(Rosso, Verde, Blu)
C.Value = RGB(Rosso, Verde, Blu)
Next
End Sub
Ed ecco cosa si ottiene eseguendo la macro, su un gruppo di celle selezionate.

corso di Excel

pag. 10

Function ConvNumLett(ByVal Numero As Currency) As String


Funzione che converte un numero in una stringa

Ad esempio 127

centoventisette

'Si riceve il valore di numero e non 'l'indirizzo; di conseguenza non si modifica il campo Numero del programma
chiamante, l'alternativa ByVal.
Dim Stringhetta

As String

Dim DesUnit(20)
Dim DesDecine(10)
Dim DesEsp(4)
Dim DesEspUno(4)
Dim Esponente

As String
As String
As String
As String
As Integer

Dim decine
Dim unit
Dim centinaia
Dim Resto
Dim NumTre
Dim OldNumero

As Byte
As Byte
As Byte
As Integer
As Integer
As Currency

OldNumero = Numero

Stringhetta = ""
DesUnit(0) = ""
DesUnit(1) = "uno"
DesUnit(2) = "due"
DesUnit(3) = "tre"
DesUnit(4) = "quattro"
DesUnit(5) = "cinque"
DesUnit(6) = "sei"
DesUnit(7) = "sette"
DesUnit(8) = "otto"
DesUnit(9) = "nove"
DesUnit(10) = "dieci"
DesUnit(11) = "undici"
DesUnit(12) = "dodici"
DesUnit(13) = "tredici"
DesUnit(14) = "quattordici"
DesUnit(15) = "quindici"
DesUnit(16) = "sedici"
DesUnit(17) = "diciassette"
DesUnit(18) = "diciotto"
DesUnit(19) = "diciannove"
DesDecine(2) = "venti"
DesDecine(3) = "trenta"
DesDecine(4) = "quaranta"
DesDecine(5) = "cinquanta"
DesDecine(6) = "sessanta"
DesDecine(7) = "settanta"
DesDecine(8) = "ottanta"
DesDecine(9) = "novanta"
DesDecine(10) = "cento"

'vettore di 21 elementi di tipo stringa con indice compreso tra 0 e 20

corso di Excel

pag. 11

DesEsp(0) = ""
DesEsp(1) = "Mila"
DesEsp(2) = "Milioni"
DesEsp(3) = "Milardi"
DesEspUno(0) = ""
DesEspUno(1) = "Mille"
DesEspUno(2) = "unMilione"
DesEspUno(3) = "unMiliardo"

'se il numero negativo, aggiunge il prefisso "meno"


'e cambia il numero in positivo

If Numero < 0 Then


Numero = 0 - Numero
stringhetta = "meno"
endif
Tratta tre cifre alla volta, partendo da quelle pi significative

For Esponente = 4 To 0 Step -1


'esponente = 4 ==> migliaia di miliardi
'esponente = 3 ==> miliardi
'esponente =2 ==> milioni
'esponente = 1 ==> migliaia
'esponente = 0 ==> unit
NumTre contiene tre cifre partendo da migliaia di miliardi

NumTre = Int(Numero / 1000 ^ Esponente)


Select Case NumTre
Case Is < 0
Stringhetta = "non converto numeri negativi"
Case Is = 0
Stringhetta = stringhetta & ""
Case Is = 1000
Stringhetta = "mille"
Case Is < 1000
'converte le centinaia

centinaia = Int(NumTre / 100)


If centinaia = 0 Then
Else
If centinaia > 1 Then
Stringhetta = Stringhetta & DesUnit(centinaia)
Else
End If
Stringhetta = Stringhetta & "cento"
End If
'converte le decine

Resto = NumTre - centinaia * 100


decine = Int(Resto / 10)
If decine > 1 Then
Stringhetta = Stringhetta & DesDecine(decine)

corso di Excel

pag. 12

'converte le unit

Resto = Resto - decine * 10


If Resto = 1 Or Resto = 8 Then
Stringhetta = Left(Stringhetta, Len(Stringhetta) - 1) _
& DesUnit(Resto)
Else
Stringhetta = Stringhetta & DesUnit(Resto)
End If
Else
'converte un numtre inferiore a venti

Stringhetta = Stringhetta & DesUnit(Resto)


End If
Case Else
Stringhetta = "non sono in grado di convertirlo"
End Select
'aggiunge mille o mila alle migliaia
'milione o milioni
'miliardo o miliardi

If NumTre = 1 Then
Stringhetta = Left(Stringhetta, Len(Stringhetta) - 3)
Stringhetta = Stringhetta & DesEspUno(Esponente)
Else
If NumTre > 1 Then
Stringhetta = Stringhetta & DesEsp(Esponente)
End If
End If
Numero = Numero - Int(Numero / 1000 ^ Esponente) * 1000 ^ Esponente
Next Esponente
If OldNumero = 0 Then Stringhetta = "zero"
ConvNumLett = Stringhetta
End Function
Vediamo ora di applicare tale funzione:

corso di Excel

pag. 13

date

1.
2.
3.
4.

cella B8: =D5


cella B9: =B8+1
copiare la formula della cella B9, nelle celle B10..B14
Cella C8: utilizzare la funzione "GIORNO.SETTIMANA(B8,tipo)", che restituisce un
numero da 1 a 7 corrispondente al giorno della settimana. Tipo permette di considerare come
primo giorno il luned o la domenica.
5. Scegliere il formato personalizzato "gggg", per visualizzare luned, marted, ecc. ecc
6. Idem per le celle C9.C14
7. Per introdurre le ore utilizzare un formato ora, ad esempio 80:00
8. Tenere presente che introducendo un'ora o una data si memorizza un numero seriale, le ore
zero del primo giorno del secolo corrispondono al numero 1.
9. L'unit di misura il giorno.
10. Le ore SEI del primo giorno del secolo vengono registrate con il numero 1+ 6/24 = 1,25.
11. Se visualizziamo una cella contenente il numero 1,25, a seconda del formato prescelto
potremo vedere:

06:00 (con uno dei formati ora)

01 gen 1990 (con uno dei formati data)

1,25 con un formato numero

01 gen 1990 06:00 con un diverso formato data/ora

corso di Excel

pag. 14

12. Tenere presente che anche se leggiamo ore totali 38:50, in realt il numero memorizzato :
38/24+50/(24*60) e di questo si deve tener conto anche nel calcolare il compenso_settimanale
= ore eccedenti le 18 per compenso orario il compenso orario deve essere moltiplicato per
24, dato che l'unit di misura il giorno.
13. Per visualizzare un numero di ore superiore a 24, utilizzare un formato personalizzato del tipo
[h]:mm
14. Nel calcolare le ore lavorate nell'arco della giornata, tenere presente il caso in cui l'uscita
avviene dopo le ore 24, utilizzare quindi la funzione "SE".

corso di Excel

pag. 15

Utilizzo del risolutore:

La cella obiettivo la F7
Verr calcolato automaticamente il valore della cella B11 (percorrenza mensile), che consente
di realizzare l'obiettivo, cella F7=0.

corso di Excel

pag. 16

Altro esempio di utilizzo del risolutore:


Soluzione di un'equazione, nel campo dei numeri reali.
La cella C8 contiene
la formula
visualizzata nella
barra delle formule e
rappresenta la cella
obiettivo, la cella C7
rappresenta invece la
grandezza che viene
fatta variare.

Scegliere strumenti, risolutore:


Impostare la cella C8 Uguale al
valore di zero, cambiando la cella
C7.
Ed ecco il risultato che si ottiene:

corso di Excel

pag. 17

Quesiti a risposta chiusa:


La colonna A, attualmente
nascosta, contiene le risposte
esatte; la colonna B le
domande; la colonna C le
risposte che dar l'allievo.
Nelle colonne D ed E si
segnalano le risposte esatte e
quelle errate.
Al pulsante Start associata
una macro che cancella le
risposte gi date e permette di
rieseguire l'esercizio dall'inizio.
Al pulsante Scopri associata una macro che permette di scoprire la colonna nascosta A e quindi di
controllare quali avrebbero dovuto essere le risposte esatte.
Ed ecco la formula associata alle celle della colonna D:

La funzione Identico sensibile a maiuscolo/minuscolo, a differenza del confronto con =


Vediamo ora come scegliere casualmente i quesiti, avendo a disposizione alcuni archivi (fogli).

Vengono proposti tre quesiti ogni volta che si preme il tasto esegui.
Nella cella C8 si pu selezionare
l'archivio (il foglio) contenente le
domande di un argomento, capitolo ecc.
ecc. sufficiente aprire la tendina e
selezionare il foglio desiderato.

corso di Excel

pag. 18

Per ottenere questo risultato occorre, in un'area del foglio, indicare i dati validi per la cella C8, e nella cella
C8 scegliere dati/convalida e selezionare quindi l'area del foglio che contiene i dati validi (in questo caso le
celle (H3-K3). La formula evidenziata nella
cella H4 individua il numero di quesiti
presenti nel foglio lez1-2, contando le celle
dalla A3 alla 120 il cui contenuto diverso da
niente. (Si prevedono al massimo 117 quesiti
per foglio).

Al pulsante Esegui associata una SUB che seleziona tre quesiti a caso dal foglio di lavoro desiderato e li
copia nel foglio attivo; naturalmente copia anche le risposte esatte, che rimangono nascoste nella colonna
A.

Nelle celle D4, D5, D6 troviamo le solite


formule che segnalano se la risposta esatta
o errata.
Per la formattazione delle tre celle si
utilizzato: formato/condizionale:

corso di Excel

pag. 19

corso di Excel

pag. 20

Tabella Pivot:
Supponiamo di voler
costruire una tabella Pivot,
per evitare di dover ripetere
l'operazione ogni volta che i
dati vengono modificati,
registriamo le operazioni in
una macro. Rendere attiva
una cella contenente i dati,
quindi selezionare dati/Report
tabella Pivot:
scegliere Elenco o databased
Microsoft Excel, accettare
l'intervallo di celle
selezionato
automaticamente, se
corretto, quindi indicare
come elaborare i dati.
Scegliamo Rappresentante in
pagina, stagione in riga,
prodotto in colonna e
vendite in dati (due volte)
Verr proposta la somma
delle vendite, accettiamo la
prima e modifichiamo la
seconda in max dopo un
doppio click nel campo
somma vendite2.
Quindi procediamo con avanti e
poi con fine, indicando dove
deve essere incollata la tabella
Pivot.
Ed ecco il risultato:
possibile selezionare un
rappresentante o tutti, agendo
sulla tendina posta in alto.

corso di Excel

pag. 21

Ed ecco la macro registrata:

possibile rieseguirla in qualunque momento, dopo aver modificato i dati della tabella, senza dover
rieseguire tutte le operazioni, ma semplicemente con macro/esegui/Pivot

corso di Excel

pag. 22

Il Gioco del
Lotto
Proviamo a
simulare il gioco
del lotto.
La sub Estrai,
simula
l'estrazione su
tutte le ruote.
La sub controlla
segnala quali
numeri giocati
sono stati
estratti e li
segnala
colorando di
giallo lo sfondo
delle celle
corrispondenti.
Inoltre, in caso
di vincite, le
segnala con una
scritta in
corrispondenza alla ruota fortunata. Il pulsante Estrai e controlla manda in esecuzione una sub che esegue
in successione le due precedenti.
Infine possibile rieseguire l'estrazione ed il controllo pi volte fino al raggiungimento di una certa vincita
indicata nella cella E21 segnalando il numero delle estrazioni (cella B19) e le vincite complessive (celle da
B21 a B24). Tale sub ha il nome di finoaVittoria.
Per evitare errori di digitazione nella cella E21, stata utilizzata l'0pzione convalida dati del men dati.
Si scelto Elenco per la casella consenti (criteri
di convalida) e le celle da A30 ad A33 per
l'origine dei dati.
Ed ecco il
contenuto delle
celle in
questione.

Vediamo ora la sub Estrai():

corso di Excel

pag. 23

Il gruppo For Riga 6 to 15


viene eseguito 10 volte
(estrazione dei numeri
corrispondenti alle dieci
citt). Per ognuna di queste
righe devono essere estratti
6 numeri compresi tra 0 e
90, senza ripetizione. Il
gruppo Do . Loop Until
Diverso permette di ripetere
l'strazione finch il numero
non diverso dai precedenti.
L'istruzione Int(Rnd()*91)
permette di ottenere un
numero intero, casuale,
compreso tra 0 e 90. Tale
numero viene confrontato
con quelli gi estratti nella
stessa ruota (citt) e
memorizzati nel vettore
Ruota(J).
Il numero estratto, se valido,
viene scritto nella colonna
opportuna (primo + I); il
primo estratto finir nella
colonna 2.
La sub Controlla esamina una
ruota alla volta (for riga 6 ..to
15) considera uno alla volta i
numeri giocati (For I = 1 to 5)
e li confronta con quelli
estratti (colonne dalla 2 all 7),
se corrispondono colora lo
sfondo della cella di giallo
(cells(Riga,
Colonna).Interior.Color=vbYel
low)) e incrementa il
contatore Indovinato. Dopo
aver esaminato tutti i numeri
giocati, se per quella ruota
sono almeno due, viene
segnalata la vincita, scrivendo
la sigla corrispondente (ambo
o terno o ) in
corrispondenza della ruota ed
aggiornando il riepilogo delle
vincite (si incrementa di 1 la
cella opportuna).
Se per quella ruota non si sono
realizzate vincite si cancella una eventuale scritta relativa ad una precedente estrazione.
il tutto verr ripetuto per le ruote successive, quindi prima della fine Sub ci sar l'istruzione Next Riga.

corso di Excel

pag. 24

Vediamo ora le due Sub rimanenti:


EstraiControlla esegue in successione la procedura
estrai e poi controlla. Come si pu notare, la sua
scrittura estremamente semplice e compatta.
FinoaVittoria riesegue le estrazioni ed i controlli
fino al raggiungimento di un cero obiettivo
programmato (vincita di una certa categoria),
digitato nella cella riga21, colonna5.
Il primo gruppo For J = 19 To 25 cancella le
vincite precedenti prima di procedere alle
estrazioni. Le quattro istruzioni IF permettono di
stabile in quale riga (categoria) dovr comparire
una vincita per potersi considerare soddisfatti ed
interrompere le estrazioni.
Il gruppo Do Until .. Loop riesegue estrazioni e controlli fino a che nella cella(Riga, 2) non si ottenuta
una vincita.

corso di Excel

pag. 25

Fatturazione:
Come prima operazione
prevediamo di importare i dati
riguardanti gli articoli,
prelevandoli da un
archivio articoli.txt.
Selezioniamo File/Apri e poi il
nome del file di testo. Scegliamo
di considerare i dati separati da
tabulazioni, dal momento che
cos sono stati memorizzati.
Lalternativa principale
costituita da dati a lunghezza
fissa.

Successivamente possiamo vedere


unanteprima di quello che sar il
risultato dellimportazione. Possiamo
anche modificare alcuni parametri.
Ed ecco il risultato dellimportazione:

Un secondo archivio necessario quello con i dati dei clienti. Utilizzeremo quindi un foglio di lavoro con il
nome clienti.

Vediamo ora il foglio di calcolo dove verr elaborata la fattura.

corso di Excel

pag. 26

In una zona libera del foglio, scriviamo alcuni dati che serviranno per automatizzare alcune operazioni e
precisamente:
Lultimo numero utilizzato per le fatture
Le aliquote I.V.A. che utilizzeremo.
Le descrizioni delle condizioni di
pagamento che potremo utilizzare.

Le celle con sfondo verde sono


quelle che lutente deve
riempire, tutto il resto sar
calcolato automaticamente. Il
primo riquadro in alto a sinistra
contiene i dati della ditta che
fattura, dati che normalmente
non vengono cambiati.
Il secondo riquadro a sinistra
contiene il numero e la data
della fattura. Il numero pu
essere assegnato
automaticamente, mediante una
semplice procedura che

esamineremo successivamente e
che viene attivata premendo il
pulsante Assegna Numero. La data
quella del sistema, infatti la
casella corrispondente contiene
la funzione: =OGGI() che
restituisce la data del giorno.
La realizzazione dei riquadri
richiede lutilizzo della barra di
strumenti per il disegno. Per
realizzarlo sono stati utilizzati quattro elementi:
una parentesi quadra aperta,
una chiusa e
due linee orizzontali.
Il tutto poi stato raggruppato in modo da formare
un solo oggetto. Gli altri riquadri sono stati ottenuti
con una semplice operazione di copia/incolla e
successivo ridimensionamento e posizionamento
con il mouse.

corso di Excel

pag. 27

Il riquadro in alto a destra corrisponde ai dati del cliente. sufficiente digitare il codice del cliente. Ed ecco
come si ottenuto questo risultato:
Come prima operazione, per semplificare e rendere pi leggibili le formule, abbiamo deciso di definire la
parte del foglio di lavoro contenente gli articoli con il nome ar_articoli.
Per far questo selezioniamo Inserisci/Nome/Definisci. Digitiamo quindi il nome ar.articoli ed indichiamo a
quale intervallo di celle si riferisce.

Allo stesso modo definiamo larea che


corrisponde allarchivio clienti utilizzando il
nome ar.cliente
Vediamo come ottenere automaticamente il cognome e nome preceduto da Sig. Potremmo scrivere la
seguente formula: ="Sig. & CERCA.VERT($G$4;ar_clienti;2;FALSO)
Con la funzione CERCA.VERT si cerca il record della tabella ar_clienti avente lo stesso codice digitato nella
cella (G4), restituendo come risultato il campo della colonna 2, cio la ragione sociale. Il quarto parametro
False richiede una corrispondenza esatta per il codice che si cerca.
Il simbolo & permette di concatenare la stringa Sig. con la ragione sociale.
La formula inserita leggermente pi complessa, per gestire il caso in cui il codice digitato errato oppure
se non si digita nessun codice. In tal caso si preferisce lasciare vuota la cella, piuttosto che veder comparire
una scritta che segnala un errore. Si pertanto fatto ricorso ad altre due funzioni:
1. VAL.ERRORE() che restituisce VERO nel caso lespressione tra parentesi dia luogo ad un errore (non si
trova un record con il codice corrispondente)
2. SE(condizione;se vero;se falso)
La condizione : si verificato un errore utilizzando la funzione CERCA.VERTICALE
Se vero (si verificato un errore) si aggiunge a Sig. la stringa vuota
Se falso si ottiene la ragione sociale con la funzione CERCA.VERTICALE
La formula finale la seguente:
="Sig. & SE(VAL.ERRORE(CERCA.VERT($G$4;ar_clienti;2;FALSO));"";CERCA.VERT($G$4;ar_clienti;2;FALSO))

In modo analogo si costruiscono le formule per lindirizzo del cliente.


La seguente procedura serve per
assegnare automaticamente il numero
della fattura.
La cella di coordinate 2, 14 contiene
lultimo numero utilizzato.
La cella di coordinate 5, 3 quella che
corrisponde al numero della fattura in
questione. Se tale numero gi stato
attribuito (automaticamente o
manualmente) la funzione non esegue nessuna operazione (exit sub); in caso contrario lultimo numero
viene incrementato di una unit e assegnato alla fattura.

corso di Excel

pag. 28

Passiamo ora al dettaglio fattura.

La sottile riga che divide le righe 10 ed 11 permette di visualizzare sempre la testata della fattura, dividendo
la finestra in senso orizzontale in due parti. Per ottenere ci le operazioni da effettuare sono:
click sulla riga 11
Finestra/Blocca Riquadri
Il codice articolo deve essere uno di quelli appartenenti allarchivio articoli.
Vediamo la formula della cella di coordinate D11 dove compare la scritta diario.
Non gestendo gli errori la formula sarebbe la seguente:
=CERCA.VERT($B11;ar_articoli;2;FALSO)
Il codice da cercare quello della cella B11, lindirizzo della colonna B assoluto $B, per permettere
una pi agevole duplicazione della formula nei campi successivi.
Larchivio in cui effettuare la ricerca quello definito con il nome ar_articoli
Il campo che si prelever sar quello della colonna 2 (descrizione degli articoli)
La corrispondenza dei codici deve essere esatta (FALSE)
Volendo gestire anche gli errori, la formula assumer la forma seguente:
=SE(VAL.ERRORE(CERCA.VERT($B11;ar_articoli;2;FALSO));"";CERCA.VERT($B11;ar_articoli;2;FALSO))

Analoghe sono le formule per inserire automaticamente UM, prezzo ed iva%.


Il campo Valore contiene la formula quantit * Prezzo; cio:
=C11*F11
Analizziamo ora il piede della fattura:

La selezione del pagamento, mediante casella a discesa stata ottenuta tramite:


Dati/Convalida: e successivamente scegliamo
impostazioni, Elenco nella casella Consenti, e nella casella
Origine indichiamo le celle N5:N7 che contengono le
descrizioni delle modalit di pagamento.
La cella contenente il totale imponibile ha la semplice
formula somma dei valori delle righe di dettaglio.
Troviamo quindi una tabellina con il dettaglio
dellI.V.A. (4, 10 e 20 percento); il totale dellI.V.A.
(Formula somma) ed il totale generale (imponibile +
IVA).
Vediamo ora la formula che permette di ottenere
limponibile con IVA al 4%.

corso di Excel

pag. 29

=DB.SOMMA($G$10:$H$
39;"Valore";Q$1:Q$2)
La funzione utilizzata :
DB.SOMMA(Database;Ca
mpo;Criteri)
Il Database
costituito dalle righe
di dettaglio, campi
IVA% e Valore
In campo digitiamo
tra virgolette
Valore indicando
quale dato deve
essere sommato
In criteri indichiamo
le celle Q1:Q2, in
questo caso gli
indirizzi delle righe 1
e 2 sono assoluti per
permettere una
agevole duplicazione della formula per le altre aliquote.
Si noti che letichetta in Q$1 (iva%) deve corrispondere alletichetta della testata delle righe di dettaglio;
stesso discorso per Valore.
Visualizziamo ora la macro che viene eseguita premendo
il pulsante Nuova Fattura:
Si tratta semplicemente di cancellare i campi digitati
dallutente predisponendoli per una nuova fattura.
Vediamo ora di analizzare la sub ArchiviaFattura().
Tale procedura permette di archiviare i dati della fattura
appena compilata in un archivio (foglio di lavoro) che
individuiamo con il nome (arch_fat). Per ogni fattura verranno
archiviate n righe, corrispondenti alle righe di dettaglio e con
laggiunta di alcuni dati della testata e del piede. La prima
parte della sub memorizza i dati della fattura in alcuni campi
o matrici.
Nella seconda parte, si passa al foglio arch_fat e si
trascrivono i dati, partendo dalla prima riga libera.

corso di Excel

pag. 30

Listruzione Sheets(Fattura)
permette di passare al foglio
Fattura.
Nei campi NumFattura,
DataFattura, CodCliente vengono
memorizzati i dati essenziali della
testata (il numero della fattura, la
data ed il codice cliente). Ragione
sociale ed indirizzo non vengono
memorizzati in quanto possono
essere dedotti dal codice cliente,
con lausilio dellarchivio clienti.
Il ciclo For I = 11 to 38 permette
di analizzare le eventuali righe di
dettaglio, di contare quelle valide
e di memorizzarne i dati nelle
matrici MatCodiciArticolo,
MatQuantit, MatDescrizione,
MatIva e MatValori. Altri dati quali
il prezzo o lunit di misura
possono essere dedotti dai
precedenti o dallarchivio articoli.
Se il campo codice articolo
(Cells(I,2)) vuoto (), la riga non
contiene dati significativi e
pertanto viene ignorata.
Alla fine del ciclo For il campo
Righe contiene il numero di righe
significative, da archiviare.
Listruzione
Sheets(arch_fat).Select permette
di passare al foglio di lavoro
arch_fat.
Il campo Inizio dovr contenere il
numero dellultima riga
memorizzata in precedenza
nellarchivio; le righe che si
andranno ad aggiungere
inizieranno dalla successiva.
Listruzione
Range(a1).End(xlDown).Select
permette di selezionare lultima
riga della colonna a contenente
dei dati validi.
Il ciclo For I = 1 To Righe
permette di memorizzare le n=Righe di dettaglio. Alla fine ci si posiziona nel primo campo della prima
riga registrata.

corso di Excel

pag. 31

SCRUTINI;
I nomi sono da ritenere di pura fantasia e cos pure i voti, introdotti a caso.
Vogliamo ora vedere come automatizzare le operazioni di scrutinio:
memorizzazione dei dati,
stampa del tabellone,
stampa delle pagelle.
In un primo foglio, indicato con il nome di primo memorizzeremo le proposte di voto e le assenze dei
singoli allievi oltre ai loro nomi.

Per i voti si utilizzer il formato condizione che


consente di evidenziare in rosso le insufficienze ed in
nero gli altri voti.
Per i numeri indicanti le assenze si sceglie il colore
blu, in modo da rendere agevole lintroduzione dei
dati.
Da notare che i nomi degli allievi devono essere
scritti una sola volta, per tutti gli insegnanti.
Sempre al fine di rendere pi agevole lintroduzione
dei dati, vogliamo poter sempre vedere le prime due
colonne con i nomi degli allievi e le prime righe con
lindicazione delle materie. Per far questo
evidenziamo la cella C4 e scegliamo Finestra/Blocca
riquadri.
Un secondo foglio Tab1 consentir di ottenere
automaticamente il tabellone da esporre.
Da notare che Cognome si ottiene con la formula:
=primo!A3 che significa copia il contenuto della
cella A3 del foglio primo. Stessa formula per tutti gli
altri dati.
In pratica sufficiente duplicare la formula in tutto il
foglio di lavoro e poi cancellare le colonne

corso di Excel

pag. 32

corrispondenti alle assenze che non dovranno comparire nel tabellone. Scrivendo o modificando un dato
del foglio primo, verr automaticamente aggiornato il tabellone.

corso di Excel

pag. 33

Un terzo foglio di lavoro dovr contenere i dati che permettono di stampare le pagelle. Anche questo verr
ottenuto automaticamente dal primo foglio, sar abbastanza simile al primo, con i voti espressi per in
lettere.
La prima riga contenente le etichette
permette di individuare i dati di
ciascun record (con il termine record
indichiamo linsieme dei dati di un
allievo, cio di una riga).
I nomi degli studenti e le assenze
vengono copiati automaticamente con
la solita formula, dal primo foglio di
lavoro.
Per la scrittura e traduzione dei voti
in lettere si utilizza invece una
function voti() scritta ad hoc.
Le celle contengono quindi formule
del tipo:
=voti(primo!C4)
Vediamo ora la suddetta funzione:

Per completare la
stampa delle
pagelle
sufficiente scrivere
un documento
con word,
utilizzando

Stampa Unione.

corso di Excel

pag. 34

Appendice:
Istruzioni di VB

Dichiarazione di variabili
Per dichiarare una variabile viene in genere utilizzata un'istruzione Dim. Un'istruzione di
dichiarazione pu essere posizionata all'interno di una routine per creare una variabile a livello di
routine oppure pu essere posizionata all'inizio di un modulo, nella sezione Dichiarazioni, per
creare una variabile a livello di modulo.
Nell'esempio seguente viene creata la variabile strName e viene specificato il tipo di dati String.
Dim strName As String
Se questa istruzione compare in una routine, la variabile strName potr essere utilizzata solo in
tale routine. Se compare nella sezione Dichiarazioni di un modulo, la variabile strName sar
disponibile per tutte le routine del modulo, ma non per le routine di altri moduli del progetto. Per
rendere questa variabile disponibile per tutte le routine del progetto, necessario farla precedere
dall'istruzione Public.
la sintassi semplificata la seguente:
Dim nomevariabile As tipo. . .
nomevariabile
Obbligatoria. Nome della variabile, espresso in base alle convenzioni di
denominazione standard delle variabili.
tipo Facoltativa. Tipo di dati della variabile; pu essere:
una costante booleana: Boolean
un numero intero (Byte, , Integer, Long)
un numero in virgola mobile (Single, Double )
un numero con quattro cifre decimali, usato per le valute (Currency)
una data (Date)
una stringa (String )
un oggetto (Object)
un tipo definito dall'utente
oppure pu adattarsi al contenuto (Variant ;tipo di default)
esempio: Dim PiGreco as double
riserva spazio in memoria ad una variabile di nome PiGreco, dichiarata come numero in virgola
mobile, di precisione doppia.
Si possono utilizzare anche vettori e matrici. In tal caso l'istruzione la seguente:
Dim nomevariabile(n,m) As tipo. . .
si dichiara una matrice di nome nomevariabile
n serve per riservare lo spazio ad n+1 righe
m riserva lo spazio in memoria per m+1 colonne
per un totale di (n+1)*(m+1) elementi
tipo (come in precedenza), si riferisce ai singoli elementi
esempio: Dim Parole(10) as String
dichiara un vettore colonna di 11 righe (da 0 ad 11) e ciascun elemento una stringa
Suggerimenti:
Dichiarare sempre le variabili e preferibilmente all'inizio della sub o function.

corso di Excel

pag. 35

Utilizzare Variant solo se necessario.


Dichiarare le variabili a livello di modulo o public solo se veramente indispensabile.

corso di Excel

pag. 36

Riepilogo dei tipi di dati


La tabella che segue elenca i tipi di dati supportati e indica lo spazio su disco e l'intervallo valido
per ciascun tipo di dati.
Tipo di dati

Spazio su
disco

Intervallo

Byte
Integer
Long (intero lungo)

1 byte
2 byte
4 byte

Single
(virgola
mobile a precisione
semplice)

4 byte

Double(virgola mobile
a precisione doppia)

8 byte

Currency (intero
diviso)
Decimal

8 byte

Boolean
Data

Boolean
Date

2 byte
8 byte

Oggetto
stringa

Object
String(lunghezza
variabile)

4 byte
10 byte +
lunghezza
stringa
Lunghezza
stringa
16 byte

Da 0 a 255
Da -32.768 a 32.767
Da -2.147.483.648 a
2.147.483.6477
Da -3,402823E38 a -1,401298E-45
per valori negativi; da 1,401298E45 a 3,402823E38 per valori
positivi
-4,94065645841247E-324 per
valori negativi; da
4,94065645841247E-324 a
1,79769313486232E308 per valori
positivi.
Da -922.337.203.685.477,5808 a
922.337.203.685.477,5807
+/79.228.162.514.264.337.593.543.9
50.335 senza virgola;
+/7,92281625142643375935439503
35 con 28 decimali; il numero
minore diverso da zero
+/0,00000000000000000000000000
01
True o False
Dall'1 gennaio 100 al 31 dicembre
9999
Qualsiasi riferimento Object
Da 0 a circa 2 miliardi

Numeri interi

Virgola
mobile

valuta

String(lunghezza fissa)
Adattabile al
contenuto

Variant(con numeri)
Variant(con caratteri)
Definito dall'utente
(utilizzando Type)

14 byte

Da 1 a circa 65.400
Qualsiasi valore numerico fino
all'intervallo di un Double
Stesso intervallo di String a
lunghezza variabile

22 byte +
lunghezza
stringa
Numero
L'intervallo di ciascun elemento
richiesto dagli identico a quello del relativo tipo

corso di Excel

pag. 37

elementi

di dati sopraelencato.

Nota Le matrici di qualsiasi tipo di dati richiedono 20 byte di memoria pi quattro byte per ogni
dimensione della matrice pi il numero di byte occupati dai dati stessi. La memoria occupata dai
dati pu essere calcolata moltiplicando il numero di elementi dei dati per le dimensioni di ciascun
elemento. I dati in una matrice unidimensionale composti da quattro elementi di dati Integer di due
byte ciascuno, ad esempio, occupano otto byte. Gli otto byte richiesti dai dati pi i 24 byte di
overhead portano a 32 byte la memoria complessiva richiesta per la matrice.
Un tipo di dati Variant contenente una matrice richiede 12 byte in pi rispetto al numero di byte
richiesti dalla matrice da sola.
Sub: Dichiara il nome, gli argomenti e il codice che costituiscono il corpo di una routine Sub:
End Sub: ultima istruzione di una Sub
sintassi semplificata:
Sub nomesub()
istruzioni

End Sub
Suggerimenti:
aggiungere qualche riga di commento che spieghi quello che fa la sub, prima delle istruzioni
Function: Dichiara il nome, gli argomenti e il codice che costituiscono il corpo di una routine
function:
End Function ultima istruzione di una function
sintassi semplificata:
Function nomefunction(argomento1 as tipo1, argomento2 as tipo2) as tipo3
istruzioni

End Function
Si noti che gli argomenti sono separati da virgole e possono essere 0, 1, 2, 3 ecc. ecc.
Argomento1, argomento2 non devono essere dichiarati un'altra volta all'interno della function
mediante l'istruzione Dim.
esempio di una Function:
Function AreaCerchio(ByVal raggio as single) as single
AreaCerchio=raggio ^2 * 3.14
end Function
Suggerimenti:
aggiungere qualche riga di commento che spieghi quello che fa la Function, prima delle istruzioni, in
particolare indicare indicare quali sono i dati di input e quelli di output.
All'interno della function dovrebbe esserci almeno un'istruzione del tipo:
nomefunction = qualcosa.
preferibile passare gli argomenti per valore pittosto che per indirizzo; davanti ad ogni argomento
aggiungere pertanto la parola chiave ByVal; l'alternativa (per default) ByRef .

corso di Excel

pag. 38

Parole chiave relative agli operatori


Aritmetici.
^, , *, /, \, Mod, +
Di confronto.
=, <>, <, >, <=, >=,
Logici.
Not, And, Or, ..
Per concatenare le stringhe di due &
espressioni
Funzioni
Riguardanti la data
Ottenere la data o l'ora corrente. Date, Now, .
funzioni aritmetiche
Funzioni trigonometriche.
Calcoli generici.
Generare numeri casuali.
Ottenere un valore assoluto.
Ottenere il segno di un'espressione.
Eseguire conversioni numeriche
(restituiscono la parte intera di un
numero).
Controllo del flusso
Salto incondizionato
Uscire dal programma
Ciclo.

Operare scelte.
Utilizzare routine.
trattamento stringhe
Confrontare due stringhe.
Convertire stringhe.
Convertire in minuscole o in
maiuscole.
Creare una stringa di caratteri
ripetuti.
Trovare la lunghezza di una stringa.
Formattare una stringa.
Allineare una stringa.
Manipolare stringhe.
Varie
Trattamento colori
Fare emettere un segnale acustico al
computer.
Visualizzare un messaggio (output)
Immettere un dato. (input)

Atn, Cos, Sin, Tan


Exp, Log, Sqr
Randomize, Rnd
Abs
Sgn
Fix, Int

GoTo
Exit
Do...Loop,
For...Next,
For Each...Next,
If...Then...Else, End If
Select Case,
Function, Sub
StrComp
StrConv
Format, LCase, UCase
Space, String
Len
Format
LSet, RSet
InStr, Left, LTrim, Mid,
Right, RTrim, Trim
RGB
Beep
MsgBox
InputBox

corso di Excel

pag. 39

Funzione InputBox
Visualizza un messaggio in una finestra di dialogo, attendendo che l'utente immetta del testo o
scelga un pulsante, quindi restituisce un valore String
che include il contenuto della casella di testo.
Sintassi
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
La sintassi della funzione InputBox composta dai seguenti argomenti predefiniti:
prompt
Obbligatoria. Espressione stringa che costituisce il messaggio visualizzato
nella finestra di dialogo. La lunghezza massima di prompt di circa 1024 caratteri e dipende dalla
larghezza dei caratteri utilizzati. Se prompt suddiviso su pi righe, possibile includere, tra
ciascuna coppia di righe, un ritorno a capo (Chr(13)), un carattere di avanzamento riga (Chr(10)) o
una sequenza ritorno a capo-avanzamento riga (Chr(13) & Chr(10)).
Osservazioni
Se l'utente sceglie OK o preme INVIO, la funzione InputBox restituir il contenuto della casella di
testo. Se l'utente sceglie il pulsante Annulla, la funzione restituir una stringa di lunghezza zero ("").
esempio:
DatoDiInput = InpuBox(prompt:="Inserisce il tuo nome"
===================================================================
Funzione MsgBox
Visualizza un messaggio in una finestra di dialogo e attende che l'utente scelga un pulsante, quindi
restituisce un valore Integer che indica quale pulsante l'utente ha scelto.
Sintassi:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
La sintassi della funzione MsgBox composta dai seguenti argomenti predefiniti:
prompt
Obbligatoria. Espressione stringa che costituisce il messaggio visualizzato nella
finestra di dialogo. La lunghezza massima di prompt di circa 1024 caratteri e dipende dalla
larghezza dei caratteri utilizzati. Se prompt suddiviso su pi righe, possibile includere, tra
ciascuna coppia di righe, un ritorno a capo (Chr(13)), un carattere di avanzamento riga (Chr(10)) o
una sequenza ritorno a capo-avanzamento riga (Chr(13) & Chr(10)).
buttons
Facoltativa. Espressione numerica che indica la somma dei valori che specificano il
numero e il tipo di pulsante da visualizzare, lo stile di icona da utilizzare, il tipo di pulsante da
utilizzare come impostazione predefinita e la modalit della finestra di messaggio. Se omesso il
valore predefinito di buttons 0.
Impostazioni
Alcune delle possibili impostazioni dell'argomento buttons sono:
Costante
Valore Descrizione
vbOKOnly
0
Visualizza solo il pulsante OK.
VbOKCancel
1
Visualizza i pulsanti OK e Annulla.

corso di Excel

pag. 40

VbCritical
VbQuestion
VbExclamation

16
32
48

Visualizza l'icona di messaggio critico.


Visualizza l'icona di richiesta di avviso.
Visualizza l'icona di messaggio di avviso.

esempio: MsgBox prompt: = "ciao", buttons = VbExclamation


Funzione RGB
Restituisce un numero intero Long che rappresenta un valore di colore RGB.
Sintassi
RGB(red, green, blue)
La sintassi della funzione RGB composta dai seguenti argomenti predefiniti:
red Obbligatoria; Variant (Integer). Numero compreso nell'intervallo tra 0 e 255 inclusi che
rappresenta il componente rosso del colore.
green Obbligatoria; Variant (Integer). Numero compreso nell'intervallo tra 0 e 255 inclusi che
rappresenta il componente verde del colore.
blue Obbligatoria; Variant (Integer). Numero compreso nell'intervallo tra 0 e 255 inclusi che
rappresenta il componente blu del colore.
Osservazioni
Le specifiche di colore ammesse per i metodi e le propriet delle applicazioni sono rappresentate
da un numero che rappresenta un valore di colore RGB. Il valore di colore RGB specifica
l'intensit relativa dei colori rosso, verde e blu che uniti producono un colore specifico.
Il valore per qualsiasi argomento della funzione RGB superiore a 255 verr considerato uguale a
255.
Nella tabella che segue vengono indicati alcuni colori standard e i relativi valori di rosso, verde e
blu:
Colore
Nero
Blu
Verde
Azzurro
Rosso
Fucsia
Giallo
Bianco

Valore rosso Valore


verde
0
0
0
0
0
255
0
255
255
0
255
0
255
255
255
255

Valore
blu
0
255
0
255
0
255
0
255

Viaggio attraverso la
conoscenza del pi diffuso
linguaggio di creazione macro

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Excel Visual Basic per applicazioni


Autore:
Enrico Cannoni
Prima edizione Corso on.line - Novembre 2001
Seconda edizione- Versione CD-ROM - Dicembre 2001
Copyright 2001 Manuali Net
U.R.L. www.manuali.net/
Copertina e progetto grafico di Enrico Cannoni
Ogni cura stata posta nella raccolta e nella verifica della documentazione
contenuta in questo corso. Tuttavia n lautore, n Manuali Net possono
assumersi alcuna responsabilit derivanti dallutilizzo della stesa.
Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni
internazionali.
Nessuna parte di questo corso pu essere riprodotta con sistemi elettronici,
meccanici o altri, senza lautorizzazione scritta dellEditore.
Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle
rispettive case produttrici.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Sommario
Sommario _________________________________________________________ 3
Presentazione ______________________________________________________ 8
Informazioni preliminari_____________________________________________ 9
Cosa bisogna sapere per affrontare questo corso? _________________________ 9
Versioni di Excel __________________________________________________ 9
Convenzioni utilizzate ______________________________________________ 9
Contenuto del corso ________________________________________________ 10
PARTE 1 Introduzione alle macro _______________________________________ 14
Lezione I - Il registratore di macro ___________________________________ 15
Prepariamoci a registrare una macro __________________________________ 15
Iniziamo a registrare_______________________________________________ 16
Il registratore partito _____________________________________________ 17
Provare la macro _________________________________________________ 17
Lezione II Riferimenti relativi ______________________________________ 19
Registrare una macro con i riferimenti relativi __________________________ 19
Verificare una macro con i riferimenti relativi __________________________ 20
Macro o Procedura ________________________________________________ 21
Allarme virus ____________________________________________________ 21
Lezione III - Macro di navigazione ___________________________________ 22
Navigare tra fogli _________________________________________________ 22
Scorciatoie da tastiera _____________________________________________ 23
I pulsanti________________________________________________________ 23
Raccolta di istruzioni per la gestione dei pulsanti ________________________ 24
Ping Pong _______________________________________________________ 25
Lezione IV - Macro universali _______________________________________ 26
Cartella macro personale ___________________________________________ 26
Personal.xls _____________________________________________________ 27
Lezione V Barre degli strumenti ____________________________________ 29
Macro per visualizzare le barre ____________________________________ 29
Una nuova barra degli strumenti _____________________________________ 31
Rifinire i pulsanti _________________________________________________ 32
Lezione VI Moduli, la terra di nessuno_______________________________ 34
Intervallo dati denominato __________________________________________ 34
Casella combinata ________________________________________________ 35
Casella di controllo _______________________________________________ 37
Casella di selezione _______________________________________________ 38

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione VII Un modello valutario ___________________________________ 40


Euroconvert _____________________________________________________ 40
Predisporre la casella combinata _____________________________________ 41
La funzione Indice ________________________________________________ 42
Calcolare lEuro __________________________________________________ 43
Vincolare la quantit ______________________________________________ 43
Gestire gli eccessi_________________________________________________ 44
Considerazioni ___________________________________________________ 45
PARTE 2 Primi passi nel VBA __________________________________________ 46
Lezione VIII LEditor di VBA ______________________________________ 47
Aprire lEditor di VB ______________________________________________ 47
Le finestre dellEditor di VB ________________________________________ 48
La finestra Progetto _______________________________________________ 48
La finestra delle Propriet __________________________________________ 49
La finestra del Codice _____________________________________________ 49
Lezione IX Il codice delle macro ____________________________________ 51
Regole generali___________________________________________________ 51
Analizzare il codice di Macro1 ______________________________________ 52
Analizzare il codice della macro RiferimentiRelativi _____________________ 53
Modificare il contenuto di una macro _________________________________ 54
I nomi delle procedure _____________________________________________ 55
Identare il codice _________________________________________________ 55
Le maiuscole ____________________________________________________ 55
Lezione X Operare delle scelte con IF______________________________ 56
Il file Comuni ____________________________________________________ 56
Scomporre i problemi______________________________________________ 56
Registrare la colorazione di una cella _________________________________ 57
Esaminare il codice della macro Colorare ______________________________ 58
Lenunciato Whit _________________________________________________ 59
Eliminare codice superfluo _________________________________________ 59
Colorare e scendere _______________________________________________ 60
SeAllora ______________________________________________________ 60
Lezione XI Ripetere le azioni _______________________________________ 62
Pulsanti alternativi ________________________________________________ 62
Rinominare un modulo_____________________________________________ 62
I cicli___________________________________________________________ 63
Do WhileLoop _________________________________________________ 63
Do Until Loop _________________________________________________ 64
Almeno una volta _______________________________________________ 65

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione XII - Le variabili ___________________________________________ 66


Definizione di variabile ____________________________________________ 66
Non dichiarare le variabili __________________________________________ 66
Dichiarare le variabili______________________________________________ 66
Denominazione di variabili _________________________________________ 67
Tipo di dati delle variabili __________________________________________ 67
La notazione scientifica ____________________________________________ 68
Dichiarazione delle variabili e del tipo ________________________________ 68
Le costanti ______________________________________________________ 69
Portata delle variabili ______________________________________________ 69
Dichiarare le costanti ______________________________________________ 69
Lezione XIII Comunicazioni allutente_______________________________ 70
Una semplice finestra di messaggio___________________________________ 70
Gli argomenti di MsgBox___________________________________________ 70
Lezione XIV Interazione con lutente ________________________________ 74
Finestra input ____________________________________________________ 74
Loutput verso una cella____________________________________________ 75
Ancora sugli argomenti ____________________________________________ 76
Metodo InputBox _________________________________________________ 76
A capo _________________________________________________________ 77
Lezione XV Procedura decisionale __________________________________ 78
Variabili a portata di modulo ________________________________________ 78
Inserire una procedura dentro una procedura____________________________ 79
Programmazione strutturata _________________________________________ 79
Decolorare ______________________________________________________ 80
PARTE 3 Addentrarsi nel VBA _________________________________________ 81
Lezione XVI Trova _______________________________________________ 82
Pulire lEditor di VB ______________________________________________ 82
Una macro per trovare _____________________________________________ 83
La guida in linea__________________________________________________ 84
Lezione XVII InputBox e Trova ____________________________________ 86
Una variabile contro la rigidit ______________________________________ 86
Adattare una macro preesistente _____________________________________ 86
Una immagine come pulsante _______________________________________ 87

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Lezione XVIII Gestione degli errori _________________________________ 88


Errori di linguaggio o di sintassi _____________________________________ 88
Errori di runtime__________________________________________________ 88
Errori logici _____________________________________________________ 88
Il primo errore ___________________________________________________ 89
Ancora logica ____________________________________________________ 89
Un errore da runtime ______________________________________________ 90
Un caso ambiguo _________________________________________________ 90
Un errore ortografico ____________________________________________ 91
Un errore spaziale_______________________________________________ 91
Non finiscono mai ________________________________________________ 91
Lezione XIX Debug _______________________________________________ 92
Punti di interruzione_______________________________________________ 92
Effettuare il debug ________________________________________________ 92
Intercettare gli errori di runtime ______________________________________ 94
Lezione XX I forms _______________________________________________ 95
Il primo form ____________________________________________________ 95
Forms e pulsanti __________________________________________________ 96
Personalizzare il pulsante tramite la finestra delle Propriet. _______________ 96
Evento clic ______________________________________________________ 97
Pubbliche e Private________________________________________________ 98
Lezione XXI Forms: atto II ________________________________________ 99
Dare vita ad un Form ____________________________________________ 99
Chiudere un Form _______________________________________________ 100
Aggiungere un altro pulsante _______________________________________ 100
Duplicare i pulsanti ______________________________________________ 101
Lezione XXII Allora Se___________________________________________ 102
Chiedere conferma _______________________________________________ 102
Scegliere un colore _______________________________________________ 103
I Pulsanti di opzione______________________________________________ 103
IfThenElse IfElseEnd If ___________________________________ 104
Case __________________________________________________________ 106
Lezione XXIII Ciclo For Next ___________________________________ 107
Ricavare dati da una cella _________________________________________ 108
Errore di Overflow _______________________________________________ 109
Proteggere e sproteggere __________________________________________ 109
Lezione XXIV Nidificare For Next _______________________________ 111
Il codice di ordinamento___________________________________________ 111

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Parte 4 Controllare Excel _____________________________________________ 113


Lezione XXV Le Function ________________________________________ 114
Tipi di routine___________________________________________________ 114
Creare una nuova funzione per Excel ________________________________ 114
Analisi del problema _____________________________________________ 115
Come trovare limporto netto_______________________________________ 115
CompensoNetto _________________________________________________ 116
Lezione XXVI Manipolare i dati ___________________________________ 118
Costruire lesempio ______________________________________________ 118
Funzioni Len e Left ______________________________________________ 119
Ottimizzare _____________________________________________________ 120
Passare i dati ad un nuovo foglio ____________________________________ 121
Pulire solo se _________________________________________________ 123
Lezione XXVII Auto_Apri_Chiudi _________________________________ 124
Auto_Apri _____________________________________________________ 124
Auto_Chiudi ____________________________________________________ 125
Un po di storia __________________________________________________ 125
Istruzioni varie __________________________________________________ 125
Esempi di Auto_Apri e Auto_Chiudi_________________________________ 126
Proteggere _____________________________________________________ 127
Lezione XXVIII I macro virus _____________________________________ 128
Come difendersi _________________________________________________ 128
Difesa artigianale ________________________________________________ 129
Appendici __________________________________________________________ 130
Unanimazione con Excel __________________________________________ 131
Il codice _______________________________________________________ 132
Controllare la risoluzione dello schermo ______________________________ 134
Impostazioni ____________________________________________________ 134
Listato_________________________________________________________ 135
Il commento del codice ___________________________________________ 136
File allegato ______________________________________________________ 138
Conclusioni ______________________________________________________ 139
Indice rapido_____________________________________________________ 140

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Presentazione
A partire dalla lontana versione 5.0 (1993), Excel primo fra i programmi
della Microsoft, introdusse un nuovo strumento di automatizzazione, il
Visual Basic per Applicazioni.
Il VBA (acronimo di Visual Basic for Application) un vero e proprio
linguaggio di programmazione, che appartiene alla famiglia del Visual
Basic e ne possiede identica sintassi e struttura, ma a differenza di
questultimo contiene degli oggetti peculiari di un foglio elettronico.
Grazie al connubio fra Excel e il VBA stata data la possibilit, ad un gran
numero di utenti, di creare potenti sistemi informativi completamente
automatizzati, prerogativa sino a non molto tempo fa riservata ai soli
programmatori professionisti.
La strategia della Microsoft, a partire da Office 97, ha introdotto il VBA in
tutte le sue applicazioni, in modo tale da diventare un unico linguaggio di
programmazione, nella specificit dei rispettivi ambienti di lavoro. Ci ha
favorito al massimo grado quella sinergia fra programmi, quali Excel ed
Access per esempio, da tanti invocata.
Nonostante tutte queste premesse favorevoli, in Italia il VBA non ha
incontrato il successo che ci si poteva attendere, come ad esempio ha avuto
negli Stati Uniti. Soprassedendo sulle varie ragioni culturali ed economiche,
la scarsa diffusione del VBA probabilmente da ricercare nelle difficolt
che gli utenti incontrano nellapprendere la sintassi di un linguaggio di
programmazione.
Il primo passo che occorre intraprendere per rendere la curva di
apprendimento del VBA meno erta proprio quella di avvicinarvisi dal
versante di Excel, che grazie al suo Registratore di Macro rende tutto
molto pi semplice.
Il secondo passo lo compie questo corso, durante il quale si cercher di
accompagnare gli utenti con esempi pratici e concreti, senza avventurarsi in
dissertazioni e finezze teoriche, sicuramente fondamentali per un
programmatore professionista, ma non indispensabili per un utente evoluto
che vuole essere subito produttivo.
Insomma quello che vi trovate innanzi un corso di programmazione per
non programmatori grazie al quale sarete in grado di costruire applicazioni
molto potenti.
Novembre 2001

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Informazioni preliminari

Cosa bisogna sapere per affrontare questo corso?


Per affrontare proficuamente lapprendimento del VBA non necessario
avere avuto precedenti esperienze di programmazione, ma sicuramente
indispensabile conoscere bene Excel.
Versioni di Excel
Pur essendo le immagini di corredo alle lezioni tratte da Excel 10 (Office
XP), si possono utilizzare tranquillamente anche le relase 9 (Office 2000) e
8 (Office 97). Pi problematica si presenta la situazione per chi ancora
dispone di Excel 7 (Office 95), o addirittura la mitica versione 5 per
Windows 3.1.
Naturalmente non assolutamente possibile utilizzare degli autentici fossili
tipo Excel 4.
Convenzioni utilizzate
Esempio di convenzione
Debug
SaltaErrore
Do While ActiveCell <>

CTRL+C
Nota: Non fate

Descrizione
Le parole in corsivo evidenziano
elementi di Excel o del VBA.
Il grassetto indica i nomi attribuiti alle
procedure, alle variabili, ai fogli di
lavoro e alle celle.
Il font Verdana con rientro sporgente
evidenzia codice di esempio.
Il testo bordato indica tasti,
combinazioni di tasti o pulsanti.
Testo su sfondo grigio, indica note o
approfondimenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

10

Contenuto del corso

INTRODUZIONE ALLE MACRO


LEZIONE I Il registratore di macro
Prendere confidenza con il registratore di macro e verificarne il
funzionamento.
LEZIONE II Riferimenti relativi
Registrare ed eseguire una macro. Apprendere la differenza fra macro con
riferimenti assoluti e macro con riferimenti relativi.
LEZIONE III Macro di navigazione
Navigare allinterno di un foglio e fra fogli. Associare le macro registrate a
dei pulsanti.
LEZIONE IV Macro universali
Rendere le macro sempre disponibili. I segreti di Personal.xls.
LEZIONE V Barre degli strumenti
Registrare una serie di azioni e associarle ai pulsanti di una nuova Barra
degli strumenti.
LEZIONE VI Moduli, la terra di nessuno
I controlli della Barra degli strumenti Moduli. Esaminare il funzionamento
della Casella combinata, della Casella di controllo e della Casella di
selezione: controlli direttamente disponibili nel foglio di lavoro.
LEZIONE VII Un modello valutario
Utilizzando gli strumenti presentati nella precedente lezione e una buona
conoscenza del foglio elettronico costruiremo un programma di conversione
di alcune valute Europee in Euro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

11

PRIMI PASSI NEL VBA


LEZIONE VIII LEditor di VBA
Descrizione dellambiente di programmazione.
LEZIONE IX Il codice delle macro
Leggere, analizzare e modificare il codice della macro precedentemente
registrate.
LEZIONE X Operare delle scelte con IfThen
Scrivere routine che verificando determinate condizioni eseguono
operazioni diverse a seconda del risultato.
LEZIONE XI Eseguire il ciclo Do WhileLoop
Le strutture a ciclo consentano di eseguire ripetutamente una serie di
istruzioni.
LEZIONE XII Le variabili
Cosa sono le variabili. Tipi di variabili. Dichiarare le variabili.
LEZIONE XIII Comunicazioni allutente
Usare MsgBox (Finestra messaggio).
LEZIONE XIV Interazione con lutente
Usare InputBox (Finestra di input)
LEZIONE XV Procedura decisionale
Usando InputBox e MsgBox creare una procedura che agisce secondo le
decisioni prese dallutente.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

12

ADDENTRARSI NEL VBA


LEZIONE XVI Trova
Implementare con il VBA una procedura di ricerca.
LEZIONE XVII InputBox e Trova
Rendere pi flessibile la ricerca di un campo sfruttando le potenzialit di
InputBox.
LEZIONE XVIII Gestire gli errori
Imparare ad intercettare gli errori per rendere le procedure pi professionali.
LEZIONE XIX Debug
Esaminare una procedura durante lesecuzione passo passo per verificarne il
funzionamento.
LEZIONE XX I Forms
Costruire una Finestra di dialogo.
LEZIONE XXI Forms. Atto II
Approfondire le modalit di gestione di un form.
LEZIONE XXII Allora Se
Potenziare le procedure precedentemente create con la struttura di controllo
IfThen...ElseIfElseEnd If e i Pulsanti di opzione. Ottimizzare con la
struttura di controllo Case.
LEZIONE XXIII Ciclo ForNext
For, routine da utilizzare quando si a conoscenza del numero di volte che
le istruzioni di un ciclo vanno ripetute. Il suo impiego facilita la creazione
di piccole utilit. Passare ad una procedura il valore contenuto in una cella.
LEZIONE XXIV Nidificare ForNext
Inserire un ciclo ForNext allinterno di un altro ciclo ForNext, aumenta
enormemente le nostre possibilit in Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

13

CONTROLLARE EXCEL
LEZIONE XXV Le Function
Differenze fra Sub e Function. Con lo strumento Function possibile creare
nuove funzioni per il foglio di lavoro Excel.
LEZIONE XXVI Manipolare i dati
Costruzione di una procedura che ripulisce il contenuto delle singole celle
di una colonna da caratteri superflui, che poi copia in un altro foglio di
lavoro. Sar introdotto luso delle funzioni interne Len e Left..
LEZIONE XXVII Auto_Apri_Chiudi
Con lausilio di particolari macro possibile eseguire delle routine in fase
di avvio e di chiusura di Excel. Piccola carrellata di routine adibite a
potenziare gli automatismi delle nostre procedure.
LEZIONE XXVIII I macro virus
Come difendersi dai macro virus
Appendice
Unanimazione per misurare le prestazioni del PC.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

14

PARTE 1
Introduzione alle macro
In questa prima fase del corso impareremo ad usare il Registratore di
macro. Si tratta di uno strumento piuttosto limitato, ma il suo uso
rappresenta un buon trampolino di lancio per imparare a programmare con
il VBA.
Affrontando lo studio della cartella Personal.xls impareremo a rendere
globali le nostre macro.
Infine, grazie al sapiente utilizzo dei controlli offerti dalla barra degli
strumenti Moduli, impareremo a creare applicazioni sorprendenti senza
usare una sola parola di codice.

Al corso allegato un file di Excel, di nome Comuni, contenente, oltre ai


soliti tre fogli vuoti, un foglio denominato Comuni, contenente lelenco di
tutti i comuni della provincia di Torino.
A partire dalla nona lezione dovrete utilizzare i dati presenti nel foglio di
lavoro citato nel precedente paragrafo. E comunque consigliato usare la
cartella di lavoro Comuni sin dalla prima lezione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

15

Lezione I - Il registratore di macro


Il Registratore di Macro un mezzo per memorizzare e riutilizzare le
azioni compiute con la tastiera e/o con il mouse, permettendo cos di creare
delle procedure automatizzate chiamate Macro. Le Macro eseguono
sequenze di azioni molto pi rapidamente di noi.
Prepariamoci a registrare una macro
Prima di iniziare la registrazione, dobbiamo pianificare le azioni che
vorremo successivamente far eseguire alla macro, poich eventuali
ripensamenti che dovessero sopraggiungere durante la registrazione saranno
impietosamente memorizzati e quindi riprodotti dalla macro.
Noi, ad esempio, vogliamo grassettare le intestazioni della tabella dati
riportata nellimmagine sottostante.

Per effettuate loperazione voluta dovremo spostarci dalla cella A1 alla


cella A3, selezionare lintervallo A3:F3 per poi cliccare sul comando
grassetta. Certo in questo caso le operazioni da effettuare sono molto
semplici, ma se la registrazione da fare ci richiedesse un buon numero di
azioni, sarebbe consigliabile effettuare una o pi prove senza avviare il
registratore. La possibilit di compiere degli errori molto alta.

NOTA: importante porre molta attenzione nelle azioni che registreremo, poich
anche la pi piccola variazione pu creare ripercussioni assolutamente
imprevedibili.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

16

Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e
cliccare sulla voce Registra nuova macro .

Sar visualizzata una finestra di dialogo denominata Registra Macro.

In questa prima registrazione non ci soffermeremo sulle opzioni che ci


vengono offerte, lasceremo invariato anche il poco fantasioso nome di
default Macro1.
Cliccare su OK per confermare linizio della registrazione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

17

Il registratore partito
In apparenza non sembra essere successo niente se escludiamo la presenza
di un nuovo pulsante nellarea di lavoro.
Ad essere precisi il pulsante una barra degli strumenti che prende il nome
di Interrompi registrazione e serve appunto a bloccare la registrazione della
macro.
Iniziamo ad eseguire le operazioni precedentemente provate: spostarsi dalla
cella A1 alla cella A3, selezionare lintervallo A3:F3 per poi cliccare sul
comando grassetta. Infine deselezioniamo attivando la cella A2.
Finito il nostro compito stoppiamo la registrazione cliccando
sullapposito pulsante.

NOTA: Quando volete fermare la registrazione fate attenzione a non posizionarvi


sulla X, poich in tal caso chiudereste la barra degli strumenti Interrompi
registrazione, lasciando il registratore di macro beatamente acceso.

Provare la macro
Adesso verifichiamo il nostro operato.
Propedeuticamente selezioniamo nuovamente lintervallo A3:F3 e togliamo
la grassettatura, altrimenti risulter difficile valutare leffetto della nostra
prima macro

Quindi dal menu Strumenti\Macro


scegliamo la voce Macro .

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

18

Sar visualizzata la finestra di dialogo Macro, al momento ospitante la sola


Macro1.
Cliccando sul pulsante Esegui la macro sar avviata

e come dincanto le intestazioni della tabella saranno grassettate.


Proviamo a ripetere lesecuzione della macro, spostandoci per, prima di
avviarla, nella cella C5 e togliendo la grassettatura.
Anche in questo caso la macro viene eseguita correttamente. Ma allora
perch abbiamo fatto questa prova?
Portate pazienza, con la prossima registrazione scopriremo larcano.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

19

Lezione II Riferimenti relativi

Registrare una macro con i riferimenti relativi


Iniziamo a registrare una seconda macro, avendo avuto cura di eliminare
leventuale grassettatura dalle intestazioni della tabella e di posizionarsi
sulla cella A1.
Dal menu Strumenti scegliere Macro per espandere una ulteriore
tendina e cliccare sulla voce Registra nuova macro .
Questa volta sostituiamo il nome
predefinito Macro2 con il nuovo nome
RiferimentiRelativi.
Quindi clicchiamo su OK per dare inizio alla nuova registrazione.
Individuiamo nellarea di lavoro la barra degli strumenti
Interrompi registrazione e prima di effettuare una
qualsiasi azione cliccare sul pulsante Riferimento
relativo.
Spostarsi dalla cella A1 alla cella A3, selezionare lintervallo A3:F3
per poi cliccare sul comando grassetta
Infine deselezionare attivando la cella A2.

Interrompiamo la registrazione cliccando sullapposito pulsante.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

20

Verificare una macro con i riferimenti relativi


Posizioniamoci sulla cella A1 e dal menu Strumenti\Macro
clicchiamo sulla voce Macro per visualizzare la finestra di dialogo
Macro.
Selezioniamo la nuova macro RiferimentiRelativi e clicchiamo sul
pulsante Esegui.

Anche questa volta la macro eseguir il suo lavoro correttamente. Ma


adesso proviamo a rieseguire RiferimentiRelativi posizionando la cella
attiva in C5. Ricordiamoci di togliere preventivamente la grassettatura dalle
intestazioni.
Constaterete che in questo caso la macro non ha funzionato. Vediamo di
capire il perch. La prima macro, Macro1, funziona sempre
indipendentemente dalla cella attiva al momento della sua esecuzione,
poich una macro con riferimenti assoluti; essa sa che deve iniziare in
ogni caso il suo lavoro dalla cella A3.
Invece RiferimentiRelativi, come dice il suo nome una macro con
riferimenti relativi. Durante la registrazione ci siamo spostati dalla cella A1
alla cella A3, cio siamo scesi in basso di due celle. Quindi la nostra macro,
essendo relativa, non ha registrato lo spostamento sulla cella A3, bens ha
registrato uno spostamento in basso di due celle. Pertanto essa
strettamente condizionata dalla cella di partenza.
Si potrebbe dire che le macro con riferimenti assoluti sono pi sicure, ma
pi rigide potendo essere utilizzate solo in locazioni non modificabili,
mentre le macro con riferimenti relativi sono flessibili ma pi difficili da
gestire. In realt le applicazioni pratiche di queste macro sono
estremamente limitate, il loro vero valore di tipo didattico e ce ne
renderemo bene conto quando passeremo ad esaminare il codice che hanno
generato nelle esercitazioni precedenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

21

Macro o Procedura
I termini Macro e Procedura, secondo alcuni autori, non sono equivalenti.
Si attribuisce lappellativo macro al codice prodotto con il registratore di
macro, mentre si definisce procedura ci che viene scritto completamente a
mano, senza lausilio del registratore.
In realt il codice che viene prodotto con il VBA di Excel spesso il
risultato combinato delluso del registratore e di scrittura diretta del codice:
pertanto, distinguere i due termini risulterebbe alquanto pleonastico,
conseguentemente in questo corso le due definizioni saranno considerate
sinonimi.
Allarme virus
Sappiamo tutti che la nostra cartella di lavoro, avendo utilizzato il
registratore, in fase di apertura visualizzer una finestra segnalante la
presenza di macro, potenziali veicolatici di virus. Nessun allarmismo in
questo caso, clicchiamo pure su Attiva macro, ma attenzione a non
abbassare la guardia con file di altra provenienza.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

22

Lezione III - Macro di navigazione


In questa terza lezione continueremo ad usare il Registratore generando
delle macro che, per quanto semplici, si riveleranno anche molto utili.
Diciamo che alla fine di questa lezione , se dotati di un buon spirito
dinventiva potremo costruire un primo rudimentale sistema informativo.
Navigare tra fogli
Spostarsi fra i fogli di lavoro di una cartella, servendosi delle apposite
schede, non sempre agevole, soprattutto per gli utenti non molto avvezzi
alluso del pc. Inoltre in certi casi si preferisce disattivare la visualizzazione
delle schede, per poter cos creare una navigazione guidata tra i fogli.
Ma nel caso test prospettato, in che modo le macro possono aiutarci?
Innanzi tutto registriamo una macro che ci porti al Foglio2.
Attivare il Foglio1 poich per poter registrare
lo spostamento al Foglio2 chiaramente
indispensabile avviare la registrazione da una locazione diversa da
quella di destinazione.
Portarsi sul menu Strumenti\Macro e avviare il Registratore di
macro.
Denominare la macro Navigator e confermare cliccando su OK.
Attivare il Foglio2
registrazione.

interrompere

la

Verifichiamo il funzionamento di Navigator.


Portarsi nel Foglio1.
Dal menu Strumenti\Macro scegliere Macro.
Eseguire la macro denominata Navigator.
Verremo trasportati nel Foglio2.
Per, se nei nostri intendimenti vi era lobiettivo di rendere pi facile la
vita degli utenti, dovremo operare qualche ulteriore accorgimento.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

23

Scorciatoie da tastiera
Mettiamo nuovamente mano al registratore, avviandolo dal menu
Strumenti\Macro\Registra nuova macro.
Lasciamo invariato il nome della macro proposto da Excel e spostiamo il
nostro interesse alla casella di controllo Tasto di scelta rapida che presenta
preimpostato il tasto CTRL.
Se noi inserissimo nella casella di controllo la lettera M ad esempio, per
avviare la macro associata, basterebbe digitare la combinazione di tasti
CTRL+M. Il problema che sono molti i comandi associati alla
combinazione CTRL pi lettera dellalfabeto, quindi
pi prudente utilizzare la combinazione di tasti
CTRL+SHIFT+M o una qualche altra lettera. Per
operare una simile combinazione di tasti occorre
tener schiacciato il tasto SHIFT mentre viene
digitata la lettera da associare.
Non male! Peccato che le scorciatoie da tastiera siano un ottimo strumento
per utenti esperti, non certo per neofiti!

I pulsanti
Indubbiamente il sistema pi comodo e facile per far eseguire delle
operazioni a chiunque, quello di usare un pulsante.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Individuare loggetto Pulsante e
cliccarci sopra.
Spostare il puntatore del mouse in una zona libera del foglio ed
effettuare un clic.
Sar automaticamente generato un pulsante ed avviata la finestra di dialogo
Assegna macro, dalla quale bisogner selezionare il nome della macro di
nostro interesse, che in questo caso sar Navigator.
Confermare cliccando su OK.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

24

A questo punto, senza nullaltro fare, digitare il nuovo


nome per il pulsante che, per rendere chiara la sua
funzione sar Foglio 2.
Deselezionarlo eseguendo un clic a vuoto.
Posizionando il puntatore del mouse sulla nuova creazione lo vedremo
trasformarsi in una manina ad indicare la sua associazione ad una macro.
Ciccandoci sopra sarete proiettati nel Foglio2.

Raccolta di istruzioni per la gestione dei pulsanti


Per poter spostare, dimensionare o rinominare un
pulsante devono essere presenti le maniglie.
Nel caso gli sia associata una macro cliccandoci sopra questa sar
eseguita rendendo impossibile far comparire le maniglie. In tal caso
prima di cliccare sulloggetto, tenere premuto il tasto CTRL.
Non volendo associare una macro al pulsante allatto della creazione
occorrer cliccare su Annulla nella finestra di dialogo Assegna
macro.
Per associare una macro ad un pulsante cliccarci sopra con il tasto
destro del mouse e dal menu contestuale scegliere Assegna macro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

25

Ping Pong
Grazie al pulsante precedentemente creato possiamo attivare il Foglio2: ma
adesso vogliamo anche ritornare indietro, sempre utilizzando un pulsante.
Attivare il Foglio2.
Dal menu Strumenti\Macro scegliere Registra nuova macro.
Rinominare la macro Navigator2.
Portarsi nel Foglio1 ed interrompere la registrazione.
Finita la fase di registrazione ritornare nel Foglio2.
Dalla barra degli strumenti Moduli selezionare loggetto Pulsante e
cliccare in una zona vuota del foglio per generarlo.
Associargli la macro Navigator2.
Rinominare il pulsante Indietro e deselezionarlo cliccando a
vuoto.
A questo punto sarete in grado di passare dal Foglio1 al Foglio2 e viceversa
cliccando sui due pulsanti.
Per rendere pi evidente le potenzialit del
lavoro svolto in questa lezione, dal menu
Strumenti scegliete la voce Opzioni, attivate la
scheda Visualizza e quindi deselezionate
lopzione Schede.
Noterete che per muoversi fra i fogli della cartella sarete obbligati a servirvi
dei pulsanti, quindi ad una navigazione guidata.
Nota: Per spostarsi da un foglio di lavoro allaltro si possono anche utilizzare le
combinazioni di tasti: CTRL+Pag , per passare al foglio successivo, o
CTRL+Pag per tornare al foglio precedente.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

26

Lezione IV - Macro universali


E giunto il momento di conoscere pi approfonditamente la finestra di
dialogo Registra macro.
Cartella macro personale
Tutti gli elementi della finestra di dialogo Registra macro sono di
immediata comprensione. Tutti , escludendo la voce Memorizza macro in : ,
la quale ospita un piccolo elenco di possibilit fra le quali scegliere.

Questa cartella di lavoro


o Scelta di default.
o Le macro saranno contenute nella cartella di lavoro nella
quale sono state registrate.
o Le suddette macro saranno disponibili per le altre cartelle solo
se la cartella che le contiene aperta.
Cartella macro personale
o Le macro non saranno contenute nella cartella dalla quale
stata effettuata la registrazione.
o Le macro saranno sempre disponibili, indifferentemente dalla
cartella aperta.
o Nelleventualit la cartella sia esportata in un altro pc, le
macro (quelle registrate con la modalit Cartella macro
personale) non saranno disponibili.
Nuova cartella di lavoro
o Opzione di scarsa utilit.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

27

Personal.xls
Quando registriamo una macro in modalit Cartella macro personale ,
questa non viene memorizzata nella cartella in uso, bens in una cartella
nascosta che si chiama Personal.xls.
Nota : La cartella Personal.xls non esiste come file sino a quando non viene effettuata
una registrazione in modalit Cartella macro personale.
Ogni volta che Excel viene avviato il file Personal.xls, pur rimanendo
nascosto, viene aperto, mettendo le sue macro a disposizione delle altre
cartelle aperte.

E possibile visualizzare la cartella Personal.xls


scegliendo dal menu Finestra la voce Scopri, che
visualizza lomonima finestra di dialogo.

E comunque consigliabile nascondere Personal.xls


cliccando su Nascondi sempre dal menu Finestra.

Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro
quartiere generale Personal.xls.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

28

Ma dove sita la cartella Personal.xls ?


Non troppo complicato da esporre con Windows 95/98.
PERCORSO
C:\
Programmi\
Microsoft Office\
Office\
XLStart\
Personal.xls

DESCRIZIONE
O altra unit disco
O similare

Pi complesso con Windows 2000.


PERCORSO
C:\
Documents
and
settings\
Enrico Cannoni\
Dati applicazioni\
Microsoft\
Excel\
XLStart\
Personal.xls

DESCRIZIONE
O altra unit disco

Il nome dellutente

I files ospitati allinterno della directori XLStart vengono eseguiti


automaticamente allavvio di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

29

Lezione V Barre degli strumenti


In questa lezione vedremo come sfruttare al meglio gli strumenti di
personalizzazione delle barre degli strumenti offerti da Excel.
Il nostro compito sar quello di creare una piccola barra degli strumenti,
disponibile da tutte le cartelle del nostro computer, dalla quale richiamare le
barre di uso pi frequente.
Macro per visualizzare le barre
Selezionare il menu Visualizza\Barre degli strumenti e deselezionare
le barre Standard e Formattazione.
Dal menu Strumenti\Macro lanciare Registra nuova macro.
Denominare la macro Standard e memorizzarla in Cartella macro
personale.
Confermare lavvio della registrazione cliccando su OK.

Dal menu Visualizza\Barre degli strumenti attivare la barra Standard.


Interrompere la registrazione.
Siccome caldamente consigliato verificare sempre il funzionamento della
macro registrata, disattivare nuovamente la barra degli strumenti Standard e
richiamare la finestra di dialogo Macro dal menu Strumenti\Macro.

Nota: E interessante osservare che la macro Standard a differenza delle altre


preceduta da Personal.xls! , il file ove ospitata.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

30

Selezionare Standard e cliccare sul pulsante Esegui.

La barra degli strumenti Standard sar immediatamente ripristinata.

Nota: Nelleventualit che la macro Standard non fosse disp onibile nellelenco della
finestra di dialogo Macro, prescindendo da un vostro errore, controllate che la
casella Macro in: sia impostata su Tutte le cartelle di lavoro aperte.

Seguendo i punti da 1 a 6, precedentemente illustrati, si proceda a registrare


le macro Formattazione, Disegno e Moduli, attivanti le omonime barre
degli strumenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

31

Una nuova barra degli strumenti


Creare linvolucro della nuova barra degli strumenti unoperazione molto
semplice.
Fare clic su Personalizza dal menu Visualizza\Barre degli strumenti.
Nella finestra di dialogo Personalizza attivare la scheda Barre degli
strumenti.
Cliccare sul pulsante Nuova .

Apparir una nuova barra degli strumenti, priva di ogni pulsante


che, salvo diversa scelta, si chiamer Personalizzata1.
Nella finestra di dialogo Personalizza scegliere la scheda Comandi
per aggiungere dei pulsanti alla barra degli strumenti
Personalizzata1.
Nel riquadro di sinistra, Categorie scegliere Macro.

Dal riquadro di destra, Comandi,


trascinate Pulsante personalizzato, la
faccina che ride, allinterno della barra
degli strumenti in costruzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

32

Cliccare con il tasto destro del


mouse sul pulsante e dal menu
contestuale che apparir,
scegliere Assegna macro.

Dalla finestra di dialogo Macro scegliere la macro Standard e


confermare cliccando su OK.
Chiudere la finestra di dialogo Personalizza.
Verificare il funzionamento del tutto.

Rifinire i pulsanti
Il tutto funziona bene, lunico neo rappresentato
dalletichetta autoesplicativa che, compare quando si
posiziona il puntatore del mouse sul pulsante, poich
la dicitura Pulsante personalizzato eccessivamente
generica..
Dopo aver aperto la finestra di dialogo
Personalizza, cliccare con il tasto destro
del mouse sul pulsante e nel conseguente
menu contestuale portarsi sulla voce
Nome e rinominare il predefinito Pulsante
personalizzato in Barra Standard.
Adesso possiamo inserire nella nostra barra degli strumenti un secondo
pulsante. Seguiamo le istruzioni precedentemente illustrate, con lunica
differenza di associare la macro denominata Formattazione, che permette
la visualizzazione dellomonima barra degli strumenti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

33

Per rendere questo secondo pulsante distinguibile dal primo, clicchiamoci


sopra con il tasto destro del mouse e dal menu contestuale che apparir,
posizionarsi su Cambia icona pulsante per disporre di una discreta raccolta
di icone per pulsanti.

Ripetere le operazioni descritte precedentemente anche per le macro


Disegno e Moduli.
A questo punto potrete verificare che la nuova barra degli strumenti
disponibile per qualsiasi cartella di lavoro del vostro computer, o profilo per
gli utilizzatori di NT.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

34

Lezione VI Moduli, la terra di nessuno


Generalmente si ritiene che la creazione di interfacce grafiche con caselle
combinate, caselle di comando e altri controlli visivi siano unattivit
esclusiva degli sviluppatori.
Con Excel possibile disporre di controlli grafici senza conoscere una sola
parola di programmazione. Tale possibilit ci data dagli strumenti
disponibili sulla barra degli strumenti Moduli, gi sperimentata nella
seconda lezione, che ci permette di inserire i suoi controlli direttamente su
un foglio di lavoro.
Possiamo dire di avventurarci in un territorio inesplorato sia dagli utenti di
Excel che dai programmatori, insomma in una terra di nessuno.
Intervallo dati denominato
Inizieremo il nostro studio sui controlli della barra degli strumenti Moduli,
prendendo in esame la Casella Combinata.
Nota: Nelleventualit non fosse chiaro di quale oggetto stiamo parlando, pensate ai
vari menu a tendina usati per cambiare il tipo di font e le dimensioni dei
caratteri.
Per poter vedere una Casella combinata in funzione occorre disporre di un
intervallo di dati denominato.
Partendo dalla cella A2 di un foglio intonso, si digitino i nomi della
citt visibili nellimmagine sottostante.
Selezionare lintervallo
di dati A2:A8.
Scegliere Crea dal menu
Inserisci\Nome.
Apparir la finestra di
dialogo Crea nomi e
dopo aver controllato
che sia selezionata la
sola
opzione
Riga
superiore,
confermare
cliccando su OK.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

35

Verifichiamo leffetto dellintervallo denominato test creato.

Fare clic sul pulsante della Casella del nome e


selezionare il nome Citt dallintervallo
dellelenco a discesa.
Leffetto che si otterr sar la selezione di tut ti i
nomi di citt sottostanti letichetta Citt, che
sarebbe il nome dellintervallo dati denominato.

Nota: In realt la Casella del nome non altro che una Casella combinata, quindi
lesatta dicitura sarebbe: cliccare sulla casella combinata Casella del nome.

Casella combinata
Passiamo alla vera e propria creazione della Casella combinata.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Sfruttando
le
propriet
di
autoesplicazione dei pulsanti, cercare
il controllo Casella combinata e
cliccarci sopra.
Posizionarsi sulla cella C4 e modellare un
riquadro grande allincirca come due celle.
Fare clic con il tasto destro sulla Casella combinata or ora creata e
dal menu contestuale scegliere la voce Formato controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

36

Apparir la finestra di dialogo Formato controllo ove dovremo


selezionare la scheda Controllo.
Nella casella Intervallo di input: digitare Citt, nella casella
Collegamento cella: digitare C1 e cliccare su OK.

Deselezionare loggetto cliccando a vuoto.


Cliccando sul pulsantino della Casella combinata vedremo comparire la
lista delle citt e cliccando su una di esse, ad esempio Milano, nella cella
C2 comparir il numero 2. Provando a fare clic su Firenze in C1 sar
inserito il 4.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

37

Cerchiamo di capire come siamo riusciti ad ottenere un simile risultato.


Digitando Citt nella casella Intervallo di input della finestra di dialogo
Formato controllo, abbiamo detto alla Casella combinata:
Guarda casella che tu devi contenere lelenco di nomi corrispondente
allintervallo di dati Citt, cio Torino, Milano, Venezia ecc. .Poi, la citt
che sceglier dovrai indicarla nella cella C1, la cella appunto digitata in
Collegamento cella.
Ma che cosa che quel numero che compare in C1? Semplice, il numero
di posizione nellelenco dellelemento scelto. Milano il secondo, quindi
corrisponde al numero 2.
Casella di controllo
La Casella di controllo, altro oggetto molto diffuso, serve ad indicare se
vogliamo o non volgiamo fare una certa cosa, se vero o non vero o
meglio VERO o FALSO.
Dalla barra degli strumenti Moduli
cliccare sulloggetto Casella di
controllo.
Fare clic in corrispondenza della cella C9, sar automaticamente
generata una Casella di controllo.

Cliccare con il tasto destro


sulla Casella di controllo per
far
apparire
il
menu
contestuale,
dal
quale
selezionare
Formato
controllo.

Apparir la finestra di dialogo Formato controllo ove dovremo


selezionare la scheda Controllo.
Nella casella Collegamento cella digitare B9.
Deselezionare loggetto cliccando a vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

38

Cliccando sulla Casella di controllo vi comparir un


segno di spunta e nella cella B9, quella indicata in
Collegamento cella, VERO. Cliccando nuovamente
sulla Casella di controllo il segno di spunta sar tolto
e in B9 comparir FALSO.

Casella di selezione
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
selezione.
Fare clic in una zona vuota del foglio per generare
automaticamente una Casella di selezione.
Fare clic con il tasto destro sulla Casella di selezione per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 10
o Valore massimo 100
o Avanzamento 5
o Collegamento cella H1
Cliccare su OK.

Deselezionare il controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

39

Adesso cliccando sulla sezione superiore della Casella di selezione vedrete


il valore in H1 aumentare di 5 in 5 sino ad un massimo di 100.
Cliccando sulla parte inferiore diminuir di 5 in 5 sino ad un minimo di 10.
Probabilmente, dopo un primo momento di soddisfazione, vi sorger un
dubbio. Ma a che servono questi controlli?
Portate pazienza, nella prossima lezione realizzeremo una interessante
applicazione che ricorrer agli oggetti test studiati.

Nota: Nei controlli ove si imposta un valore massimo non possibile superare 30.000.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

40

Lezione VII Un modello valutario


Questa lezione potrebbe risultare particolarmente impegnativa, soprattutto
per chi non fosse dotato di una adeguata conoscenza di Excel. Ma qu
cogliamo loccasione per ribadire che, soltanto chi gi conosce bene il
foglio elettronico potr trarre pieno giovamento da questo corso di VBA.
Excel dotato di una funzione, Euroconvert, in grado di convertire il
valore delle valute Europee in euro . Ma se per un utilizzatore di Excel di
medie capacit, ricorrere ad una funzione non rappresenta certo un
problema, ben diversa la situazione per quegli utenti sprovveduti di
conoscenze sul foglio elettronico.
Il nostro compito sar quello di creare un programma di conversione in euro
dallinterfaccia amichevole.

Euroconvert
Diamo una rapida occhiata alla sintassi delle funzione Euroconvert.
=Euroconvert(Numero ; Origine; Destinazione)
Numero
Origine
Destinazione

Importo da convertire.
Il codice ISO della moneta di origine.
Il codice ISO della moneta di destinazione.

Nellesempio sottostante vediamo come convertire 1000 lire in euro.


=Euroconvert(1000;itl;eur)

Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione
Euroconvert.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

41

Predisporre la casella combinata


Lutilizzo di una Casella combinata prevede un intervallo dati denominato.
Partendo dalla cella J2 di un foglio vuoto, digitare i dati sottostanti.
Paese
Francia
Italia
Paesi Bassi
Germania
Spagna

Moneta
Franco
Lira
Fiorino
Marco
Peseta

CodiceISO
frf
itl
nlg
dem
esp

Selezioniamo lintervallo di dati


K2:L7.
Scegliere Crea
dal
menu
Inserisci\Nome.
Nella finestra di dialogo Crea
nomi lasciare selezionata solo
Riga superiore e confermare
cliccando su OK .

Nota: In realt abbiamo creato due intervalli


denominati, Moneta e CodiceISO.
Passiamo alla creazione di una Casella combinata.
Dal menu Visualizza\Barre degli strumenti scegliere Moduli.
Sfruttando le propriet di autoesplicazione dei pulsanti cercare nella
barra Moduli il controllo Casella combinata e cliccarci sopra.
Posizionarsi sulla cella E5 e modellare un riquadro grande allincirca
come due celle.
Fare clic con il tasto destro sulla Casella combinata or ora creata e
dal menu contestuale scegliere la voce Formato controllo.
Apparir la finestra di dialogo Formato controllo ove dovremo
selezionare la scheda Controllo.
Nella casella Intervallo di input: digitare il nome dellintervallo
denominato Moneta, nella casella Collegamento cella: digitare G5 e
cliccare su OK.
Deselezionare loggetto cliccando a vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

42

La funzione Indice
Inseriamo nella colonna B i dati come raffigurati nellimmagine sottostante,
la quale ci lascia intuire che la moneta presente nella cella C4, Peseta,
quella scelta con la Casella combinata.
Sempre nellimmagine sottostante la Barra della formula, indicante il
contenuto della cella C4, ci mostra la funzione Indice.

Esaminiamo brevemente anche la sintassi della funzione INDICE.


=INDICE(Intervallo dati; Riga)

Intervallo dati

Riga

=INDICE(Moneta;G5)

Lintervallo denominato contenente i dati ove


vogliamo effettuare la ricerca, nel nostro caso
Moneta.
La riga dellintervallo dati in corrispondenza
della quale si trova il valore desiderato. Nel
nostro esempio la Peseta il quinto elemento,
cio si trova alla quinta riga dellintervallo
denominato Moneta.

Nota: La sintassi della funzione Indice ben pi articolata di quella rappresentata nei
paragrafi precedenti, ma essendo questo un corso di VBA non ci dilungheremo
oltre su di essa.

Quindi ogni qualvolta che scegliamo una valuta con la Casella combinata,
grazie alla funzione Indice, questa viene visualizzata anche nella cella C4.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

43

Calcolare lEuro

La cella C4 individua la valuta che vogliamo convertire, mentre la cella C6


adibita allinserimento della quantit della valuta scelta.
Nel nostro esempio, illustrato nellimmagine a seguire, vogliamo convertire
1.000 Lire: il risultato dovr apparire nella cella C9. Per ottenere tale
risultato dobbiamo inserire in C9 una funzione piuttosto complessa.
=EUROCONVERT(C6;INDICE(CodiceIso;G5);eur)

Il secondo argomento della funzione EUROCONVERT, valuta di origine,


invece di essere digitato direttamente viene passato dalla funzione INDICE,
che a sua volta si avvale dellintervallo denominato CodiceIso.

A questo punto, variando la quantit ( C6) o la moneta con la Casella


combinata, automaticamente sar calcolato limporto corrispondente in
Euro.

Vincolare la quantit
Volendo impostare una quantit ( C6) che non possa eccedere un
determinato valore, o pi semplicemente togliere allutente ogni onere di
digitazione, possiamo ricorrere ad una Casella di selezione.
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
selezione.
Fare clic in una zona vuota del foglio per generare
automaticamente una Casella di selezione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

44

Fare clic con il tasto destro sulla Casella di selezione per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 1
o Valore massimo 20000
o Avanzamento 1
o Collegamento cella G8
Cliccare su OK.
Quindi nella cella C6, in corrispondenza della quantit, digitare la seguente
formula: =1000*G8
ove G8 la cella collegata alla Casella di selezione.
Noterete che ad ogni singolo clic sulla Casella di selezione si aggiorner
automaticamente la quantit di valuta da convertire e a cascata gli euro
corrispondenti.
Gestire gli eccessi
Il nostro modello valutario ha un problema!
Il valore minimo 1000, impostabile dallazione combinata della Casella di
selezione e della formula in C6, sicuramente adeguato alle lire, ma
troppo elevato per i franchi.
Si potrebbe rimediare al problema abbastanza agevolmente con una
funzione SE nidificata, ma noi che vogliamo vedere la Casella di controllo
in azione seguiremo unaltra via.
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di
controllo.
Fare clic in corrispondenza della cella E11.
Sar automaticamente generata una Casella di controllo.
Fare clic con il tasto destro sulla Casella di controllo per far apparire
li menu contestuale, dal quale selezionare Formato controllo.
Apparir la fine stra di dialogo Formato controllo ove dovremo
selezionare la scheda Controllo.
Nella casella Collegamento cella digitare G11.
Selezionare il nome di default per
sovrascriverlo digitando Dividi per 100.
Deselezionare loggetto cliccando a
vuoto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

45

Il nostro intendimento quello di poter dividere per 100 la quantit ( C6) di


valuta da convertire quando selezioniamo la Casella di controllo e
conseguentemente nella cella G11 comparir VERO. Ad esempio, se la
quantit in C6 di 92000 risultasse eccessiva metteremo il segno di spunta
alla Casella di controllo ed automaticamente il valore in C6 si
trasformerebbe in 920.
Per ottenere il risultato di cui sopra, occorre modificare la formula in C6,
integrandola cos : =SE(G11=FALSO;1000*G8;10*G8) . Traducibile
in: se la Casella di controllo non selezionato e quindi restituisce il valore
FALSO in G11, venga eseguita la moltiplicazione normale per 1000,
altrimenti moltiplicare solo per 10 (1000/100=10).

Considerazioni
Luso dei Pulsanti di opzione ci avrebbe permesso di creare un modello
valutario pi elegante e preciso, ma in questa fase del nostro corso
avremmo introdotto delle difficolt, forse, eccessive.
Poi, per completezza di informazione, vi invito a fare una visitina
al menu Strumenti/Conversione
euro per prendere visione di uno
strumento di conversione niente
male, che Excel ci mette a disposizione.
Ma allora vi domanderete, perch
tutto sto esercizio? Semplice!
Per pure finalit didattiche!

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

46

PARTE 2
Primi passi nel VBA
Inizieremo adesso ad addentrarci nel VBA vero e proprio. Prenderemo
confidenza con lambiente di programmazione e vedremo il codice scritto
con le macro che abbiamo registrato.
Scriveremo le prime semplici procedure e piano piano conosceremo le
principali strutture di controllo.
Insomma vedremo che la programmazione, se accompagnata dalla logica e
un po di inventiva, non poi cos difficile, anzi ci troveremo ben presto in
grado di raggiungere risultati di tutto rispetto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

47

Lezione VIII LEditor di VBA


I novizi della programmazione troveranno non poche difficolt nel primo
impatto con lEditor di Visual Basic; tenete conto che anche i vecchi
utilizzatori del VBA prima maniera, cio quello risalente alle versioni 5 e 7
di Excel, trovarono ostico raccapezzarsi nel nuovo ambiente di
programmazione.
Per questa ragione illustreremo gli elementi essenziali dellEditor da questa
prima lezione dedicata ai rudimenti della programmazione.
Aprire lEditor di VB
Nellimmagine sottostante si pu ammirare lEditor di VB

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

48

richiamabile dal menu Strumenti di Excel, posizionandosi sulla voce


Macro per poi cliccare Visual Basic Editor., oppure con la combinazione di
tasti ALT+F11.

Nota: LEditor illustrato nellimmagine della pagina precedente corrisponde ad una


nuova cartella di lavoro appena aperta. Gli elementi di un Editor associato ad
una cartella contenente delle macro si presenterebbero un po diversamente.

Le finestre dellEditor di VB
LEditor di VB composto da una finestra principale, detta genitrice, che
contiene tre sottofinestre definite figlie.
Le finestre figlie sono: Finestra Progetto, Finestra delle Propriet e
Finestra del Codice.
Tutte e tre le sottofinestre possono essere chiuse, spostate e ridimensionate.
La finestra Progetto
La Finestra Progetto per default posizionata in alto a sinistra e visualizza
tutti i fogli di lavoro, i moduli e se presenti i forms della cartella o cartelle
di lavoro aperte. I suoi contenuti sono rappresentati da un diagramma ad
albero con tutte le cartelle aperte e collassabili
con un clic sul segno meno (-).
Nellesempio raffigurato a lato possiamo
vedere
che
stiamo
trattando
del
VBAProject(Cartel1), cio di una cartella
appena aperta che ha il consueto nome
Cartel1.xls. Scendendo nella scala gerarchica
troviamo la cartella Microsoft Excel Oggetti
contenente i tre fogli di lavoro, pi un elemento
particolare denominato ThisWorkbook, del
quale parleremo nelle ultime lezioni.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

49

Nelleventualit la finestra Progetto non fosse presente, la si pu richiamare


dal menu Visualizza dellEditor VB, cliccando sulla voce Gestione progetti.

La finestra delle Propriet

La finestra delle Propriet mostra le propriet


delloggetto
selezionato.
Nellimmagine
desempio stiamo visualizzando le propriet del
Foglio1. Provando a cliccare sul Foglio2 nella
finestra del Progetto vedremo la finestra delle
Propriet aggiornarsi al nuovo elemento
selezionato.

Nelleventualit la finestra delle Propriet


non fosse presente, la si pu richiamare
dal menu Visualizza dellEditor VB,
cliccando sulla voce Finestra Propriet.

La finestra del Codice


La terza sottofinestra, quella del Codice, nellimmagine raffigurante
lEditor non presente, al suo posto vediamo uno spazio vuoto grigio. Ci
dovuto al fatto che in una nuova cartella di lavoro non ancora presente il
codice, quindi a meno di richiamarla esplicitamente, la finestra del Codice
non visibile.
Per richiamare la finestra del Codice, vi sono vari sistemi, tra i quali fare
clic sul menu Inserisci/Modulo.
Ma se andiamo ad aprire la cartella di lavoro Comuni, ove abbiamo
eseguito le prime registrazioni, scopriremo una situazione sensibilmente
diversa.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

50

La finestra del Progetto presenta degli elementi


aggiuntivi, tipo la cartella Moduli, allinterno
della quale troviamo Modulo1 e Modulo2.

Ancora pi evidente la presenza della finestra del Codice con del codice
allinterno.

Nota: LEditor di Visual Basic sicuramente ben pi complesso di quello che pu


apparire dalla nostra breve chiacchierata, ma senza appesantimenti teorici
che, rischierebbero di scoraggiarci, gli elementi appresi in questa lezione sono
sufficienti ad orientarci nel suo interno.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

51

Lezione IX Il codice delle macro


Finalmente giunto il momento di esplorare il codice prodotto dal nostro
registratore di macro.
Regole generali
Apriamo la cartella di lavoro contenente gli esempi delle prime lezioni e dal
menu Strumenti\Macro selezioniamo la voce Visual Basic Editor.
La finestra Progetto dovrebbe gi mostrare selezionato il Modulo1 e la
finestra Codice il corrispondente listato. Se cos non fosse nella finestra
Progetto, eseguire un doppio clic sulla voce Modulo1.
Andiamo cos ad esaminare la macro registrata nella prima lezione.
Le righe che iniziano con un apice (), colorate di verde sono testo di
commento. E possibile aggiungere, modificare, eliminare commenti senza
influenzare lesecuzione della macro. Ricordiamoci per che i commenti
rivestono una grande ruolo nella documentazione delle nostre procedure.
La macro vera e propria inizia con Sub, Procedura in Italiano. Quindi ogni
macro deve iniziare con la parola chiave Sub, al quale segue un nome di
fantasia, che nel nostro caso Macro1. Infine aprire e chiudere una coppia
di parentesi tonde senza spazi allinterno. Riepilogando una macro deve
sempre iniziare con la seguente sintassi:
Sub NomeFantasia( )

Sub un elemento fondamentale anche per la chiusura della macro.


Ogni macro deve terminare con End Sub.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

52

Analizzare il codice di Macro1


La macro registrava le azioni di selezionare lintervallo di celle A3:F3, di
grassettarlo e infine di deselezionare attivando la cella A2.
Range("A3:F3").Select
Selection.Font.Bold = True
Range("A2").Select

Seleziono le celle da A3 a F3
La selezione deve essere grassettata? Vero.
Seleziono la cella A2 per deselezionare.

Per rendere pi comprensibile la trasposizione del codice, in linguaggio


corrente si un po sacrificata la struttura sintattica. In VBA, loggetto
precede lazione.
Range("A2") = oggetto
Select = azione (verbo)

E come se nel parlare di tutti i giorni invece di dire Bevo il caff,


dicessimo Il caff bevo.
Qual il vantaggio di una simile bizzarria linguistica? Una volta
selezionato un oggetto possiamo compiere su di esso innumerevoli azioni
senza dover riselezionare continuamente lo stesso oggetto.
Per restare nellesempio del caff come se dicessimo: Il caff bevo,
acquisto, sorseggio, rovescio.
Il punto (.) funge da separatore fra loggetto e lazione

Nota: Ad essere precisi loggetto, oltre a precedere lazione, pu anche precedere la


specificazione di una sua Propriet, ossia, continuando la metafora linguistica,
laggettivo. Sempre per mettere i puntini sulle i, lazione in VBA viene
chiamata Metodo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

53

Analizzare il codice della macro RiferimentiRelativi


La seconda macro, registrata durante la prima lezione, introduceva la logica
dei riferimenti relativi.
Anche questa macro, registrava le azioni di selezionare lintervallo di celle
A3:F3, di grassettarlo e infine di deselezionare attivando la cella A2.
Sub Riferimentirelativi()
'Riferimentirelativi Macro
ActiveCell.Offset(2, 0).Range("A1:F1").Select
Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).Range("A1").Select
End Sub

Ma in questo caso passava in secondo piano lesatta ubicazione delle celle,


bens assumevano importanza gli spostamenti, quindi era anche importante
sapere qual era la cella attiva nel momento in cui veniva attivata la
registrazione. La cella attiva era A1.

ActiveCell.Offset(2, 0).

("A1:F1").Select

Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).

Range("A1").Select

Dalla cella attiva, qualunque essa sia,


scende di 2 celle
quindi seleziona verso destra 6 celle.
E importante notare che A1 e F1 non
rappresentano riferimenti assoluti, anche
perch in realt s ono state selezionate le
celle A3:F3.
La selezione deve essere grassettata? S .
Dalla cella attiva, qualunque essa sia, sale di
1 cella
quindi seleziona la cella per
deselezionare.
Anche qui importante notare che non A1
la cella selezionata.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

54

Modificare il contenuto di una macro


Passiamo ad esaminare .la macro Navigator, presente nel Modulo2:
Sub Navigator()
Sheets("Foglio2").Select
End Sub

Con listruzione
Sheets(Foglio2).Select

come se dicessimo Il foglio chiamato Foglio2 seleziona.


E intuitivo che volendo cambiare il foglio da attivare, baster riscrivere il
nome del foglio posto fra le parentesi tonde e le virgolette: ad esempio
reindirizziamo la navigazione di Navigator al Foglio3.
Sheets(Foglio3).Select

Facile vero?!
Le nostre procedure di navigazione hanno un difetto per! Ci portano nel
foglio desiderato, ma non si preoccupano di controllare se il foglio visibile
dallinizio: certamente sgradevole transitare in un foglio e visualizzare la
fine di una tabella.
Posizioniamoci dopo Select della macro Navigator e diamo un
INVIO per creare una riga vuota.
Spostiamo il cursore sulla riga vuota test creata e digitiamo le
seguenti istruzioni:
Range("A1").Select

Laggiunta della piccola porzione di codice sopra illustrata, far s che la


macro dopo essersi spostata sul foglio desiderato, attivi la cella A1,
garantendo cos la visualizzazione del foglio dallinizio.
Nel paragrafo sottostante possiamo vedere la nuova versione di Navigator:
Sub Navigator()
Sheets("Foglio3").Select
Range("A1").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

55

I nomi delle procedure


Nellassegnazione di nomi alle macro, occorre seguire alcune regole di
denominazione:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.
Devono essere univoci, almeno allinterno della procedura (poich a
volte non basta meglio prudentemente allinterno della cartella), o
pi correttamente nellarea di validit.
Non possono coincidere con il nome di parole chiave del VBA.
Non devono essere composti da pi parole.

Identare il codice
Si pu notare, nei primi esempi di macro esaminati, che le righe non sono
sempre allineate al margine sinistro, ma risultano spostate verso destra in
vario modo. Questo stile di scrivere il codice detto indentazione.
Non ci sono regole fisse che stabiliscano di quanto bisogna far rientrare una
riga, od un gruppo di righe; lidentazione solo un modo per rendere
visivamente pi chiara la struttura del programma.
Generalmente ci si serve dellidentazione per allineare ad esempio sulla
stessa colonna blocchi di istruzioni dello stesso livello o comunque correlati
fra loro.
Nelluso dellidentazione entra comunque il gusto personale dellautore del
programma, giacch introduce elementi di chiarezza visiva, del tutto
estranei al sistema di esecuzione del programma.
Le maiuscole
Tutte le parole chiave del VBA hanno liniziale maiuscola: Sub, End,
Range, Select ecc. . Per la digitazione di esse deve avvenire tutta in
minuscolo, poich automaticamente le iniziali di trasformeranno in
maiuscole, sempre che siano state scritte correttamente.
Il digitare le iniziali delle parole chiave in minuscolo di fatto un sistema di
controllo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

56

Lezione X Operare delle scelte con IF


In questa lezione impareremo a prendere delle decisioni, a scrivere delle
routine che verificano determinate condizioni ed eseguono
conseguentemente, istruzioni specifiche, in base al risultato della verifica.
Le istruzioni in VBA che controllano il flusso delle decisioni sono definite
strutture di controllo.
Mettendola un po sul mistico, potremmo dire che implementiamo le
capacit delle nostre macro a scegliere fra il vero ed il falso: fra il bene ed il
male.
Il file Comuni
Apriamo la cartella di lavoro Comuni e scegliamo lomonimo foglio,
contenente lelenco dei comuni della provincia di Torino. In particolar
modo, soffermiamoci sulla colonna F, contenente i valori relativi alla
popolazione.
Il nostro compito consister nel colorare di giallo le celle contenenti un
numero di abitanti superiore al valore di 9.999: il tutto naturalmente, con un
semplice clic.

Scomporre i problemi
Iniziamo per gradi: il primo compito quello di capire come si fa a
colorare di giallo una cella tramite il codice VBA. La soluzione molto
semplice! Registriamo una macro che formatta di giallo lo sfondo di una
cella.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

57

Prima di iniziare la registrazione ci accerteremo che larea di lavoro non


presenti degli impedimenti, che potrebbero compromettere la qualit del
codice che sar generato.
Notiamo che le barre degli strumenti, disposte su di ununica riga ci
occultano dei pulsanti, fra i quali proprio quello del Colore di riempimento.
Dal menu Visualizza\Barre degli strumenti scegliere Personalizza.
Comparir la finestra di dialogo Personalizza, dalla quale
sceglieremo la scheda Opzioni.
Mettere il segno di spunta su Mostra barre degli strumenti Standard
e Formattazione su due righe.
Cliccare su OK per confermare.

Registrare la colorazione di una cella


Posizioniamoci su di una cella da colorare.
Lanciare il registratore di macro dal menu Strumenti\Macro\Registra
nuova macro.
Digitare come nome della macro Colorare e cliccare su OK per
avviare la registrazione.
Dal pulsante Colore riempimento, posto sulla barra degli
strumenti Formattazione, scegliere il colore giallo.

Interrompere la registrazione cliccando


pulsante Interrompi registrazione.

sul

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

58

Esaminare il codice della macro Colorare


Nella precedente lezione abbiamo visto che per visualizzare il codice di una
macro, occorre richiamare lEditor di VB: risultato ottenibile anche dalla
finestra di dialogo Macro, richiamabile dal menu Strumenti\Macro\Macro.
Una volta visualizzata la finestra Macro, selezionare la macro Colorare e
cliccare sul pulsante Modifica, per essere immediatamente proiettati
nellambiente di programmazione

ove possibile ammirare la sintassi generata per colorare una cella di


giallo.
Questa volta il codice si presenta meno intuitivo degli esempi precedenti,
complicato dalla presenza dellenunciato Whit.
Sub Colorare()
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

59

Lenunciato Whit
Lenunciato Whit, traducibile in con, serve a rendere pi veloce
lesecuzione della macro, ma non indispensabile. Rivediamo la procedura
Colorare senza Whit.
Sub Colorare()
Selection.Interior.ColorIndex = 6
Selection.Interior.Pattern = xlSolid
End Sub

Le due righe di codice cos trasformate si possono leggere:


Selezione interna colora di giallo
Selezione interna trama solida
Mentre il codice originale cos traducibile:
Con selezione interna
colora di giallo
trama solida
Fine con
Appare evidente che in presenza di molti attributi il codice racchiuso
dallenunciato Whit diventa pi conciso, pi veloce.

Eliminare codice superfluo


In molti casi il Registratore di macro registra tutte le possibili impostazioni,
anche quando se ne modificano solo una o due. Eliminando le impostazioni
non necessarie la macro risulter semplificata e pi veloce.
Nella macro Colorare lunica propriet che vogliamo modificare il
colore, quindi la tipologia di trama eliminabile. Il risultato della suddetta
colorazione una macro estremamente leggera.
Sub Colorare()
Selection.Interior.ColorIndex = 6
End Sub

6 significa giallo

Notate il commento che ricorda che al numero 6 corrisponde il giallo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

60

Colorare e scendere
Dopo essere riusciti a far colorare di giallo una cella, unaltra azione che
possiamo far compiere alla nostra macro, senza eccessive difficolt quella
di scendere alla cella sottostante. Il pezzo di codice necessario a tale
necessit gi disponibile nella macro Navigator.
Ricordate? Il seguente codice scende di due celle
ActiveCell.Offset(2, 0).Range("A1").Select

quindi sostituendo il 2 con un 1, scenderemo di una sola cella per volta.


Ed ecco il risultato di questa ulteriore modifica alla procedura Colorare, che
formatta la cella di giallo e scende di una cella.
Sub Colorare()
Selection.Interior.ColorIndex = 6
ActiveCell.Offset(2, 0).Range("A1").Select
End Sub

6 significa giallo
Scende di una cella

SeAllora
E giunto il momento di dare il lume della ragione alla nostra macro!
Dovr colorare sol tanto quando il valore della cella supera 9.999 .
Sub Colorare()
If ActiveCell > 9999 Then
Se il contenuto della cella superiore a 9999
Selection.Interior.ColorIndex = 6
6 significa giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Scende di una cella
End Sub

Il codice della struttura di controllo If cos traducibile.


Se la cella attiva contiene un valore maggiore di 9999 allora
Colorala di giallo
Fine se
Esaminiamo anche la sintassi di If, che si presenta molto semplice.
Alla parola chiave If segue una condizione, a sua volta seguita dalla parola
chiave Then. Nella riga successiva troviamo una o pi istruzioni da
eseguire se una determinata condizione risulta vera.
Scendendo nuovamente, la fine della struttura di controllo data da End If.
If condizione Then
Istruzioni
End If

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

61

Il controllo If deve essere sempre chiuso da End If, ad eccezione di macro


con struttura che si sviluppa su di una sola riga.
If condizione Then istruzioni

Pur dando per acquisita la conoscenza degli operatori di confronto, se ne


propone una rapida carrellata.

OPERATORI di CONFRONTO
MAGGIORE
MINORE
UGUALE

>
<
=

DIVERSO
MAGGIORE O UGUALE
MINORE O UGUALE

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

<>
>=
<=

62

Lezione XI Ripetere le azioni


Posizioniamo la cella attiva in F5 e proviamo la macro Colorare. Sar
testato il valore della cella, eventualmente formattato, in ogni caso la cella
attiva scender nella cella sottostante. Volendo ripetere pi volte
lesecuzione della macro, le operazioni di rovistare fra il menu
Strumenti\Macro\Macro, individuare la procedura e cliccare su OK, si
dimostreranno veramente noiose.

Pulsanti alternativi
Si pu rimediare al problema di cui sopra, associando la macro Colorare ad
un pulsante. Per i pulsanti, diciamocelo, sono proprio bruttini.
Scegliamo una soluzione alternativa.
Dal menu Visualizza\Barre degli strumenti scegliere Disegno.
Cliccare su Casella di testo.
Modellare la Casella di testo in prossimit
della cella G2.
Personalizzarla a piacere.
Cliccarci sopra con il pulsante destro del
mouse e dal menu contestuale che
apparir, scegliere la voce Assegna macro.
Assegnare la macro di nome Colorare e confermare cliccando su
OK.
Deselezionare loggetto cliccando sul foglio.
Adesso risulter molto pi comodo provare la macro Colorare.

Rinominare un modulo
Volendo visualizzare la macro Colorare, cliccare sul pulsante Modifica
della finestra di dialogo Macro. Tale macro si trova presumibilmente nel
Modulo3, in ogni caso accertarsene osservando la barra del titolo del
modulo, ove riportato il nome del Modulo.
Per rendere meno generico il nome del modulo, rinominiamolo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

63

Nella
finestra
delle
Propriet, di fianco a
(Name),
selezionare
Modulo3 e digitare il
testo
alternativo
ModColorare.

I cicli
Indubbiamente Colorare una macro simpatica, ma parliamoci chiaro, non
serve a niente. Gi nel nostro elenco di circa 300 records testare tutti i valori
sarebbe assai uggioso, figuriamoci se ci trovassimo innanzi un database di
cinquemila o seimila records!
Dobbiamo trovare il sistema, di far scorrere da Excel tutto lelenco
automaticamente e di fermarsi, quando questi finisce.
Il VBA, dopo If Then, ci mette a disposizione unaltra tipologia di
struttura di controllo: i cicli.
Le strutture a ciclo consentono di eseguire ripetutamente un blocco di
istruzioni di una macro.
Do WhileLoop
Listruzione Do WhileLoop verifica una condizione allinizio del ciclo e
se risulta vera (True) esegue le istruzioni, ripetendole fino a quando la
condizione risulta falsa (False)
Do While condizione
istruzioni
Loop

Modifichiamo la macro Colorare aggiungendovi la struttura di controllo


Do While Loop.

Nota: Il codice di una macro non prevede dei numeri davanti alle righe: la
numerazione delle linee presente nel listato successivo e in altri seguenti,
stata inclusa solo per facilitare il riconoscimento e il commento della sintassi
delle procedure desempio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

64
1: Sub Colorare()
2:
Do While ActiveCell <> ""
'esegue se vero che diverso da vuoto
3:
If ActiveCell > 9999 Then
4:
Selection.Interior.ColorIndex = 6
5:
End If
6:
ActiveCell.Offset(1, 0).Range("A1").Select
7:
Loop
8: End Sub

La procedura alla riga 2 inizia testando la cella attiva ed come se


recitasse:
esegui fino a quando vero che la cella attiva contiene un qualche valore
Se abbiamo avviato la macro con la cella attiva in F5, la cella chiaramente
(vero) diversa da vuota e quindi passa ad eseguire il blocco di istruzioni
successive.
Nota: Il simbolo virgolette/virgolette () senza spazi vuoti significa vuoto; quindi <>
significa diverso da vuoto.
Dalla riga 3 alla riga 5 esegue le istruzioni di controllo del numero degli
abitanti della citt e se superiori a 9999 colora la cella di giallo.
Le istruzioni della riga 6 scendono nella cella F6.
Arrivati alla riga 7 troviamo la parola chiave Loop e ripetiamo il ciclo
partendo dalla verifica del contenuto della cella attiva, che a questo punto
abbiamo visto essere F6.
Il ciclo sar ripetuto sino a quando arrivati a F320 Do While non trover pi
vera la condizione, poich tale cella vuota.

Do Until Loop
Sub Colorare()
Do Until ActiveCell = ""

'esegue se non vero che la cella


vuota

If ActiveCell > 9999 Then


Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

65

Do Until Loop verifica una condizione allinizio del ciclo, ed esegue il


blocco di istruzioni successive fino a quando la condizione risulta falsa, per
poi fermarsi quando la condizione diventa vera.
Entrambi i cicli funzionano perfettamente: forse Do While pi diffuso.
Almeno una volta
Do While e Do Until testano sin dallinizio del ciclo il
soddisfacimento della condizione e se tale non risultasse, non eseguirebbero
neanche una volta la serie di istruzioni comprese nel loro corpo.
Attivare una cella vuota e lanciare la macro Colorare: la procedura non
scender neanche di una cella!
Si dovesse presentare la necessit di eseguire linte ro ciclo di istruzioni,
almeno una volta, prima di verificare il soddisfacimento della condizione,
occorrer eseguire i seguenti ritocchi al codice:
Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop While ActiveCell <> ""
'esegue se vero che diverso
da vuoto
End Sub

Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop Until ActiveCell = ""
' esegue se non vero che la cella
vuota
End Sub

Nota: Le strutture cicliche a volte vanno in errore ed entrano in un loop infinito. Per
uscire da una simile situazione di stallo, premere la combinazione di tasti
CTRL+INTERR .

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

66

Lezione XII - Le variabili


Questa lezione dedicata a uno degli elementi fondamentali nello studio di
qualsiasi linguaggio di programmazione: le variabili.
Definizione di variabile
Le variabili sono aree predefinite della memoria del computer, in cui
vengono archiviati i dati mentre le macro sono in esecuzione. Le variabili
risultano utili per tenere traccia di conteggi che cambiano continuamente,
per conservare linput dellutente o di altra origine e per larchiviazione di
valori destinati ad essere modificati da macro eseguite successivamente.
Nota: in un certo senso possiamo paragonare le variabili alle celle di Excel. Le celle
sono identificabili da un riferimento, tipo A1, o ancora meglio da un nome
(cella denominata), Pippo ad esempio: nello stesso modo noi identifichiamo le
variabili attribuendogli un nome. Il contenuto della cella\variabile pu variare,
ma non il suo nome. Quindi ogni volta che si vuole fare riferimento al valore
contenuto in una determinata cella\variabile baster usare il suo nome.

Non dichiarare le variabili


In VBA, quindi in VB, a differenza di linguaggi di programmazione nobili
come il C ed il Pascal, si pu decidere di non dichiarare le variabili: in
realt le controindicazioni ad una simile ipotesi sono moltissime. In questo
corso non prenderemo in considerazione tale opportunit. Anzi adesso ci
preoccuperemo di eliminare la possibilit, che una evenienza cos scellerata,
come quella di non dichiarare le variabili, possa accadere anche solo
accidentalmente.
Dal menu Strumenti dellEditor di VBA scegliere Opzioni, portarsi
sulla scheda Editor e porre il flag (segno di spunta) sulla scelta
Dichiarazione di variabili obbligatoria.
Dichiarare le variabili
La dichiarazione delle variabili, detta anche dichiarazione esplicita, si
ottiene con la parola chiave Dim (Dimensionare), collocando la
dichiarazione allinizio della procedura o del modulo.
Sub NomeMacro()
Dim NomeVariabile

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

67

Denominazione di variabili
Nellassegnazione di nomi alle variabili, occorre seguire alcune regole di
denominazione. I nomi di variabili:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.
Devono essere univoci, almeno allinterno della procedura, o pi
correttamente nellarea di validit.
Non possono coincidere con il nome di parole chiave del VBA.
Non devono essere composti da pi parole.
Tipo di dati delle variabili
Quando si dichiara una variabile possibile assegnarle anche il tipo di dati
che dovr contenere. Se non si specifica nessun tipo di dati, come
nellesempio sopra esposto (Dim NomeVariabile), viene automaticamente
assegnato il tipo Variant. Il tipo Variant una sorta di minestrone in
grado di gestire qualsiasi tipo di dati. Ma se si desidera creare macro rapide,
e si sa che in una determinata variabile saranno sempre archiviate
informazioni dello stesso tipo di dati, consigliabile specificare il giusto
tipo di appartenenza.
Nome del Tipo
TIPO
Numerico
Integer
Numerico
Long

Dimensioni

Intervallo

2 byte

da 32.768 a 32.767

4 byte

da -2.147.483.648 a 2.147.483.6477
da -3,402823E38 a -1,401298E-45 per
valori negativi; da 1,401298E-45 a
3,402823E38 per valori positivi.
da -1.79769313486231E308 a 4,94065645841247E-324 per valori
negativi; da 4,94065645841247E-324 a
1,79769313486232E308 per valori
positivi.
da -922.337.203.685.477,5808 a
922.337.203.685.477,5807

Single

Numerico

4 byte

Double

Numerico

8 byte

Currency

Numerico

8 byte

String
Boolean
Date

Testo

1 byte per carattere

Logico

2 byte

True o False

Data

4 byte

dal'1 gen. 100 al 31 dic. 9999

Object

Oggetto

4 byte

Variant

Universale 16 b. + 1 b. x carat.

Serve ad accedere ad oggetti riconosciuti


dal VBA.
Pu contenere qualsiasi tipo di dato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

68

La notazione scientifica
La tabella riepilogante i tipi di dati, mostra alcuni numeri un po particolari,
la loro sequenza sembrerebbe interrotta dalla vocale E. Tale particolarit
conosciuta come notazione scientifica. La notazione scientifica viene
utilizzata in genere per rappresentare numeri molto grandi o molto piccoli
in un formato compatto.
1.12E-2
-0.012
2.4E10
24 000 000 000
5E9
5 000 000 000
33E-10
0.00000000033
4.3E1
43

Dichiarazione delle variabili e del tipo


Dim Pippo As String

Dimensioniamo la variabile di nome Pippo come tipo stringa: detta in altre


parole, la variabile Pippo potr contenere del testo.
Dim Pluto As Integer

In questo secondo caso abbiamo dichiarato la variabile Pluto di tipo


numerico Intero.
Dim Paperino, Archimede, Gastone As Variant

In presenza di pi variabili dello stesso tipo, possiamo dichiararle anche


sulla stessa linea.
Vediamo un piccolo esempio pratico sulluso di una variabile.
Sub Prova()
Dim Pippo As Integer
dichiaro una variabile di tipo numerico intero
Pippo = 9999
assegno alla variabile il valore 9999
If ActiveCell > Pippo Then
non uso pi il valore, bens la variabile
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Probabilmente avrete notato, dopo aver scritto la parola chiave As, la


comparsa di un menu a tendina, ospitante un lungo elenco di parole chiave.
Se a quel punto avete digitato la prima vocale, nel nostro esempio la i di

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

69

integer, lelenco si sar posizionato automaticamente in corrispondenza dei


termini inizianti con la i. Quindi, utilizzando il pulsante direzionale che
punta verso il basso, raggiungete integer e premete sul tasto SHIFT per
convalidare la scelta.

Le costanti
Le procedure spesso includono valori che non variano e che ricorrono pi
volte: in questo caso si utilizzano le costanti.
Una costante unarea predefinita della memoria, alla quale viene attribuito
un nome e che sostituisce un numero o una stringa non soggetti a
modifiche.
Le costanti sembrano simili alle variabili, in realt non possibile
modificarle o assegnarvi nuovi valori.
Portata delle variabili
Portata lambito entro cui una variabile accessibile. Larea di azione di
una variabile pu essere a livello di procedura o a livello di modulo.
Una variabile dichiarata allinterno della macro una variabile a livello di
procedura e la sua portata limitata alla macro che la contiene. Per
trasformarsi a livello di modulo, quindi utilizzabile da qualsiasi macro di
quel modulo, una variabile deve essere dichiarata allinizio del modulo.
Dichiarare le costanti
Const Pippo = 9999
Const Paperino = Il mattino ha loro in bocca

Notate che il testo che assegniamo alla costante delimitato dalle virgolette
().
Const Pluto = #03/09/1957#

Le date devono essere delimitate dai cancelletti (#....#).

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

70

Lezione XIII Comunicazioni allutente


Poter offrire allutente la possibilit di dialogare con una nostra procedura
sicuramente affascinante e molto utile. In questa lezione studieremo
MsgBox, la prima delle due finestre di dialogo incorporate del VBA che
incontreremo nel nostro corso.
Una semplice finestra di messaggio
Richiamare lEditor di programmazione dal menu Strumenti\Macro e nella
finestra Progetto eseguire un doppio clic per attivare il Modulo3, che
dovrebbe contenere le macro Colorare e Prova.
Posizionarsi sulla prima riga vuota e dare un paio di invii per creare
spazio rispetto la procedura Prova: quindi digitiare Sub Comunica() e
premere il tasto INVIO. Oltre alla creazione di una riga vuota, saranno
inserite le istruzioni di fine procedura End Sub.
Sub Comunica()
End Sub

Posizionarsi sulla riga vuota presente fra lapertura e la chiusura della


macro, premere il tasto TAB e digitare le seguenti istruzioni:
MsgBox "Il mattino ha l'oro in bocca"

Eseguire Comunica, scegliendola dallelenco delle


macro presenti nella finestra di dialogo Macro:
apparir limmagine riprodotta a lato.
Per poter eseguire qualsiasi altra operazione in
Excel o nellEditor di VBA obbligatorio cliccare
sul pulsante OK.
MsgBox visualizza il testo precedentemente inserito fra le virgolette ().
Gli argomenti di MsgBox
Ma adesso implementiamo il codice di Comunica.
Sub Comunica()
Dim Titolo, Messaggio As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Utilizzo di MsgBox"
MsgBox Messaggio, , Titolo
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

71

MsgBox oltre ad un messaggio, permette anche di impostare la sua barra del


titolo, sostituendo il generico Microsoft Excel con un titolo a nostro piacere.
Mentre veniva digitato il codice, dopo la scrittura della variabile
Messaggio, contenente la comunicazione per lutente, hanno fatto la loro
comparsa due elementi contestuali: unetichetta descrittiva della sintassi di
MsgBox e una casella combinata contenente lelenco degli argomenti
inseribili in quel punto.

Ad onor del vero, letichetta (gialla) descrittiva della sintassi non molto
esplicativa per un novizio del VBA: vediamo di semplificare un po,
inserendo solo gli argomenti principali.
MsgBox(Prompt, [Buttons], [Title])

Fra gli argomenti presentati, solo Prompt obbligatorio. Ci facilmente


deducibile dal fatto che lunico non racchiuso fra parentesi quadre [].
Prompt largomento rappresentante il messaggio da inoltrare, che nel
nostro esempio rappresentato dalla variabile Messaggio.
Buttons, sempre nel nostro esempio non stato contemplato, per non
essendo contemplata la possibilit di saltare un argomento, abbiamo
lasciato a sua testimonianza la doppia virgola , , .
Title il titolo che compare sulla barra del titolo della finestra messaggio,
che nel nostro caso la variabile Titolo.
Nota: Le parentesi tonde a questo stadio di utilizzo della funzione MsgBox non sono
ancora necessarie.
Aggiungiamo anche largomento Buttons, dandogli la forma di un bel punto
esclamativo.

MsgBox Messaggio, vbExclamation, Titolo

Le possibili impostazioni dellargomento Buttons sono:

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

72

Costante
vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4

Valore
0
1
2
3
4
5
16
32
48
64
0
256
512
768

Descrizione

Visualizza solo il pulsante OK.


Visualizza i pulsanti OK e Annulla.
Visualizza i pulsanti Termina, Riprova, e Ignora.
Visualizza i pulsanti S , No e Annulla.
Visualizza i pulsanti S e No.
Visualizza i pulsanti Riprova e Annulla.
Visualizza l'icona di messaggio critico.
Visualizza l'icona di richiesta di avviso.
Visualizza l'icona di messaggio di avviso.
Visualizza l'icona di messaggio di informazione.
Il primo pulsante il predefinito.
Il secondo pulsante il predefinito.
Il terzo pulsante il predefinito.
Il quarto pulsante il predefinito
Finestra di messaggio a scelta obbligatoria
nell'applicazione. L'utente deve rispondere alla
VbApplicationModal
0
finestra di messaggio prima di poter continuare a
lavorare nell'applicazione corrente.
Finestra di messaggio a scelta obbligatoria nel
sistema. Tutte le applicazioni vengono sospese fino a
VbSystemModal
4096
quando l'utente non risponde alla finestra di
messaggio.
Aggiunge un pulsante della Guida nella finestra di
vbMsgBoxHelpButton
16384
messaggio.
Specifica che la finestra di messaggio in primo
VbMsgBoxSetForeground 65536
piano.
vbMsgBoxRight
524288 Il testo allineato a destra.
Specifica che il testo viene visualizzato da destra a
vbMsgBoxRtlReading
1048576
sinistra per i sistemi ebraico e arabo.
Il primo gruppo di valori (0-5) descrive il numero e il tipo dei pulsanti visualizzati nella
finestra di messaggio. Il secondo gruppo (16, 32, 48, 64) descrive lo stile dell'icona. Il terzo
gruppo (0, 256, 512, 768) determina il pulsante predefinito e il quarto gruppo (0, 4096)
determina se la finestra di messaggio a scelta obbligatoria nell'applicazione o nel sistema.
Quando si sommano dei numeri per la creazione di un valore finale dell'argomento buttons,
utilizzare soltanto un numero per ciascun gruppo.

Nota: Il contenuto di questa pagina tratto dalla guida del VBA di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

73

Infine osserviamo la possibilit di inserire pi argomenti Buttons nella


stessa finestra messaggio.
MsgBox Messaggio , vbYesNo + vbExclamation, Titolo

Ma se la finestra messaggio serve solo a fare comunicazioni allutente,


perch in questo ultimo esempio rappresentata la possibilit di scegliere
fra S e No ?
Fra non molto affronteremo anche questo lato di MsgBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

74

Lezione XIV Interazione con lutente


La finestra di input, la seconda delle due finestre di dialogo incorporate del
VBA, ci consente di fare un bel passo avanti nella possibilit di interagire
con i fruitori delle nostre procedure.
Finestra input
La funzione InputBox permette di creare e di visualizzare una semplice
finestra di dialogo che consente limmissione di dati da parte dellutente.
Richiamare lEditor di VB dal menu Strumenti\Macro\Visual Basic
Editor.
Attivare il modulo ModColorare dalla finestra Progetto.
Portarsi alla fine modulo e creare delle righe vuote con degli invii.
Digitare il codice seguente.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo)
7:
MsgBox Contenitore
8: End Sub

Dal menu Strumenti\Macro (Excel o Editor che sia) attivare la


finestra di dialogo Macro ed eseguire la macro Immissione.
Apparir InputBox ove occorrer digitare un nome a piacere.
Confermare cliccando su OK.

Far la sua comparsa una finestra messaggio recante il nome appena


digitato in InputBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

75

La sintassi della macro Immissione, sino alla riga 5, pressoch identica a


quella utilizzata per MsgBox. Anche qui dichiariamo delle variabili, che
saranno poi utilizzate per il titolo e per il messaggio della nostra finestra.
Abbiamo in pi la dichiarazione di una terza variabile di tipo Variant.
Le differenze con le istruzioni di MsgBox, sorgono a partire dalla sesta riga,
come risulta evidente dal codice delle due funzioni messe a confronto.
MsgBox Messaggio, , Titolo

Contenitore = InputBox(Messaggio, Titolo)

La differenza meno rilevante la mancanza nella riga di InputBox


delle due virgole (, ,) che in MsgBox possono essere occupate
dallargomento Buttons, non presente in InputBox.
La seconda differenza, la pi importante, la presenza di una
variabile, Contenitore, ad inizio della riga relativa alla gestione di
InputBox. Associamo alla variabile Contenitore loutput di
InputBox, cio la variabile Contenitore conterr ci che sar digitato
in InputBox.
A questo punto il contenuto della settima riga della procedura Immissione,
dovrebbe essere chiara: MsgBox ci presenter come messaggio il contenuto
della variabile Contenitore, variabile riempita da quello che stato
digitato in InputBox.

Nota: La variabile Contenitore stata dichiarata come tipo Variant, non sapendo a
priori che tipo di dati potrebbero essere digitati.

Loutput verso una cella


Nellesempio precedente abbiamo indirizzato il valore immesso in InputBox
a MsgBox, ma volendo, possiamo anche dirigerlo verso la cella di un foglio
di lavoro.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo, Default)
7:
Range("a1") = Contenitore
8: End Sub

E bastato modificare le istruzioni della settima riga: in luogo della finestra


messaggio abbiamo inserito la cella A1.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

76

Ancora sugli argomenti


A volte linput dellutente abbastanza prevedibile: in tal caso pu risultare
daiuto inserire un testo o un numero predefinito, che potr essere
confermato o alloccorrenza sostituito.
Si dimensioni una terza variabile di tipo string, denominata Default, quindi
sinserisca la seguente riga di codice fra la quinta e la sesta riga
Default= Matteo, Luca e Davide

e modificare la sesta riga, che a questo punto sar diventata la settima in:
Contenitore = InputBox (Messaggio, Titolo, Default)

Metodo InputBox
Il VBA, ogni tanto, presenta degli strani misteri. Uno di questi la
presenza, accanto alla funzione InputBox, di un altro oggetto pressoch
identico, definito metodo InputBox.
Nota: Il VBA pesca i suoi oggetti da varie librerie: la funzione InputBox appartiene
alla libreria di Visual Basic: il metodo InputBox fa parte della libreria di Excel.
Il metodo InputBox presenta un vantaggio rispetto alla omonima funzione:
in grado di filtrare il tipo di dati immesso.
1: Sub SuperImmissione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4: Dim Contenitore As Variant
5:
Titolo = "Corso on line di VBA per Excel"
6:
Messaggio = "Digita il tuo nome"
7:
Default = 10
8:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1)
9:
Range("a1") = Contenitore
10: End Sub

La sintassi del metodo InputBox, come potete vedere nellesempio di fatto


identica alla funzione InputBox.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

77

Lunica differenza rilevabile alla riga 8. La parola chiave Application


precede InputBox ed presente largomento Type al quale associato il
valore 1, indicante laccettazione di soli valori numerici.

Nellimmagine visibile il
tentativo fallito, di immettere del
testo.

Nota: Application rappresenta lapplicazione Microsoft Excel.

Qui di seguito sono riportati i valori dellargomento Type, atti a specificare


il tipo di dati restituito.
Valore

Significato

Una formula

Un numero

Del testo (una stringa)

Un valore logico (True o False)

Un riferimento di cella, ad esempio un oggetto Range

16

Un valore di errore, ad esempio #N/D

64

Una matrice di valori

A capo
Il codice della macro SuperImmissione, presenta una stranezza: sono
presenti due righe 8. Il VBA non permette di spezzare le righe di codice,
per a volte le righe diventano eccessivamente lunghe e quindi illeggibili.
Si risolve il problema mandando a capo una porzione di codice, dicendo
per al VBA che si tratta di una riga di istruzioni unica. Lultima parola
della riga 8.1, nel nostro esempio, InputBox dopo la quale si creato uno
spazio vuoto con la pressione della barra spaziatrice. Quindi si digitato un
underscore ( _ ) .
8.1:
8.2:

Contenitore = Application.InputBox _
(Messaggio, Titolo, Default, Type:=1)

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

78

Lezione XV Procedura decisionale


In questa lezione daremo sostanza alla realizzazione di una procedura di
interazione fra uomo e macchina. Decideremo di volta in volta qual il
numero massimo di abitanti oltre il quale vogliamo formattare le celle.
Variabili a portata di modulo
Richiamando alla memoria la lezione sulle variabili, sicuramente non avrete
dimenticato il paragrafo dedicato alla portata delle variabili. Nello
svolgimento di questa lezione dovremo ricorrere, per la prima volta, ad una
variabile a livello di modulo.
Attiviamo il modulo ModColorare e posizioniamoci al suo inizio, ove
digiteremo la seguente dichiarazione di variabile.
Dim Contenitore As Variant 'Variabile a livello di modulo

Quindi creiamo una nuova procedura, atta a raccogliere il numero di


abitanti che di volta in volta porremo come limite oltre al quale si dovr
colorare la cella.
1: Sub SceltaPopolazione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Popolazione oltre la quale colorare di giallo"
6:
Default = 9999
7:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1) 'Tipo 1, cio numerico
9: End Sub

La macro SceltaPopolazione, ricalca perfettamente la procedura vista nella


precedente lezione, SuperImmissione.
Lunica differenza appunto la dichiarazione della variabile Contenitore,
fatta a inizio modulo.
La variabile Contenitore conterr il valore digitato nella finestra di input.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

79

Inserire una procedura dentro una procedura


Sempre nel modulo ModColorare cerchiamo la macro Colorare e
immediatamente sotto la prima riga, con un invio, creiamo una riga vuota
ove digitare SceltaPopolazione.
Il risultato non dovrebbe essere dissimile da quello visualizzato nelle righe
sottostanti.
1: Sub Colorare()
2: SceltaPopolazione
'Macro in cui digitiamo la popolazione
3:
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
4:
If ActiveCell > Contenitore Then
'se superiore a 9999
5:
Selection.Interior.ColorIndex = 6
'colora di giallo
6:
End If
fine condizione
7:
ActiveCell.Offset(1, 0).Range("A1").Select
'scende di una cella
8:
Loop
ripeti
9: End Sub

Nota: Incominciando ad aumentare la complessit della procedura i commenti


diventano indispensabili.
Probabilmente avrete gi capito che, la prima istruzione eseguita dalla
macro Colorare sar quella di eseguire le istruzioni della procedura
SceltaPopolazione, posta nella seconda riga.
La procedura SceltaPopolazione, tramite InputBox, richieder il valore
desiderato, che una volta ricevuto memorizzer nella variabile Contenitore.
Terminata SceltaPopolazione, la macro Colorare continuer a processare
le sue istruzioni dalla riga 3 e passata alla riga 4 verificher se il contenuto
della cella attiva superiore al valore contenuto nella variabile
Contenitore.
Tutto ci spiega perch abbiamo dimensionato la variabile a livello di
modulo: essa viene riempita nella procedura SceltaPopolazione, ma il
suo contenuto viene sfruttato allinterno della macro Colorare.
Programmazione strutturata
In questa lezione, inserendo una procedura allinterno di unaltra procedura,
abbiamo adottato la tecnica della programmazione strutturata.
Pi le procedure diventano lunghe e complesse, pi difficile diventa
seguirne il comportamento, correggerle, aggiornarle, sino a diventare
pressoch ingestibili.
Inoltre, a volte, una piccola sottoprocedura pu essere riutilizzata pi volte
allinterno della stessa procedura ospitante, o addirittura da una unaltra
procedura ancora.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

80

Decolorare
Per rendere la nostra applicazione un po pi comoda, registriamo una
macro per togliere il colore dalle celle precedentemente formattate.
Dalla barra degli strumenti Disegno scegliere Casella di testo e
modellarne le forme accanto al pulsante artigianale Verifica,
denominandolo Decolora.
Posizioniamoci in F5, avviamo il registratore di macro,
attribuendogli il nome Decolora e clicchiamo su OK per avviare la
registrazione.
Premere la combinazione di tasti CTRL+SHIFT+ (tasto direzionale
gi) per selezionare tutte le celle contigue
della colonna contenenti dati.
Sulla
barra
degli
strumenti
di
Formattazione agire sul pulsante Colore
riempimento per scegliere Nessun
riempimento.
Attivare la cella F5 per deselezionare.
Interrompere la registrazione.

Sub Decolora()
'Toglie il colore
'Risultato della pressione di CTRL+SHIFT+Tasto direzionale Gi
Range(Selection, Selection.End(xlDown)).Select
Selection.Interior.ColorIndex = xlNone
'No colore
Range("F5").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

81

PARTE 3
Addentrarsi nel VBA
Il viaggio nella conoscenza del VBA, ci porter a perfezionare,
approfondire e assemblare gli strumenti sino ad ora appresi.
Continueremo il discorso su loutput dellutente, impareremo a convivere
con gli errori, a creare finestre di dialogo, a costruire utilit atte a facilitare
il nostro lavoro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

82

Lezione XVI Trova


In questa lezione implementeremo la nostra procedura di colorazione, con
una funzione di ricerca dei comuni.
Pulire lEditor di VB
I moduli collegati al file Comuni incominciano ad essere un po disordinati:
vediamo di fare un po di ordine.
Avviare lEditor di VB.
Dalla finestra Progetto attivare il modulo Modulo3 facendo un
doppio clic.
Con il mouse selezionare le due macro Navigator e Navigator2 e
premere la combinazione di tasti CTRL+X per tagliarle.
Transitare al Modulo2 e posizionarsi al fondo, creando
eventualmente delle righe vuote con degli invii.
Premere la combinazione di tasti CTRL+V per incollare le macro
precedentemente tagliate.
Nella finestra Propriet posizionarsi in corrispondenza di (Name)
per rinominare Modulo2 in Varie.

Nella finestra Progetto cliccare con il


tasto destro su Modulo3 e dal menu
contestuale scegliere la voce Rimuovi
Modulo3

Nota: I nomi, dei moduli menzionati potrebbero non corrispondere esattamente a


quelli creati sul vostro PC. Tale eventualit non dovrebbe comunque
rappresentare un problema.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

83

Far la sua comparsa una finestra mes saggio, con la quale sar richiesto se
si desidera esportare il modulo prima di eliminarlo. Per esportare sintende
creare un file con estensione bas, contenente il codice del modulo in fase di
eliminazione.
Nel nostro caso possiamo tranquillamente ignorare la richiesta di
esportazione e quindi cliccare su NO.

La logica conseguenza, della presenza di una opzione di esportazione, che


sia disponibile anche la possibilit di importare del codice da un file esterno
al nostro progetto. Gi losservazione d el menu contestuale scaturito
dalloperazione di eliminazione del modulo, rileva lopzione Importa file,
richiamabile anche dal menu File dellEditor.
Una macro per trovare
Portandosi nel foglio Comuni, si faccia partire il registratore,
attribuendo alla macro il nome di TrovaComune.
Nella finestra di dialogo Trova e sostituisci, richiamabile dal menu
Modifica di Excel, digitare nella casella Trova: il Comune di Almese
e cliccare su Trova successivo per avviare la ricerca.

Fermare la registrazione.
Attivare lEditor di VB.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

84

La conseguenza dellutilizzo del registratore, sar la creazione del


Modulo1.
Nella finestra Progetto dellEditor di VB effettuiamo un doppio clic su
Modulo1 per visualizzare il codice test registrato.
Sub TrovaComune()
Cells.Find(What:="almese", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub

Nota: Il codice sopra riportato, probabilmente differisce da quello generato dal vostro
registratore nei punti ove va a capo.
La macro generata per trovare il Comune sicuramente troppo logorroica.
D'altronde se osservate la finestra di dialogo Trova e sostituisci, raffigurata
nella pagina precedente, si nota che riproduce tutte le opzioni in essa
presenti. Troppe!
Certamente mettere mano al codice di una macro non necessariamente
semplice, ma possibile.
Si possono eliminare dei pezzi di codice e provare a vedere cosa succede.
Metodo un po empirico, ma a volte funziona.
La guida in linea
Per rendere loperare a tentativi un po pi consapevole, facciamoci aiutare
dalla guida in linea. Si evidenzi il metodo Find e si schiacci il tasto F1:
partir la guida contestualmente alla parola selezionata.
Probabilmente non sar ben comprensibile quello che la guida vi illustrer,
ma con un po di attenzione potrete estrapolare dal tutto il segmento di
codice qui di seguito riportato...
.Find(2, lookin:=xlValues)

dal quale si capisce che Find, tutto sommato, funziona anche con pochi
argomenti.
La guida, inoltre, offre la
possibilit di approfondire
lo studio della sintassi del
metodo Find, cliccando su
Metodo Find applicato
alloggetto Range.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

85

Vediamo adesso come adattare il frammento di codice prelevato dalla guida


alle nostre esigenze

Find

lookin:=xlValues

Cells.Find, come il registratore aveva generato


dovrebbe essere adatto al nostro caso.
con 2 viene cercato un numero e corrisponde al
What:="almese" prodotto dal registratore. Da
ci si deduce che what pu essere omesso e che
volendo cercare del testo lo dovremo inserire fra
virgolette, ottenendo come risultato almese.
questa istruzione specifica il tipo dinformazioni
da cercare, che qui vediamo essere valori
(xlValues), mentre nellesempio della macro
formule (xlFormulas). Se per andiamo a leggere
nel dettaglio la guida in linea, essa ci dice lookin
un argomento facoltativo, quindi, salvo esigenze
specifiche, eliminabile.
Nellesempio tratto dalla guida non presente, ma
Activate presente nel codice della macro che
abbiamo registrato. Indubbiamente serve, poich
una volta localizzato il nome cercato, si vuole
anche attivare la cella che lo ospita.

Sub TrovaComune()
Cells.Find("almese").Activate
End Sub

Niente da dire! Il risultato della rielaborazione della macro iniziale


decisamente pi leggero, con il vantaggio di guadagnarci in velocit di
esecuzione delle istruzioni e di leggibilit.
Il problema che la macro TrovaComune, per quanto stringata
estremamente rigida: cerca solo il Comune di Almese e per variare la
ricerca occorre agire direttamente sul codice, possibilit ovviamente
improponibile per un utente finale.
La prossima lezione sar dedicata a come rendere pi flessibile la ricerca
dei dati.
Nota: Il metodo Activate applicato alloggetto Range (cella), come il metodo Select,
attiva una cella. La differenza fra i due metodi che Select pu agire o su di
una cella singola o si un intervallo di celle, mentre Activate ha influenza su
di una sola cella.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

86

Lezione XVII InputBox e Trova


Partendo dal codice creato nella precedente lezione, cercheremo di creare
una vera e propria procedura di ricerca dati.
Una variabile contro la rigidit
Abbiamo visto nella precedente lezione, che la rigidit della nostra
procedura deriva dal fatto di aver inserito nei suoi argomenti direttamente il
valore da ricercare.
Cells.Find("almese").Activate

Se noi sostituissimo la stringa, che in questo caso indica Almese, con una
variabile, avremmo risolto il problema di poter variare a piacimento
loggetto della ricerca. Quindi dobbiamo trovare il modo di far assumere
alla variabile il valore di volta in volta scelto.
Grazie ad InputBox il problema gi praticamente risolto! Useremo la
finestra di input per chiedere allutente quale Comune vuole ricercare.
Adattare una macro preesistente
NellEditor di VB attivare il Modulo1.
Selezionare e copiare, tramite il menu di scelta rapida che compare
alla pressione del tasto destro, negli Appunti la macro TrovaComune
per andarla ad incollare alla fine del modulo ModColorare.
Nella finestra Progetto, cliccare con il tasto destro su Modulo1 ed
eliminarlo scegliendo dal menu contestuale la voce Rimuovi
Modolo1.
Visualizzare il contenuto del modulo ModColorare, selezionare la
macro SceltaPopolazione e copiarla a sua volta negli Appunti.
Incollare SceltaPopolazione al di sotto della macro TrovaComune e
rinominarla in SceltaComune.
Portarsi allinizio del modulo nellarea Dichiarazioni ed aggiungere
una seconda variabile a livello di modulo denominata, alla faccia
della fantasia, Contenitore2.
Dim Contenitore, Contenitore2 As Variant

Tornare alla fine del modulo e modificare la macro SceltaComune


come di seguito riportato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

87
Sub SceltaComune()
Dim Titolo, Messaggio,Default As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Digita il Comune da trovare"
Default = "Torino"
Contenitore2 = Application.InputBox _
(Messaggio, Titolo, Default, Type:=2)
End Sub

'Tipo 2, cio stringa

Come si pu vedere le variazioni apportate sono veramente minimali.


Si ovviamente variato il messaggio da comunicare, abbiamo precisato che
la variabile ove appoggiare loutput Contenitore2 e che, ovviamente, i
dati sono di tipo stringa.
SceltaComune raccoglie, nella variabile Contenitore2, il Comune da
ricercare e deve passarlo alla procedura TrovaComune. Quindi
SceltaComune rappresenter la prima istruzione di TrovaComune, che a
sua volta andr a cercare il contenuto della variabile Contenitore2.
Largomento What del metodo Find diverr la variabile Contenitore2.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2).Activate
End Sub

Una immagine come pulsante


Abbiamo gi usato la Casella di testo come pulsante alternativo, ma nulla ci
vieta di fare ricorso ad altri oggetti grafici, tipo una clipart.

Dal menu Inserisci\Immagine scegliere clipart.

Modellare limmagine sul foglio e


cliccandoci sopra con il tasto destro, dal
menu contestuale scegliere la voce
Assegna macro, per attribuirgli la macro
TrovaComune.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

88

Lezione XVIII Gestione degli errori


Alcuni manuali di programmazione introducono la gestione degli errori
come primo argomento da affrontare. Ci testimonia la grande importanza
rivestita da tale argomento. Nel nostro corso abbiamo deciso di non
assumere una posizione cos estrema, anche perch una trattazione
approfondita sulla gestione degli errori, rischierebbe di diventare pi
impegnativa dello stesso corso nel suo insieme.
Iniziamo con una presentazione teorica delle tre diverse famiglie di errori

Errori di linguaggio o di sintassi


Derivano da errori di digitazione, tipo lomissione di segni di punteggiatura,
la mancanza di parentesi, o per dimenticanza di una delle parti dei blocchi
di istruzione, quali If senza End If e cos via.
Questi errori possono essere individuati abbastanza facilmente.
Errori di runtime
Si verificano e vengono individuati quando unistruzione tenta di eseguire
unoperazione che non possibile completare in fase di esecuzione. Un
esempio la divisione per zero.
Vediamo un esempio:
Densit = Popolaz \ Superfic

Ove la variabile Superfic assume il valore zero, loperazione diventa


impossibile anche se la sintassi dellistruzione corretta.
Si dice errore di runtime perch viene individuato solo se il codice in
esecuzione.
Questo genere di errori non sempre facilmente individuabile.
Errori logici
In questo ultimo caso, pur in presenza di codice sintatticamente corretto,
che esegue operazioni valide, abbiamo risultati non desiderati.
Visual Basic non individua gli errori logici, pertanto occorre effettuare un
controllo funzionale del codice.
Chiaramente questi tipi di errori risultano essere decisamente infidi.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

89

Il primo errore
Iniziamo subito in salita, affrontando un errore logico, in cui siamo caduti
nellultima lezione con la procedura di ricerca.
Se avete provato a cercare un Comune, la macro TrovaComune ha
sicuramente dato dei buoni risultati, a meno che la scelta sia caduta su
Torino. In tal caso, abbastanza inspiegabilmente, la cella si posiziona
sempre in B2. Guardando con pi attenzione il contenuto della cella,
Comuni Provincia di Torino, scopriamo larcano:
La nostra procedura per default non Confronta intero contenuto della cella,
quindi si ferma in B2 contenente una frase con la parola Torino.
Capito linghippo, per trovare il giusto argomento, che imponga a Find,
di cercare una esatta corrispondenza ai caratteri specificati in InputBox,
andiamo a consultare la guida in linea, che purtroppo non si rivela molto
chiarificatrice.
Questo uno di quei casi, ove simpara ad apprezzare in pieno il
Registratore di macro.
Registriamo le azioni di cercare un valore, qualunque esso sia, con Trova
del menu Modifica, senza attivare lopzione Confronta intero contenuto
della cella, quindi ripetiamo la registrazione, questa volta spuntando
Confronta intero contenuto della cella.
Confrontiamo il risultato delle due registrazioni per individuare ove si
differenziano ed ecco le due istruzioni di nostro interesse.
LookAt := xlPart

LookAt := xlWhole

Anche con un inglese deboluccio si comprende che Part parte e Whole


intero, quindi listruzione che ci necessita LookAt := xlWhole.
Pertanto la macro TrovaComune assumer questa nuova forma.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2, LookAt:=xlWhole).Activate
End Sub

Ancora logica
Rimanendo sempre in tema di errori logici, anche la procedura Colorare
presenta un inconveniente piuttosto fastidioso. Se vogliamo che colori le
celle desiderate, essa ci obbliga a posizionarsi sulla giusta cella di partenza
prima di avviare la macro.
Fortunatamente la soluzione estremamente semplice: nel modulo
ModColorare posizionarsi in corrispondenza della macro Colorare, creare
una riga vuota fra le righe con le istruzioni SceltaPopolazione e Do While

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

90

e digitarvi Range(F5).Select. In tal modo, indipendentemente dalla cella


di partenza, la macro Colorare si posizioner sempre nel punto giusto ove
iniziare a testare i valori delle celle.
Un ultimo ritocco, sempre a Colorare, consiste nel non disorientare lutente
che utilizzer il nostro prodotto. Se d opo aver formattato le giuste celle, il
foglio rimane visualizzato intorno alla trecentesima riga, il che non un
bello spettacolo, oltre ad essere una potenziale fonte di confusione per
utenti non esperti, occorre riposizionarlo allinizio. Dopo listruzione Loop
e prima, ovviamente, di End Sub, inserire Range(A1).Select.
Un errore da runtime
Molto spesso gli errori di runtime sono il frutto di pasticci effettuati con
la tastiera.
Prendiamo sempre la macro Colorare ad
esempio
e
simuliamo
linavvertita
cancellazione dellistruzione Loop, quindi
proviamo ad eseguire suddetta procedura.
Vedremo comparire lavviso di errore a lato
raffigurato, che molto chiaramente spiega
lorigine del guasto.
Dopo aver fatto clic sul pulsante OK sar
visualizzata
la
macro
Colorare,
evidenziata in giallo, ad indicare lo stato
di errore della procedura.
E importante ripristinare la macro andando a cliccare sul pulsante
Ripristina della barra degli strumenti Standard dellEditor di VB.
Naturalmente occorrer anche ins erire nuovamente listruzione Loop.
Un caso ambiguo
Insistiamo con Colorare e questa volta la
nostra sbadataggine ci fa eliminare If finale,
lasciando vedovo End.
Provando ad eseguire la macro sar
nuovamente comunicato un errore: il
problema che il VBA, prendendo farfalle,
ci dir Loop senza Do. Cos un piccolo
refuso da tastiera rischia di diventare un
tormentone, contro il quale lunica cura
leggersi con cura il listato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

91

Un errore ortografico
Per ultima affrontiamo la prima tipologia di errori: gli errori di linguaggio o
di sintassi.
Un po sgrammaticati digitiamo While senza H e facciamo clic sulla riga
successiva. Immediatamente saremo ammoniti del nostro erroraccio.

Un errore spaziale
Induciamo la macro Colorare a commettere un errore grossolano,
modificando il secondo valore di Offset da 0 a -10, cio da nessun
movimento in orizzontale a dieci celle a sinistra.
ActiveCell.Offset(1, -10).Range("A1").Select

Ecco
una
nuova
finestra di segnalazione
errori, ove dovremo
cliccare sul pulsante
Debug.

Non finiscono mai


Il problema che non cos semplice: la casistica degli errori ben pi
ampia di quella illustrata in queste poche pagine.
Molte volte le varie categorie di errori sembrano mescolarsi fra di loro e pi
i programmi diventano grandi, pi diventa complicato venirne a capo.
Fortunatamente il VBA possiede degli strumenti in grado di darci una mano
in questi frangenti. La prossima lezione sar appunto dedicata ad
approfondire le tematiche sulla gestione degli errori e il controllo sul flusso
delle procedure.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

92

Lezione XIX Debug


In VBA sono disponibili strumenti di debug che consentono di analizzare il
funzionamento delle macro e che risultano particolarmente utili per
individuare le cause degli errori. Questi strumenti possono inoltre essere
utilizzati per provare, capire e modificare le procedure create da altri
sviluppatori.
Punti di interruzione
Per riuscire a rintracciare la causa di errori, molte volte si dovr scorrere le
istruzioni di una procedura passo per passo.
Lesecuzione a passo singolo di tutte le istruzioni di una procedura pu
diventare decisamente faticosa, ma solo in alcuni casi veramente
necessario scorrere tutte le righe del programma.
Fortunatamente, il VBA consente di eseguire la maggior parte del codice a
velocit normale e passare in modalit Interruzione, cio a processare una
riga per volta, solo quando vengono eseguite particolari istruzioni
allinterno del codice.
Un punto di interruzione una riga allinterno del codice evidenziata da una
striscia di colore marrone, con al suo fianco un pallino dello stesso colore.
Quando incontra un punto dinterruzione, il VBA passa dalla normale
esecuzione del codice alla modalit Interruzione. Usando i punti di
interruzione possibile seguire la maggior parte di una procedura a velocit
piena e passare in modalit I nterruzione solo quando il VBA raggiunge
listruzione che occorre esaminare con attenzione.
Effettuare il debug
Per effettuare il debug di una procedura occorre visualizzare la barra degli
strumenti Debug, richiamabile dal menu Visualizza\Barre degli strumenti
dellEditor VB.

Attiviamo il modulo ModColorare e cerchiamo la macro Colorare, quindi


in corrispondenza della terza riga
della suddetta procedura fare clic
allinterno del margine sinistro per
impostare il punto di interruzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

93

Quindi fare clic sul pulsante Esegui Sub, posto sulla barra degli
strumenti Debug.
Saranno immediatamente eseguite
le istruzioni della sotto procedura
SceltaPopolazione,
per
poi
fermarsi in corrispondenza della
riga con il punto dinterruzione.
A questo punto fare clic sul pulsante Esegui Istruzione, posto sulla
barra degli strumenti Debug per eseguire un passo alla volta.

Dopo il clic sul pulsante Esegui Istruzione la riga gialla si sposta nella riga
in basso. In questa fase stata eseguita listruzione della riga iniziale
(quella marrone) e il VBA in attesa di eseguire listruzione della riga
colorata di giallo.
Eseguendo nuovamente clic sul pulsante Esegui Istruzione, viene
controllato il valore contenuto nella variabile Contenitore che, nel caso
illustrato nellimmagine sottostante, deducibile essere inferiore al valore
della cella, perch invece di passare allistruzione successiva, ove avrebbe
colorato la cella, salta immediatamente a End If.

Continuando a cliccare su Esegui Istruzione processeremo riga per riga,


sino a quando, terminate le esigenze di indagine del codice,
interromperemo il debug cliccando sul pulsante Ripristina.
E importante ricordarsi di togliere il punto dinterruzione, risultato
ottenibile eseguendo le stesse operazioni richieste per definirlo, cio
cliccando sopra il pallino marrone.
Nota: Il pulsante Esegui Sub, utilizzato senza lintermediazione del punto
dinterruzione esegue il flusso della procedura tutto di un fiato.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

94

E possibile eseguire il debug anche senza lausilio del punto


dinterruzione. In tal caso posizioniamo il cursore in corrispondenza della
procedura che si desidera verificare e cliccando sul pulsante Esegui
istruzione sar eseguita una istruzione alla volta, partendo dallinizio della
macro. Per interrompere il debug, anche in questo caso, ricorrere al pulsante
Ripristina, oppure, per far scorrere velocemente tutto il codice, fare clic sul
pulsante Esegui Sub.
Intercettare gli errori di runtime
Per quanti sforzi si facciano in fase di sviluppo di un programma, non sar
possibile sterminare tutti gli errori, specie se linput dei dati dipende dagli
utenti. Citando lesempio della precedente lezione, pu accadere che
lutente, perfido, immetta in InputBox uno 0 come divisore.
Il VBA dotato di un sistema di rilevazione degli errori che permette di
evitare la visualizzazione dei messaggi di errore.
Tale risultato ottenibile dalla seguente sintassi:
On Error GoTo SaltaErrore

Specificando che SaltaErrore un nome di fantasia, definito etichetta


(label), possiamo tradurre il codice in:
In caso di errore salta alletichetta SaltaErrore.
Sub StudioErrori()
Dim Popolaz, Densit, Superfic As Long
Popolaz = 2000
Superfic = 0
On Error GoTo SaltaErrore
Densit = Popolaz \ Superfic
MsgBox "Ogni abitante dispone di " & Densit & " metri quadri"
Exit Sub
SaltaErrore:
MsgBox "Impossibile dividere per zero", vbCritical
End Sub

Dallesempio si pu vedere che letichetta SaltaErrore: stata posizionata


per entrare in azione in caso di errore, al termine delle normali istruzioni.
Si dovuto, inoltre, aggiungere listruzione Exit Sub per terminare in
anticipo la macro, in modo che non esegua le istruzioni relative agli errori,
se errori non ci sono.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

95

Lezione XX I Forms
Fino a questo momento abbiamo preso confidenza con le due finestre di
dialogo incorporate del VBA: la funzione MsgBox e la funzione/metodo
InputBox. Sebbene questi due oggetti possano garantire ad un programma
una buona dose di interattivit, il loro utilizzo non permette di raggiungere
un elevato grado di flessibilit e di personalizzazione.
Fortunatamente il VBA permette di creare delle finestre di dialogo
personalizzate, conosciute con il nome di Forms.
Il primo form
Dal menu Inserisci, dellEditor di VB, scegliere la voce UserForm.

Faranno la loro
comparsa
due
nuovi elementi: un
form denominato
UserForm1 e la
barra
degli
strumenti Casella
degli strumenti.

A seguito dellinserimento del Form, la finestra


Progetto visualizza una ulteriore ramificazione con
la cartella Form e al suo interno, il Form appena
generato UserForm1.

Osservando la finestra delle Propriet,


con il Form selezionato, si nota come
siano decisamente aumentati gli elementi,
le propriet appunto, in essa presenti .
Modifichiamo la propriet nome ( Name)
in Dialogo, quindi modifichiamo anche la
propriet Caption in Form di Studio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

96

Potremo osservare che a seguito della modifica della


propriet Caption cambiato il nome presente sulla
barra del titolo del Form.
A questo punto occorre fare un po di chiarezza sulla
differenza fra le propriet Name e Caption, che
probabilmente,
non
risulta
immediatamente
comprensibile.
Name il nome delloggetto, tramite il quale
identificabile tra altri oggetti.
Caption una semplice etichetta descrittiva.
Forms e pulsanti
Il foglio di lavoro Comuni, incomincia ad essere un po troppo affollato da
pulsanti di vario genere. Spostiamo questi controlli sulla finestra di dialogo.
Selezionare Pulsante di comando dalla barra degli strumenti Casella degli
strumenti e modellarlo nel Form Dialogo.
Notate che con il Pulsante di comando selezionato, la finestra delle
Propriet si aggiorna automaticamente alloggetto selezionato.

Personalizzare il pulsante tramite la finestra delle Propriet.


In un Form, per modificare laspetto di un Pulsante di comando, o di un
altro controllo, occorre agire sulle sue propriet.
Cambiare la descrizione del pulsante in Verifica agendo sulla
propriet Caption.
Cambiare il colore della scritta grazie alle tavolozze dei colori della
propriet ForeColor.
Infine grassettare la scritta agendo sulla propriet
Font.
Agendo sulla propriet Font stato visualizzato il pulsante Genera (quello
con i tre puntini), sul quale occorre fare clic per visualizzare una finestra di
dialogo con le relative propriet.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

97

Evento clic
Ora dovremmo associare al pulsante il listato della procedura Colorare, ma
ormai, non siamo pi in un foglio di lavoro: quindi se nel menu contestuale,
richiamato con il clic del tasto destro sul pulsante, cercheremo la voce
Assegna macro, non ne troveremo traccia.
Siamo entrati nella logica della programmazione ad eventi.
Un evento un azione riconosciuta da un oggetto, per la quale possibile
definire una risposta. Esempi di eventi possono essere: il clic del mouse o la
pressione su di un tasto. Un evento pu essere originato dallintervento di
un utente o da una macro.
Nella finestra Progetto fare doppio clic su ModColorare.
Selezionare il codice della macro Colorare, escludendo le righe di
inizio e fine procedura e copiarlo negli Appunti (Modifica\Copia).
Attivare il form Dialogo.
Posizionare il puntatore del mouse sopra il pulsante di comando ed
eseguire un doppio clic.
Apparir un modulo relativo al Form Dialogo, impostato sullevento
Click del pulsante.

Posizionarsi nel corpo della procedura CommandButton1_Click( ) e


incollare il contenuto degli Appunti, cio il listato della macro
Colorare.
Private Sub CommandButton1_Click()
SceltaPopolazione 'Macro in cui digitiamo la popolazione
Range("F5").Select
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then 'se superiore a xxxx
Selection.Interior.ColorIndex = 6 'colora di giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

98

Verifichiamo il funzionamento del nostro operato assicurandoci


che il form Dialogo sia attivo e clicchiamo sul pulsante Esegui
Sub/User Form.

La finestra di dialogo Dialogo, per


quanto un po sgraziata, far la sua
comparsa nel foglio di lavoro. Ma
amara la sorpresa nel constatare che
cliccando sul pulsante Verifica, dopo
aver diligentemente digitato il valore
richiestoci da InputBox, otteniamo
un'unica uniforme pennellata di giallo.

Perch questo errore? Ricordate il discorso delle variabili con la portata


estesa a livello di modulo? Bene, dichiarando la variabile Contenitore
nellarea di dichiarazione dei moduli labbiamo resa disponibile a livello di
tutto il modulo, ma non disponibile fra moduli diversi, come invece
necessita in questo caso.
Occorre rendere la variabile Contenitore disponibile per tutti i moduli della
Cartella, risultato ottenibile sostituendo, nellarea di dichiarazione del
modulo ModColorare, la parola chiave Dim con Public.
Public Contenitore, Contenitore2 As Variant

Pubbliche e Private
Presentando la parola chiave Public, balzer allocchio per analogia che, la
macro CommandButton1 preceduta da Private.
Le procedure in VBA per default sono Public, cio accessibili per tutte le
altre routine in tutti i moduli. Si utilizza la dichiarazione Private per rendere
una procedura accessibile alle sole routine incluse nel modulo di
appartenza.
Si dichiarano le procedure come Private quando si vogliono evitare
indesiderate interferenze fra routine di vari moduli e per risparmiare
preziosa memoria.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

99

Lezione XXI Forms: atto II


Nella precedente lezione abbiamo lasciato il nostro Form un po
incompiuto. Per poterlo vedere in azione, dallEditor abbiamo agito sul
pulsante Esegui Sub/User Form, prospettiva improponibile per un utente
finale.
Dare vita ad un Form
Attivare il foglio di lavoro Comuni.
Eliminare i pulsanti che richiamano le procedure TrovaComune (il
microscopio) e Decolora, cliccandoci sopra con il tasto destro e
scegliendo Taglia.
Fare clic sul pulsante Verifica tenendo premuto il tasto CTRL e
modificare il testo descrittivo in Scegli opzioni.
Attivare lEditor, visualizzare il modulo ModColorare e
posizionarvisi alla fine digitando la seguente procedura:
Sub LanciaDialogo()
Dialogo.Show
End Sub

Ritornare sul foglio Comuni e cliccando con il tasto destro sullo


unico pulsante rimasto, associargli la macro test creata:
LanciaDialogo.

La sintassi per eseguire una finestra di dialogo, come si pu vedere,


estremamente sintetica: nome oggetto, che nel nostro caso il Form
Dialogo, seguito dal metodo Show.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

100

Chiudere un Form
Il Form Dialogo per essere chiuso ci obbliga ad agire sulla X posta sulla
barra del titolo. Volendo porre un pulsante espressamente adibito alla
chiusura del Form, seguiamo i seguenti passi.
NellEditor di VB attivare il Form Dialogo.
Generarci sopra un nuovo pulsante e
denominiamolo Chiudi.
Fare doppio clic sul pulsante test
creato.
Digitare listruzione END nel corpo
della procedura, per ottenere il risultato
visualizzato nel sottostante codice di
esempio.

Private Sub CommandButton2_Click()


End
End Sub

Se poi si vuole che la finestra di dialogo venga chiusa immediatamente


dopo aver eseguito la procedura Colorare, connessa al pulsante Verifica,
aggiungere listruzione End prima dellultima riga.
End
End Sub

Verificate il funzionamento dei due pulsanti.


Aggiungere un altro pulsante
Aggiungiamo un terzo pulsante al Form Dialogo per gestire la
decolorazione.
Nella finestra Progetto dellEditor VB eseguire un doppio clic sul
modulo ModColorare per visualizzarlo.
Selezionare il codice della routine Decolora escludendo la prima e
lultima riga e copiarlo negli Appunti.
Nella finestra Progetto dellEditor VB eseguire un doppio clic sul
Form Dialogo per visualizzarlo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

101

Nella Casella degli strumenti cliccare sul Pulsante di comando e


modellarlo sul Form.
Variare la propriet Caption del nuovo pulsante in Decolora.
Fare doppio clic sul pulsante etichettato Decolora, per visualizzare
un modulo relativo al Form Dialogo, impostato sullevento Click del
pulsante.
Posizionarsi nel corpo della procedura CommandButton3_Click() e
incollare il contenuto degli Appunti, cio il listato della macro
Decolora.
Aggiungere End come ultima istruzione della procedura, cio prima
dellutima riga, per chiudere il Form.

Duplicare i pulsanti
I pulsanti di un Form, in linea di massima, devono avere tutti le stesse
dimensioni, tipo di carattere e cos via. Loperazione di generare il pulsante
etichettato Decolora stata piuttosto lenta e imprecisa, costringendoci a
reimpostare tutte le propriet sul modello del precedente pulsante
etichettato Verifica.
Per evitare una simile trafila, selezionare il pulsante da usare come modello
ciccandoci sopra, quindi premere la combinazione di tasti CTRL+C per
copiarlo negli Appunti, infine cliccare in un punto vuoto qualsiasi del Form
e premere la combinazione di tasti CTRL+V per incollare un clone del
primo pulsante.
A questo nuovo pulsante si dovr cambiare la propriet Caption e a seguito
del doppio clic associare il codice di pertinenza. E abbastanza intuitivo che
con questo sistema riprodurre anche un gran numero di pulsanti tutti uguali,
non rappresenterebbe un problema.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

102

Lezione XXII Allora Se


Questa lezione, grazie anche allapprofondimento della struttura decisionale
If, dedicata a rendere pi flessibile ed interattiva la procedura di
colorazione delle celle.
Chiedere conferma
Prima di eseguire delle modifiche, molte volte, le procedure chiedono
conferma allutente tramite una finestra messaggio.
Per implementare la suddetta modifica seguire i seguenti passi.
Attivare il modulo ModColorare, e portarsi allinizio nellarea
Dichiarazioni ed aggiungere una terza variabile a livello di modulo,
denominata Risul.
Public Contenitore, Contenitore2, Risul As Variant

Successivamente digitare la seguente procedura.


Sub Messaggi1()
Dim Mess, Titolo As String
Mess = "Sei sicuro di voler procedere."
Titolo = "Corso on line di VBA per Excel"
Risul = MsgBox(Mess, vbYesNo + vbQuestion, Titolo)
End Sub

Abbiamo
creato
una
procedura
espressamente dedicata alla gestione di
messaggi per lutente. Posizionando il
cursore in corrispondenza di una riga della
procedura Messaggi1, cliccate sul
pulsante Esegui Sub/ User Form per
visualizzare questa nuova finestra
messaggio.
Notate la presenza di due pulsanti in luogo dellunico esemplare presente
negli altri esempi con MsgBox. Chiaramente i due pulsanti sono generati
dallistruzione vbYesNo. Un altro particolare da non trascurare la
variabile, a livello di modulo, Risul che ricever loutput del pulsante sul
quale lutente avr fatto clic.
Portarsi nel Form Dialogo e cliccare due volte sul pulsante etichettato
Verifica.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

103

Apportare alla Sub CommandButton1_Click le variazioni evidenziate in


grassetto visibili nel codice sottostante.
Private Sub CommandButton1_Click()
SceltaPopolazione
Range("F5").Select
Messaggi1
procedura di visualizzazione messaggio
If Risul = vbNo Then Exit Sub se cliccato sul pulsante No esce
Do While ActiveCell <> ""
If ActiveCell > Contenitore Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
Range("a1").Select
End
End Sub

Se in seguito alla visualizzazione della finestra messaggio, generata dalla


procedura Messaggi1, si clicca sul pulsante NO, la procedura viene subito
terminata. Altrimenti saranno eseguite tutte le istruzioni per colorare le celle
che contengono pi di tot abitanti.
Scegliere un colore
Nella creazione del messaggio di conferma, abbiamo fatto ricorso alla
struttura decisionale If, nella sua forma pi semplice: in realt If pu
esprimere ben altri livelli di strutturazione. Poniamo il caso di voler dare
allutente della nostra applicazione, la possibilit di attingere il colore con
cui formattare le celle da una tavolozza di almeno tre colori: il giallo, il
rosso e il verde. Sappiamo che nellindice della tavolozza dei colori il giallo
corrisponde al 6. Per conoscere il valore corrispondente al rosso e al verde,
registrare una macro che colora due celle rispettivamente dei due colori
desiderati. Il rosso corrisponde al 3 ed il verde al 4.
I Pulsanti di opzione
Ma come fare a dare allutente la possibilit di comunicare alla procedura il
colore da lui preferito? Usando i Pulsanti di opzione!
Attivare il Form Dialogo.
Eventualmente ingrandirlo per facilitare lintroduzione di nuovi
oggetti.
Sulla Casella degli strumenti fare clic sul pulsante Cornice e
modellare il controllo sul Form, tenendo conto che dovr
contenere tre Pulsanti di opzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

104

Dalla Casella degli strumenti scegliere il Pulsante di opzione e


modellarlo allinterno delloggetto Cornice teste introdotto nel
Form.
Ripetere le operazioni del paragrafo precedente per altre due volte.
Modificare, nella finestra Propriet, la propriet Caption del
Pulsante di opzione OptionButton1 in Giallo, ricordando che il
controllo in oggetto deve essere selezionato..
Procedere nel modificare la propriet Caption degli altri due Pulsanti
di opzione, in Rosso e Verde.
Modificare la propriet Caption della Cornice in Colore.
Fare clic sul pulsante Esegui Sub / User Form per verificare il
funzionamento dei Pulsanti di opzione.
I Pulsanti di opzione si escludono reciprocamente, quindi il loro
funzionamento corretto quando uno solo di essi rimane selezionato. Sono
stati introdotti allinterno di una Cornice poich in caso contrario non
funziona lesclusione vicendevole.
Nelleventualit
si
riscontrassero
dei
problemi nel rendere uniforme laspetto dei
Pulsanti di opzione agire sulla propriet
Height (altezza) ed uniformarne il valore.
Occorre poi definire qual il colore
predefinito, che nel caso dellimmagine a lato
il giallo. Per ottenere suddetto risultato,
impostare la relativa propriet Value su True,
controllando che la propriet Value degli altri
due Pulsanti di opzione sia impostata su
False.
IfThenElse IfElseEnd If
NellEditor di VB visualizzare il Form Dialogo e dal menu Visualizza
scegliere la voce Codice, per accedere al modulo del Form. Nellarea di
dichiarazione, cio allinizio del modulo, dimensionare una variabile
denominata Pennello con portata a livello di modulo.
Dim Pennello As Integer

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

105

Quindi digitare la seguente procedura.


Sub ScegliColore()
If OptionButton1.Value = True Then
'se il primo pulsante
Pennello = 6
'giallo
ElseIf OptionButton2.Value = True Then 'altrimenti se il secondo
Pennello = 3
'rosso
Else
'altrimenti il terzo
Pennello = 4
'verde
End If
End Sub

Questa volta la struttura decisionale If ha scelto fra tre possibilit.


Dopo la prima possibilit IfThen passato alla seconda ElseIfThen,
infine lultima con Else senza il Then.
Se invece di avere tre scelte, ne avessimo avute quattro, la terza sarebbe
stata ElseIfThen e la quarta Else.
Infine modificare la procedura CommandButton1_Click legata alla
formattazione delle celle come di seguito riportato.
Private Sub CommandButton1_Click()
SceltaPopolazione
'Macro in cui digitiamo la popolazione
ScegliColore
Macro per scegliere il colore
Range("F5").Select
Messaggi1
Macro per scegliere se controllare
If Risul = vbNo Then Exit Sub
Do While ActiveCell <> "" ' esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then
'se superiore a 9999
Selection.Interior.ColorIndex = Pennello 'colora
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End
End Sub

Dopo la procedura SceltaPopolazione, abbiamo introdotto la procedura


ScegliColore adibita a raccogliere la scelta del colore dai Pulsanti di
opzione.
Per lindicazione del colore da usare con
Selection.Interior.ColorIndex = abbiamo introdotto la variabile Pennello
contenente il valore del colore scelto.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

106

Case
La struttura If ElseIf, consente di nidificare al suo interno altre strutture If o
anche If ElseIf, un po come in Excel nidifichiamo la funzione Se, con la
differenza che in VBA le possibilit sono enormemente pi elevate.
Per se la scelta dovesse avvenire fra molti elementi, una decina per
esempio, la struttura If EsleIf, pur funzionando, non rappresenterebbe
lideale. Se ciascuna istruzione ElseIf esegue un confronto della stessa
espressione con valori diversi, questo approccio risulta complicato. In tal
caso, consigliabile utilizzare listruzione Select Case.
Sub StudioCase()
Dim Numero As Integer
Number = 7
' Inizializza la variabile
Select Case Number
Case 1
' Numero 1
MsgBox "S uno", vbExclamation
Case 6, 7, 8
' Numeri tra 6 e 8
MsgBox "S da 6 a 8", vbExclamation
Case 9 To 12
' Numeri da 9 a 12
MsgBox "S da 9 a 12", vbExclamation
Case Else
'Gli altri numeri
MsgBox "Altro", vbExclamation
End Select
End Sub

Per verificare il funzionamento di questultima procedura, sostituire il


contenuto della variabile Number.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

107

Lezione XXIII Ciclo For Next


Il ciclo For Next (Per Successivo), consente di eseguire un
determinato gruppo di istruzioni, un certo numero di volte. Un ciclo For
un modo sintetico per scrivere un gran numero di istruzioni che fanno
sostanzialmente la stessa operazione.
Osserviamo questo semplice esempio.
Sub Saluti()
Dim Conta As Integer
For Conta = 1 To 5
MsgBox "Ciao"
Next
End Sub

Eseguite questa macro e la finestra messaggio vi saluter per cinque


volte. Se non avessimo usato il ciclo For per ottenere lo stesso risultato
avremmo dovuto scrivere la procedura nel seguente modo.
Sub Saluti()
MsgBox
MsgBox
MsgBox
MsgBox
MsgBox
End Sub

"Ciao"
"Ciao"
"Ciao"
"Ciao"
"Ciao"

Forse lesempio illustrato non rende ancora giustizia alle potenzialit del
ciclo For, ma osservate questaltro listato.
Sub ProvaFor()
Dim Conta, Elabora As Long
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
For Conta = 1 To 5
Elabora = Elabora * 2
Next
MsgBox Elabora
End Sub

La variabile Conta il contatore del ciclo For: ogni volta che il ciclo viene
eseguito la variabile Conta aumenta di uno. Nella prima esecuzione del
ciclo essa conterr uno, nellultima ripetizione, se il ciclo viene ripetuto
cinque volte, conterr cinque.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

108

Il numero di volte che il ciclo viene ripetuto dato dal valore espresso dopo
la parola chiave To, cio il 5.
1 To 5, che pu essere tradotto in : dallinizio (1) alla fine (5).
Quindi la variabile Elabora, che prima dellinizio del ciclo, ha assunto il
valore digitato in InputBox (per facilitare lesposizione dellesempio
poniamo sia 3), assume il valore di se stessa moltiplicata per 2, cio 3*2= 6.
Il ciclo giunge a Next e da inizio alla seconda ripetizione con la variabile
Elabora che avr un valore di 6 e gl i sar assegnato il valore di se stessa
per 2, cio 6*2 = 12.
E cos continuando sino alla quinta esecuzione, ove consegue il risultato di
96, visualizzato nella finestra messaggio.
Ricavare dati da una cella
Il ciclo For pu diventare anche pi flessibile rendendo dipendente il
numero di ripetizioni da una variabile. Invece di avere
1 To 5 , possiamo proporre 1 To NomeVariabile.
Preparare questo nuovo esempio, controllando che nella cartella in cui
stiamo lavorando sia presente un foglio di lavoro denominato Foglio1, e
digitare nella cella A1 il valore 5. Il numero di ripetizioni sar determinato
dal valore presente nella cella A1 del foglio Foglio1.
Nel codice sottostante possiamo vedere che nella riga 3 la variabile
Raccogli, assume il valore della cella A1. Nella riga 5 il numero di
ripetizioni determinato dalla variabile Raccogli.
1: Sub ProvaFor()
2: Dim Conta, Elabora, Raccogli As Long
3: Raccogli = Sheets("Foglio1").Range("a1")
4: Elabora = Application.InputBox("Digita un numero", , , Type:=1)
5:
For Conta = 1 To Raccogli
6:
Elabora = Elabora * 2
7:
Next
8: MsgBox Elabora
9: End Sub

Verificare il funzionamento di questa procedura posizionando il cursore in


un punto qualsiasi di ProvaFor e cliccare sul pulsante Esegui Sub. Noterete
che cambiano il valore della cella A1 in Foglio1 cambier il risultato finale.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

109

Errore di Overflow
Ma in agguato c un
errore. Provate a
digitare 1020 in A1 e
20 in InputBox. Far
la sua comparsa una
finestra di dialogo
comunicante
un
errore di Overflow.
Un Overflow pu
essere il risultato di
un'assegnazione
superiore al valore massimo previsto. Inseriamo nella nostra procedura la
gestione degli errori, come visto nelle precedenti lezioni.
Sub ProvaFor()
Dim Conta, Elabora, Raccogli As Long
Raccogli = Sheets("Foglio1").Range("a1")
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
On Error GoTo Salta
For Conta = 1 To Raccogli
Elabora = Elabora * 2
Next
MsgBox Elabora
Exit Sub
Salta:
MsgBox "Numeri troppo alti"
End Sub

Proteggere e sproteggere
Molte volte si deve lavorare con cartelle di lavoro contenenti un gran
numero di fogli, che per esigenze procedurali dobbiamo consegnare
allutente finale protetti. Durante la lavorazione e successivi aggiornamenti
si dovr procedere alla protezione e sprotezione dei fogli di lavoro pi
volte, attivit decisamente lunga e noiosa, anche perch non effettuabile in
multifoglio.
Le due procedure qui di seguito riportate proteggono e sproteggono tutti i
fogli di una cartella di lavoro in un battibaleno, inserendo anche una
password, che naturalmente pu essere variata a piacere.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

110
Sub Proteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Protect Password:="lilli"
Next
Worksheets(1).Select
End Sub
Sub Sproteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Unprotect Password:="lilli"
Next
Worksheets(1).Select
End Sub

Rispetto agli esempi precedenti sono presenti I seguenti elementi di


innovazione.
spro = Worksheets.Count

La propriet C ount restituisce il numero di fogli di lavoro presenti in una


cartella di lavoro.
Worksheets(fog).Select

Un foglio di lavoro, oltre che dal nome individuabile dalla posizione che
occupa nella cartella di lavoro, quindi Worksheets(1) rappresenta il primo
foglio di lavoro. Nel nostro caso Worksheets(fog) , il luogo del valore c la
variabile fog . Se alla variabile fog viene associato il valore 1, indicher il
primo foglio, associandogli 2, il secondo foglio e cos via.
ActiveSheet.Protect

Ovviamente protegge il foglio di lavoro attivo, mentre Unprotect lo


sprotegge. E possibile omettere listruzione Password, in tal caso la
protezione avverr senza nessuna parola segreta.
Utilizzando InputBox anche possibile permettere allutente di
personalizzare la password.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

111

Lezione XXIV Nidificare For Next


Un ciclo ForNext pu essere inserito allinterno di un altro ciclo
ForNext, operazione comunemente definita nidificazione.
Per mettere in pratica questa potente possibilit offertaci dal VBA,
creeremo una routine che automaticamente ordiner i fogli di lavoro di una
cartella.
Il codice di ordinamento
Il listato sottostante, piuttosto astruso ad una prima occhiata, ordina
alfabeticamente tutti i fogli di una cartella di lavoro.
Sub OrdinaFogli()
Dim ordina As Integer, ordfog As Integer
For ordina = 1 To Sheets.Count
For ordfog = 1 To Sheets.Count 1
If Sheets(ordfog).Name > Sheets(ordfog + 1).Name Then
Sheets(ordfog).Move after : =Sheets(ordfog + 1)
End If
Next ordfog
Next ordina
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

112

For ordina = 1 To Sheets.Count

For ordfog = 1 To Sheets.Count 1

If Sheets(ordfog).Name >
Sheets(ordfog + 1).Name Then

Sheets(ordfog).Move after :
=Sheets(ordfog + 1)
End If
Next ordfog
Next ordina

Esegue il ciclo For per il numero di fogli presenti


nella Cartella di lavoro. Tale valore determinato
dallistruzione Sheets.Count che conta il n di fogli
presenti nella cartella. Count una propriet che
restituisce il numero degli oggetti presenti in un
insieme.
Questo secondo ciclo For esegue la medesima
operazione del precedente, ma una volta in meno.
Nella prima esecuzione del ciclo For il
Foglio(ordfog), cio il primo della cartella viene
confrontato con il secondo foglio della Cartella, e se
alfabeticamente successivo (>) vengono eseguite le
istruzioni della riga sottostante. Nella seconda
esecuzione del ciclo For, il confronto avverr fra il
secondo e il terzo foglio e cos via.
Queste istruzioni vengono eseguite se la condizione
della riga precedente VERA. I due fogli vengono
invertiti di posizione, per ordinarli alfabeticamente.
Fine condizione
Fine del secondo ciclo For, con l'istruzione Next
(successivo) viene ripetuto.
Fine del primo ciclo For, con l'istruzione Next
(successivo) viene ripetuto.

La sintassi di questa procedura abbastanza semplice, quello che


probabilmente risulta un po ostico da intuire il perch occorrono due cicli
For, cio la loro nidificazione. Illustriamo il risultato dell'esecuzione della
procedura OrdinaFogli dopo aver disabilitato il primo ciclo For.

Nell'immagine
a sinistra
vediamo i fogli
di una cartella
da ordinare di
una cartella.

Nell'immagine a
destra la stessa
Cartella dopo
l'esecuzione della
procedura
OrdinaFogli con il
primo ciclo For
disabilitato.

Un poco di ordine stato fatto, ma non a sufficienza! Praticamente con


l'esecuzione del secondo ciclo For stato messo a posto solo il primo foglio
della cartella. Soltanto riabilitando il primo ciclo For il secondo ciclo sar
eseguito per il numero di volte corrispondente al numero dei fogli, in modo
tale che ad ogni esecuzione del primo ciclo For il secondo ciclo For mette
in ordine un foglio della Cartella di lavoro.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

113

PARTE 4
Controllare Excel
Una delle grandi prerogative del VBA, la possibilit di creare nuove
funzioni da affiancare alle funzioni incorporate di Excel, di manipolare e
spostare dati, di determinare le opzioni di apertura di una cartella, di
eliminare la comparsa di messaggi di avvertimento; insomma, di assumere
il controllo di Excel.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

114

Lezione XXV Le Function

Tipi di routine
In Visual Basic, quindi VBA, possibile creare due tipi di routine, ovvero
la gi ampiamente sperimentata Sub e la routine Function.
La routine Sub ununit di codice racchiusa tra le istruzioni Sub e End Sub
che esegue delle operazioni, senza restituire alcun valore.
Una routine Function ununit di codice racchiusa tra le istruzioni
Function e End Function che esegue unoperazione specifica restituendo un
valore.
Le routine Function possono essere utilizzate in sostituzione di formule
complesse, direttamente nei fogli di lavoro, proprio come si utilizzano le
funzioni incorporate di Excel.
Creare una nuova funzione per Excel
Grazie alle formule di Excel, riusciamo a risolvere problemi veramente
complessi. Purtroppo, a volte, determinati problemi risultano essere
superiori al nostro retroterra culturale. Ad esempio, personalmente non
capisco assolutamente niente di finanza, quindi non sarei in grado di
calcolare limporto delle singole rate mensili, derivanti dal finanziamento
chiesto ad una banca per acquistare unauto. Fortunatamente Excel ci mette
a disposizione la funzione Rata, cos il problema risolto in poche battute
sulla tastiera.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

115

Come si pu vedere nellimmagine, la finestra di dialogo Incolla funzione


raccoglie un bel numero di Categorie, le quali a loro volta, contengono una
ulteriore ricca scelta di funzioni. Ma, il destino birbone, state tranquilli, far
in modo che la funzione per voi, in quel momento indispensabile, non sia
contemplata nella pur ricca collezione di Excel.
Ed proprio qui che entrano in ballo le routine di tipo Function.

Analisi del problema


Attenzione! Si presuppone che, se pensiamo di creare una funzione per
aiutare lutente, o anche noi stessi, il problema da affrontare sia dotato di
una discreta complessit. E quindi, indispensabile effettuare una accurata
analisi delle problematiche da affrontare e del come risolverle.
Il pretesto preso per il nostro esempio, attinge la sua ispirazione da una
forma di lavoro che sempre pi si sta diffondendo, soprattutto fra i pi
giovani: la collaborazione coordinata e continuativa. In molti si saranno
scoraggiati di fronte alla complessit del calcolo della ritenuta dacconto e
delle ritenute previdenziali, cos da lasciare una parte dei propri, non gi
lauti guadagni, nelle tasche di qualche commercialista.

Come trovare limporto netto


Illustreremo adesso i passi occorrenti, per ricavare dallimporto lordo, la
corrispondente cifra netta, utilizzando i criteri di calcolo validi sino al
31/12/2000.
A titolo esemplificativo partiamo da un importo lordo di un milione.
Rispetto la cifra di partenza, un milione, occorre calcolare il 20% a
titolo di ritenuta dacconto.
Sempre dalla cifra lorda, un milione, calcolare il 95% per ricavare
limponibile (la cifra) sul quale calcolare i contributi previdenziali.
Laliquota previdenziale nel 2000 era del 13% o del 10%, di cui la
quota a carico del lavoratore corrispondeva ad un terzo .
Nel foglio elettronico, scegliendo per semplicit la laliquota previdenziale
del 10%, la formula per ottenere limporto netto la seguente.
=1000000*0,8-1000000*0,95*0,1*0,333333333333333

Teoricamente si tratta di una formula piuttosto semplice, ma ne illustriamo


ugualmente alcuni passaggi salienti.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

116

La prima parte del calcolo consiste nel calcolare il compenso epurato dal
20% della ritenuta di acconto e che i pi svolgono in questo modo:
1000000-(1000000*20%)

anche se in realt abbreviabile nel seguente a lgoritmo:


1000000*0,80

Un secondo passaggio degno di nota riguarda lo scrivere 1/3. Nella formula


lo si vede rappresentato da un 0,333333333333333, ma in realt stato
digitato proprio come un terzo (1/3). I pi attenti avranno sgranato gli
occhi,sapendo che se in un foglio di Excel si scrive 1/3, questi viene
riconosciuto come 1 marzo. Per far metabolizzare ad Excel un valore
frazionario si deve procedere nel seguente modo:
Digitare uno zero (0), premere spazio (barra spazio) , infine digitare 1/3.
Se qualcuno si stupito per lassenza di parentesi nella formula, non
dimentichi la regola della precedenza fra operatori aritmetici.
CompensoNetto
Passiamo alla creazione della funzione. Attiviamo un modulo e digitiamo il
seguente codice.
Function CompensoNetto(Lordo, Ritenuta, CTR)
Dim Netto, LordoXCTR, CTRLavor As Long
Netto = Lordo - Lordo * Ritenuta
LordoXCTR = Lordo * 0.95
CTRLavor = LordoXCTR * CTR / 3
CompensoNetto = Netto - CTRLavor
CompensoNetto = Round(CompensoNetto, 0)
End Function

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

117

Function CompensoNetto(Lordo,
Ritenuta, CTR)

Netto = Lordo - Lordo * Ritenuta

LordoXCTR = Lordo * 0.95

CTRLavor = LordoXCTR * CTR / 3

CompensoNetto = Netto - CTRLavor

CompensoNetto =
Round(CompensoNetto, 0)
End Function

CompensoNetto il nome della funzione. I nomi


inseriti fra le parentesi sono gli argomenti della
funzione, utilizzabili allinterno della funzione come
variabili predefinite.
Lordo = corrisponde al compenso lordo
Ritenuta = corrisponde alla ritenuta d'acconto (20%)
CTR = corrisponde al CTR del 10% o del 13 %.
Netto il nome della variabile che assume il valore
ottenuto dalla sottrazione della variabile Lordo, meno
il valore ottenuto dalla variabile Lordo per la variabile
Ritenuta.
Es. Se Lordo = 1.000.000 e Ritenuta 20% sar
eseguito il seguente calcolo: 1.000.000 - 1.000.000 *
20% = 800.000
LordoXCTR la variabile che assume il valore
ottenuto dalla variabile Lordo * 95%, cio
l'imponibile sul quale calcolare i CTR
Es. Sar eseguito il seguente calcolo: 1.000.000 * 95%
= 950.000
CTRLavor la variabile che assume il valore
ottenuto dalla variabile LordoXCTR moltiplicato per
il valore della variabile CTR diviso per 3, cio la
quota di CTR a carico del consulente.
Es. Se CTR = 10% sar eseguito il seguente calcolo:
950.000 * 10% / 3 = 31.666
CompensoNetto la variabile e il nome della
funzione che assume il risultato finale, ottenuto
sottraendo dalla variabile Netto la variabile
CTRLavor .
Es. Sar eseguito il seguente calcolo:
800.000 - 31.666 = 768.334
In questa riga viene arrotondato il risultato con
lausilio della funzione Round.
Fine della funzione.

A questo punto siamo pronti ad utilizzare CompensoNetto in un foglio di


lavoro, come una qualsiasi funzione. Ad esempio se nella cella A1
contenuto il valore 1.000.000 corrispondente al compenso lordo, in A2
troviamo 20% equivalente alla ritenuta d'acconto e in A3 10%
corrispondente al CTR previdenziale, si potr in una cella libera qualunque
inserire le seguenti istruzioni: =CompensoNetto( A1; A2; A3 ) per
ottenere il compenso netto del collaboratore.
Ricordatevi, se volete rendere la funzione utilizzabile in tute le cartelle di
lavoro, di collocarla nella cartella di lavoro speciale Personal.xls.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

118

Lezione XXVI Manipolare i dati


Molte volte, siamo chiamati ad operare elaborazioni su dati, provenienti da
altre applicazioni, che si presentano, come dire, inquinati. Diventa
fondamentale bonificarli togliendo caratteri superflui, spazi e altre
eventuali imperfezioni.
Costruire lesempio
In tutte le celle, relative alla colonna dei Comuni,
inseriamo uno spazio vuoto e il CAP. Per realizzare
tali condizioni attenersi ai seguenti passi.
Innanzi tutto, per sicurezza, duplichiamo il foglio Comuni.
o Con il puntatore del mouse portarsi sulla scheda del foglio
Comuni, tenere premuto CTRL, tenere premuto il tasto
sinistro del mouse e spostarsi un po pi a destra per generare
il foglio Comuni(2), clone perfetto di Comuni.
Nel foglio Comuni(2) attivare la cella G5, digitarvi la formula
=A5& &B5 trascinandola sino alla corrispondenza dellultima
riga con dati, la 319.
Premere la combinazione di tasti CTRL+C per copiare negli Appunti
la colonna, ancora selezionata, di dati test generata.
Posizionarsi in A5 e dal menu Modifica scegliere Incolla speciale.
Dalla finestra di dialogo Incolla speciale scegliere Valori e
confermare ciccando su OK.
Cancellare i dati della colonna G ed eliminare la colonna B, quella
del CAP, sino ad ottenere il risultato illustrato nellimmagine.

Naturalmente, anche senza ricorrere al VBA, sarebbe possibile con le


funzioni di Excel, ripulire i nomi dei comuni dallo spazio vuoto e dal CAP:
ma occorre ricordarsi che un utente avanzato opera per creare agli altri
utenti un ambiente software pi amichevole, dotato di tutti gli agi portati
dallautomatismo.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

119

Funzioni Len e Left


NellEditor di VBA, agendo sul menu Inserisci, aggiungere un nuovo
modulo, quindi digitarvi il codice di seguito illustrato.
1: Sub Pulisci()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6:
bb = Len(ActiveCell) 6
7:
aa = Left(ActiveCell.Cells, bb)
8:
ActiveCell.Offset(0, 6).Range("A1").Select
9:
ActiveCell = aa
10:
ActiveCell.Offset(1, -6).Range("A1").Select
11: Loop
12: Trasporta
13: Range("a1").Select
14: End Sub
Range("a5").Select
Do While ActiveCell <> ""

bb = Len(ActiveCell) 6

aa = Left(ActiveCell.Cells, bb)

ActiveCell.Offset(0, 6).Range("A1").Select
ActiveCell = aa
ActiveCell.Offset(1, -6).Range("A1").Select
Loop
Trasporta

Si posiziona sulla prima cella con dati


Ripete le istruzioni successive per fermarsi
quando incontra una cella vuota.
La variabile bb assume il risultato della
funzione Len che conta il numero di
caratteri del testo inserito nella cella attiva
meno 6. Sei composto dai 5 caratteri del
CAP + lo spazio. Quindi sottraendo alla
lunghezza complessiva della stringa 6,
veniamo a sapere di quanti caratteri
composto il nome del comune contenuto in
quella cella.
La variabile aa assume il valore della
funzione Left, che restituisce un numero
specificato di caratteri partendo da sinistra,
contenuti nella cella attiva. Il numero di
caratteri che preleva dato dalla variabile
bb.
Si sposta a destra di 6 celle.
La cella attiva assume il valore della
variabile aa.
Scende di una cella e torna a sinistra di sei
celle.
Ripetere.
Finito il ciclo Do While, esegue il listato
della procedura Trasporta.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

120
Sub Trasporta()
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste
End Sub

Si posiziona sulla cella G5, la prima


Range("G5").Select
della nuova colonna, appena creata da
Pulisci.
Range(Selection, Selection.End(xlDown)).Select Seleziona tutte le celle contenenti dati.
Taglia.
Selection.Cut
Seleziona la cella A5.
Range("A5").Select
Incolla il contenuto della colonna G.
ActiveSheet.Paste

Riepiloghiamo lazione della procedura Pulisci, coadiuvata dalla procedura


Trasporta.
La procedura Pulisci, grazie allausilio del ciclo Do..While passa in
rassegna tutte le celle contenenti i nomi dei comuni, sporcati dal CAP.
Quindi avvalendosi delle funzioni Len e Left estrae il nome pulito del
comune che sposta sei celle a destra, cio nella colonna G. A questo punto
entra in azione la procedura Trasporta che seleziona lintero intervallo di
nomi ripuliti, li Taglia via, per andare ad incollarli in sostituzione dei dati
originali.
Ottimizzare
Ma vediamo che con un po di spirito dosservazione possiamo ottimizzare
il codice della procedura Pulisci.
1: Sub Pulisci2 ()
2: Dim aa As String
3: Dim bb As Integer
4: Range("a5").Select
5: Do While ActiveCell <> ""
6:
bb = Len(ActiveCell) - 6
7:
aa = Left(ActiveCell.Cells, bb)
8:
ActiveCell = aa
9:
ActiveCell.Offset(1, 0).Range("A1").Select
10: Loop
11: Range("a1").Select
12: End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

121

Sino al punto 7 la procedura Pulisci e la procedura Pulisci2, sono identiche,


ma nel punto 8 abbiamo la svolta!
In realt basta associare subito il risultato della variabile aa alla cella attiva.
Avendo entrambe le procedure sotto gli occhi pu sembrare evidente
lerrore commesso con la prima routine: in realt estremamente facile
commettere simili sviste e creare procedure che, vero, funzionano, ma con
mille contorcimenti, creando alla lunga dei rallentamenti nellesecuzione
del codice non indifferenti.
Passare i dati ad un nuovo foglio
La procedura PulisciSposta, qui di seguito riportata, pressoch identica a
Pulisci2 sino al punto 12, salvo alla riga 4, ove per essere sicuri che la
macro sia eseguita nella giusta locazione, stato indicato il foglio sul quale
eseguire le operazioni di pulizia.
1: Sub PulisciSposta()
2: Dim aa As String
3: Dim bb As Integer
4:
Sheets("Comuni").Select
5:
Range("a5").Select
6:
Do While ActiveCell <> ""
7:
bb = Len(ActiveCell) - 6
8:
aa = Left(ActiveCell.Cells, bb)
9:
aa = LTrim(aa)
10:
ActiveCell = aa
11:
ActiveCell.Offset(1, 0).Range("A1").Select
12:
Loop
13:
Range("a4").Select
14:
Range(Selection, Selection.End(xlDown)).Select
15:
Selection.Copy
16:
Sheets.Add
17: On Error GoTo salta
18:
ActiveSheet.Name = "Arrivo"
19:
Range("a4").Select
20:
ActiveSheet.Paste
21:
Columns.AutoFit
22:
Range("a1").Select
23:
Exit Sub
24: salta:
25:
MsgBox "Il foglio Arrivo " & vbCr & _
26:
" gi presente", vbCritical
27: End Sub

Commentiamo le successive istruzioni.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

122

Range("a4").Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add
On Error GoTo salta
ActiveSheet.Name = "Arrivo"
Range("a4").Select
ActiveSheet.Paste
Columns.AutoFit
Range("a1").Select
Exit Sub
salta:

MsgBox "Il foglio Arrivo " & vbCr & _

" gi presente", vbCritical

Si posiziona sulla prima cella della


colonna dati.
Seleziona lintera colonna di dati:
corrisponde alla combinazione di tasti
CTRL+SHIFT+ .
Copia la selezione negli Appunti.
Aggiunge un foglio di lavoro.
In caso di errore si sposta alletichetta
salta.
Rinomina il foglio appena inserito.
Seleziona A4 del foglio Arrivo.
Incolla dagli Appunti la selezione
precedentemente copiata.
Autodimensiona la larghezza della
colonna alla cella contenente il nome di
comune pi lungo.
Seleziona la cella A1.
Esce dalla procedura per evitare di
eseguire le istruzioni relative allerrore.
Etichetta a cui saltano le istruzioni in
caso di errore,
Messaggio di avvertimento, basato sul
pi probabile errore che potrebbe
capitare, cio il foglio Arrivo gi
presente nel momento che la procedura
nella riga 18 cerca di rinominare il foglio
appena aggiunto in Arrivo.
E interessante notare come nella riga
precedente stata usata la costante vbCr
per mandare a capo in un punto
determinato il testo del messaggio.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

123

Pulire solo se
Ipoteticamente potremmo voler applicare la bonifica dei nomi soltanto se
questi rientrano in determinate condizioni: ad esempio, solo quando hanno
una popolazione inferiore ai 1000 abitanti o superiore ai 10000.
1: Sub Pulisci3()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6::
ActiveCell.Offset(0, 4).Range("A1").Select
7:
If ActiveCell < 1000 Or ActiveCell > 10000 Then
8:
ActiveCell.Offset(0, -4).Range("A1").Select
9:
bb = Len(ActiveCell) - 6 e sottrae
10:
aa = Left(ActiveCell.Cells, bb)
11:
ActiveCell = aa
12:
ActiveCell.Offset(1, 0).Range("A1").Select
13:
Else
14:
ActiveCell.Offset(1, -4).Range("A1").Select
15:
End If
16: Loop
17: Range("a1").Select
18: End Sub

Sino al punto 5 la procedura Pulisci3 identica alla precedente.


ActiveCell.Offset(0, 4).Range("A1").Select
If ActiveCell < 1000 Or ActiveCell > 10000
Then
ActiveCell.Offset(0, -4).Range("A1").Select
Dal punto 9 al punto 12
Else
ActiveCell.Offset(1, -4).Range("A1").Select
End If

Si sposta verso la quarta cella a destra,


cio la popolazione.
If si avvale delloperatore OR per
definire le due condizioni in base alle
quali operare la ripulitura.
Se soddisfatte ritorna alla cella del
comune.
Esegue la ripulitura e scende di una
cella.
Altrimenti, se non soddisfatte.
Scende di una cella e torna ai comuni,
senza effettuare nessuna ripulitura.
Fine della struttura di controllo If

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

124

Lezione XXVII Auto_Apri_Chiudi


Anche se in questo corso non stato previsto affrontare temi relativi alluso
della grafica in Excel, innegabile che la creazione di un buon programma
sia legato alla cura posta nella sua interfaccia grafica.
In queste lezioni dedicheremo spazio a quelle istruzioni VBA che
permettono di valorizzare laspetto dei nostri programmi, di personalizzarli,
di renderli pi usabili, sicuri e automatizzati.

Auto_Apri
Avrete notato, che se si salva una cartella di lavoro con attivo il Foglio2,
posizionato nella cella Z100, alla successiva riapertura questa si presenter
con il Foglio2 in Z100.
Peccato! Magari avevate previsto una bella pulsantiera nel Foglio1 e per
rendere guidata la navigazione allinterno della cartella , avevate anche
tolto le Schede indicatrici dei fogli.
Fortunatamente il VBA mette a disposizione una procedura speciale che
permette di indicare con precisione le azioni che Excel deve compiere in
fase di apertura della cartella di lavoro.
Il trucco consiste nel dare alla procedura il nome di Workbook_Open.
Sub Workbook_open()
MsgBox Ciao
End Sub

E di inserirla
ThisWorlbook.

nel

modulo

speciale

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

125

Auto_Chiudi
E molto probabile che anche in fase di chiusura della cartella di lavoro, si
vogliano eseguire automaticamente alcune operazioni, fosse solo il
ripristinare i settagli modificati in fase di apertura.
Tale procedura dovr assumere il nome di Workbook_BeforeClose(Cancel
As Boolean). Anche in questo caso la procedura dovr dimorare allinterno
del modulo ThisWorkbook.
Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox Arrivederci
End Sub

Un po di storia
Ogni tanto si vedono delle procedure di apertura e di chiusura chiamate
rispettivamente Auto_Open e Auto_Close. Si tratta di macro risalenti alle
versioni 5 e 7 di Excel, ormai tollerate dal VBA per esigenze di
compatibilit, ma non certamente amate: quindi non usatele.
A proposito nelle versioni di Excel 5 e 7, era prevista la versione del VBA
in italiano e le macro di apertura e di chiusura automatica, erano
denominate Auto_Apri e Auto_Chiudi.
Istruzioni varie
Vengono adesso presentate una serie di istruzioni, che possono essere
utilizzate sia allinterno delle due procedure di apertura, di chiusura, o di
altre macro.
Personalizzare la barra del titolo della cartella di lavoro.
Application.Caption = Corso di VBA on line

In chiusura, salva la cartella attiva senza chiedere conferma.


ActiveWorkbook.Save

Chiude la cartella di lavoro senza salvare le modifiche


ActiveWorkbook.Saved = True

Impostando la propriet Saved su True un po come ingannare Excel,


dicendogli che la cartella gi stata salvata, anche se non vero.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

126

Non visualizza la finestra di dialogo di conferma: per spiegarci


meglio, quella che compare quando si vuole eliminare un foglio di
lavoro.
Application.DisplayAlerts = False

Per ripristinarla sostituire False con True. E importante ricordarsi di


ripristinare la visualizzazione del messaggio di conferma; pu essere molto
pericolosa la mancanza di un elemento con il quale gli utenti sono abituati
ad interagire.
Disattiva laggiornamento dello schermo durante lesecuzione di una
macro.
Application.ScreenUpdating = False

E importante inserire sempre listruzione di ripristino dellaggiornamento


impostando la propriet ScreenUpdating siu True.
Aprire un file di Excel.
Workbooks.Open FileName:="C:\Documenti\Comuni.xls"

Esempi di Auto_Apri e Auto_Chiudi


Il listato illustra un esempio di utilizzo della procedura di apertura
automatica, discretamente articolato.
Sub Workbook_open()
With Application
.ScreenUpdating = False
Disattiva laggiornamento dello schermo
.DisplayFormulaBar = False
Toglie la barra della formula
.DisplayStatusBar = False
Toglie la barra di stato
End With
With ActiveWindow
.DisplayHorizontalScrollBar = False Toglie la barra di scorrimento orizzon.
.DisplayVerticalScrollBar = False
Toglie la barra di scorrimento vertic.
.DisplayWorkbookTabs = False
Toglie le schede indicanti I fogli
End With
ActiveWindow.WindowState = xlMaximized
Excel a tutto schermo
Application.Caption = " Corso di VBA on line"
Sheets("Comuni").Select
Si apre sul foglio Comuni
Range("a1").Select
Application.ScreenUpdating = True
Ripristina laggiornamento dello schermo
End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

127

E importante in chiusura, ripristinare gli elementi di Excel che sono stati


modificati o eliminati in fase di apertura.

Sub Workbook_BeforeClose(Cancel As Boolean)


With Application
.ScreenUpdating = False
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
End With
Application.Caption = Empty
'Svuota la barra del titolo
ActiveWorkbook.Saved = True
Application.ScreenUpdating = True
End Sub

Proteggere
Se volete essere sicuri che nessuno modifichi il vostro lavoro, o peggio
faccia dello sciacallaggio, proteggete il codice delle macro.
Portarsi nellEditor di VB.
Dal menu Strumenti scegliere la voce Propriet di VBAProject .
Attivare la scheda Protezione.
Mettere il flag su Proteggi progetto dalla visualizzazione.
Inserire la password e confermare ciccando su OK.

Nota: Non fate troppo affidamento su questo tipo di protezione, nella rete sono
reperibili dei programmi che decriptano facilmente le password dei progetti
VBA.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

128

Lezione XXVIII I macro virus


I virus informatici, "grazie al cielo", non sono mai stati una razza che ha
corso il rischio di estinguersi, ma in questi ultimi tempi, con il proliferare
incontrollato dei macro virus, incominciamo a sentire il bisogno di
effettuare un abbattimento "selettivo", per evitare danni eccessivi
all'ambiente dei nostri pc.

Come difendersi
La prima regola in assoluto quella di essere dotati di un antivirus
aggiornato. Si noti che un aggiornamento efficace deve avere una cadenza
minima mensile, meglio se settimanale.
Scandire sempre i nuovi documenti di Word, Excel, Power Point ed Access,
sia che provengano da supporti magnetici tipo floppy o CD-ROM, che da
posta elettronica. Pu essere brutto a dirsi, ma non fidatevi di nessuno.
Word ed Excel sono dotati di una procedura che riconosce e segnala in fase
di apertura l'eventuale presenza di una macro nel documento. Alcuni utenti
infastiditi da tale segnalazione, che avviene anche per macro non infette, la
disabilitano. Non fatelo assolutamente!
Per ripristinare la procedura di protezione da macro virus, dal menu
Strumenti di Excel, scegliere Macro\Protezione e impostarla su Media.
Nota: La protezione da macro virus stata introdotta con Office 97 e a seconda della
versione e dellapplicativo, pu presentare delle piccole differenze nelle
impostazioni di disabilitazione e riabilitazione.

Scrivere una macro, abbiamo visto nel nostro corso, non molto difficile,
ma sono ugualmente pochi quelli che sono capaci di farlo e anche quelli in
grado di scriverne non necessariamente le creano: quindi se all'apertura di
una cartella di Excel, o peggio di un documento di Word, vi viene segnalata
la presenza di una macro e non vi stato comunicato che effettivamente
doveva esserci, non attivatela.
Se avete attivato una macro, dopo l'avvertimento della sua presenza e al
successivo riavvio di quel documento, l'avviso non vi viene pi proposto,
siete sicuramente "infetti".

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

129

Difesa artigianale
Dalle osservazioni del paragrafo precedente si ricava una idea semplice, ma
abbastanza efficace per trovare i macro virus.
Reperire un file di Excel contenente una macro, possibilmente non
infetta, e copiarlo su un dischetto protetto da scrittura.
Inserire il floppy nel lettore del PC sospetto e lanciare il file di
Excel.
Se la procedura di rilevamento macro entra in funzione, probabilmente la
macchina sana, altrimenti il dado tratto, siete infestati.
Per toccare con "mano" l'entit virale r ichiamate dal menu Strumenti\Macro
l'Editor di Visual Basic e qui se siete abbastanza smaliziati, potete anche
provare a estirpare a "mani nude" il maligno.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

130

Appendici
In questa sezione finale del corso, presentiamo alcune realizzazioni
probabilmente ritenute inconsuete per Excel.
Probabilmente dopo averle visionate vi chiederete che cosa non possibile
fare con il nostro foglio elettronico.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

131

Unanimazione con Excel


Una delle idee pi deleterie che pu circolare su Excel, quella di crederlo
un programma per rigidi contabili. Nulla di pi falso!
In piena era internettiana imperversano programmi tipo Flash, che
sembrano gli unici a poter offrire grafica ed animazioni. In realt anche il
nostro foglio elettronico in grado, anche se un po timidamente, di dire la
sua in fatto di animazioni.
Costruiremo una piccola animazione per misurare le prestazioni
del nostro PC.
Procuriamoci una piccola immagine a piacere, ad esempio un
ciclista. Lidea di far scendere il ciclistino di una ventina di
celle e di farlo risalire al punto di partenza, dando limpressione
della pedalata. Per ottenere un simile effetto occorre una seconda
immagine speculare del ciclista, facilmente ottenibile con un
programma di grafica, tipo Paint Shop Pro.
La nostra procedura dovr fare in modo che mentre le due
immagini scendono lungo il foglio, siano alternativamente visibili
per dare appunto limpressione della pedalata.
Inseriamo le due immagini allinizio di un foglio, facendo
attenzione a sovrapporle con precisione, quindi, se le immagini
sono su sfondo bianco, come quelle del nostro esempio, colorare il
foglio di lavoro di bianco.
Passare nellEditor Di VB e digitare il codice della procedura
CorsaCiclista.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

132

Il codice
1: Sub CorsaCiclista()
2:
Dim VarDisegno As Picture
3:
Dim ContCorsa, Contatore, risul As Integer
4:
Dim VelocitPc As Variant, Mess, tit As String
5:
Sheets("Corsa").DrawingObjects("Picture 1").BringToFront
6:
Mess = "Confermando verr eseguita un'animazione la" & Chr(13) & _
7:
"cui esecuzione potrebbe risultare eccessivamente" & Chr(13) & _
8:
"lunga con PC non molto potenti."
9:
tit = "Corso di VBA on line"
10: risul = MsgBox(Mess, vbYesNo, tit)
11: If risul = vbNo Then
12:
Range("a1").Select
13:
Exit Sub
14:
End If
15:
VelocitPc = Timer
16:
For ContCorsa = 1 To 144
17:
With Sheets("Corsa").DrawingObjects("Picture 1")
18:
.Visible = True
19:
.Top = .Top + 2
20:
.Visible = False
21:
End With
22:
With Sheets("Corsa").DrawingObjects("Picture 2")
23:
.Top = .Top + 2
24:
.Visible = True
25:
End With
26:
Next
27:
For ContCorsa = 1 To 73
28:
With Sheets("Corsa").DrawingObjects("Picture 1")
29:
.Visible = True
30:
.Top = .Top - 2.5
31:
.Visible = False
32
End With
33:
With Sheets("Corsa").DrawingObjects("Picture 2")
34:
.Visible = True
35:
.Top = .Top - 2.5
36:
End With
37:
Next
38:
With Sheets("Corsa").DrawingObjects("Picture 1")
39:
.Visible = True
40:
End With
41:
MsgBox (Timer - VelocitPc) & " Secondi"
42: End Sub

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

133

Sheets("Corsa").DrawingObjects("Picture Nel foglio Corsa, la prima immagine del


ciclista, Picture 1, deve essere in primo piano.
1").BringToFront
Dal punto 6 al punto 14
VelocitPc = Timer
For ContCorsa = 1 To 144
With Sheets("Corsa").DrawingObjects
("Picture 1")
.Visible = True
.Top = .Top + 2
.Visible = False
End With
With Sheets("Corsa").DrawingObjects
("Picture 2")
.Top = .Top + 2

Con una finestra messaggio chiediamo conferma


per continuare o meno la procedura.
Associa alla variabile la misurazione del tempo
data dalla funzione Timer.
Ripete le operazioni successive per 144 volte.
Con loggetto Picture 1
Imposta la propriet di visibile su vero.
Sposta in basso loggetto di due punti.
Rende invisibile limmagine del primo ciclista e
cos rimane visibile la seconda immagine.
Fine enunciato Con.
Passa alla seconda immagine.

E la sposta in basso di due punti.


Confermandone la visibilit.
.Visible = True
Fine enunciato Con.
End With
Ripete da capo il ciclo. Quindi, mentre visibile
, fa scendere di due punti il primo ciclista e lo
nasconde. A questo punto passa al secondo
Next
ciclista, che non pi coperto dal primo ciclista,
scende a sua volta di due punti. Ricompare il
primo ciclista e per 144 volte.
Esegue le operazioni di risalita, che avendo un
ciclo ripetuto meno volte e spostamenti pi
Dal punto 27 al punto 37
lunghi pi rapido della discesa.
Terminata lanimazione rende visibile la prima
With Sheets("Corsa").DrawingObjects
immagine.
("Picture 1")
Visualizza il tempo impiegato a percorrere il
MsgBox (Timer - VelocitPc) & " Secondi"
giro del foglio.

Nota: Ad essere scrupolosi, DrawingObjects un oggetto nascosto, perch ormai


considerato obsoleto.

Certo, i ragionieri continueranno ad usare Excel per la grigia contabilit


aziendale, ma magari, con langolo della bocca piegato verso lalto, ad
abbozzare un tiepido sorriso.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

134

Controllare la risoluzione dello schermo


Quando si realizza un applicazione con Excel, si predispone con cura anche
il suo layout grafico: cos pu succedere, che dopo averlo impostato su una
risoluzione di 800x600, scopriamo che la met dei potenziali utilizzatori del
nostro lavoro imposta il suo video a 1024x768 pixel.
Quindi, non sarebbe male verificare in fase di avvio della procedura, quale
risoluzione utilizzata dallutente e regolare conseguentemente la modalit
di visualizzazione.
Il problema che, il VBA, come anche il Visual Basic, non sono in grado di
effettuare operazioni di cos basso livello; per tale ragione si dovr
effettuare delle chiamate direttamente alle API di Windows.
Nota: Occorre tenere conto che un uso maldestro delle API pu di bloccare il sistema.
Per utilizzare lAPI di Windows allinterno del VBA occorre usare
listruzione Declare che permette di accedere alle DLL non appartenenti
allinsieme di quelle messe a disposizione di Excel. Listruzione Declare v
usata nellarea di dichiarazione del modulo, cio allinizio.
Impostazioni
La nostra procedura sar visualizzata a tutto schermo, impostazione di
default, in presenza di una risoluzione video di 800 x 600 pixel. Se la
risoluzione fosse di 1024 x 768 la finestra andr disegnata con proporzioni
che rispecchino la risoluzione di 800 x 600, per non perdere il layout
grafico. Naturalmente una risoluzione di 640 x 480 pixel dovr essere
ritenuta fuori standard.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

135

Listato
1: Public Declare Function GetSystemMetrics Lib "user32" _
2: (ByVal asIndex As Long) As Long
3: Public Const risx = 0
4: Public Const risy = 1
--------------------------------------------------------------------------------------------------------------------5: Function Risoluzione()
6: Dim aaa As Variant, bbb As Variant
7: Dim parole1 As String
8: Dim opzioni1 As Byte, scelta1 As Byte
9:
aaa = GetSystemMetrics(risx)
10: bbb = GetSystemMetrics(risy)
----------------------------------------------------------11:
If aaa = 800 Then
12:
Application.WindowState = xlMaximized
13:
ElseIf aaa = 1024 Then
14:
Application.WindowState = xlNormal
15:
Application.Left = 78
16:
Application.Top = 63
17:
Application.Width = 605
18:
Application.Height = 437
19: ElseIf aaa = 640 Then
20:
parole1 = "La risoluzione del monitor impostata a " & aaa & " x " & bbb & _
21:
" - si consiglia di cliccare su SI per uscire dalla procedura" & _
22:
"e cos impostarla a800 x 600 per consentire una corretta visualizzazione "
23:
opzioni1 = vbQuestion + vbYesNo
24:
scelta1 = MsgBox(parole1, opzioni1)
25:
If scelta1 = vbYes Then Application.Quit
26: Else
27:
parole1 = "La risoluzione del monitor impostata ad una risoluzione non" & _
28:
" prevista - si consiglia di cliccare su SI per uscire dalla procedura" & _
29:
"e cos impostarla a800 x 600 per consentire una corretta visualizzazione "
30:
opzioni1 = vbQuestion + vbYesNo
31:
scelta1 = MsgBox(parole1, opzioni1)
32:
If scelta1 = vbYes Then Application.Quit
33:
End If
34: End Function

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

136

Il commento del codice


Public Declare Function
GetSystemMetrics Lib "user32" _
(ByVal asIndex As Long) As Long
Public Const risx = 0
Public Const risy = 1
aaa = GetSystemMetrics(risx)

La gi citata istruzione Declare, che fa riferimento


alla libreria (file) user32.dll , presente nella cartella
Windows\System.
Dichiarazione delle costanti necessarie alle API per
riconoscere la risoluzione. I valori sono desumibili
nella documentazione Microsoft relativa
allinterfaccia API di Windows.
Si associa alla variabile il valore della risoluzione
orizzontale.

bbb = GetSystemMetrics(risy)

Si associa alla variabile il valore della risoluzione


verticale.

If aaa = 800 Then

Se la risoluzione orizzontale uguale a 800 pixel

Application.WindowState =
xlMaximized

manda la finestra di Excel a tutto schermo

ElseIf aaa = 1024 Then

Altrimenti se 1024 pixel

Application.Left = 78

posiziona la distanza dal margine sinistro dello


schermo al margine sinistro della finestra principale
di Microsoft Excel, espressa in punti.

Application.Top = 63

posiziona la distanza tra il margine superiore dello


schermo e il margine superiore della finestra
principale di Microsoft Excel.

Application.Width = 605

determina la distanza tra il margine sinistro e il


margine destro della finestra dell'applicazione. In altre
parole la larghezza.

Application.Height = 437

determina laltezza della finestra principale


dell'applicazione.

ElseIf aaa = 640 Then

Altrimenti se 640 pixel

Dalla riga 20 alla riga 24

Imposta un MsgBox.

If scelta1 = vbYes Then


Application.Quit

Se si clicca su OK di MsgBox viene chiuso Excel.

Else

Altrimenti

Dalla riga 27 alla riga 31

Imposta un MsgBox

If scelta1 = vbYes Then


Application.Quit

Se si clicca su OK di MsgBox viene chiuso Excel.

Dalla riga 33 alla riga 34

Fine If, fine funzione.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

137

Nota: Una funzione come Risoluzione chiaramente da eseguire automaticamente


allavvio di Excel e quindi si pu essere portati ad individuare la sua
collocazione allinterno del modulo speciale ThisWorkbook. In realt se il
codice di Risoluzione, o meglio la dichiarazione di Declare, fosse collocata
allinterno di suddetto modulo, la nostra procedura non funzionerebbe. Quindi
per fare in modo che la funzione Risoluzione venga eseguita in fase di avvio di
Excel, bisogna inserire il solo riferimento ad essa allinterno di
Workbook_Open, come nellesempio sottostante.
Sub Workbook_open()
ActiveWindow.WindowState = xlMaximized
Application.Caption = " Corso di VBA on line"
Risoluzione
End Sub

Il bello della procedura Risoluzione, o meglio del VBA, che il suo


codice, con poche variazioni, pu essere utilizzato anche per le altre
applicazioni della suite Microsoft Office. Ad esempio, io ho appreso gli
strumenti per il controllo delle impostazioni del video, studiando Access.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

138

File allegato
Oltre al file di Excel Comuni.xls, da utilizzare per le esercitazioni previste
nel corso, questo CD contiene un secondo file, denominato ComuniCD.xls,
contenente il codice di alcuni esempi.
Nel dettaglio, sono presenti le seguenti procedure:
CompensoNetto;
CorsaCiclista;
Proteggi;
Risoluzione;
Sproteggi.
Inoltre sono presenti due semplici macro di navigazione fra i fogli.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

139

Conclusioni
Questo corso di programmazione, avrete letto nella presentazione, stato
allestito, non per i programmatori professionisti, ma per utenti avanzati
(power user), che volevano estendere le potenzialit, gi ampie, offerte da
Excel.
Con questo non si inteso dare adito ad una interpretazione riduttiva, del
tipo: i corsi per programmatori sono di serie A, gli altri di serie B.
In realt sono due aspetti dellinformatica costellati da molte diversit.
Il programmatore, molte volte, appartiene ad un team, sviluppa una
porzione specifica dellintero progetto, in taluni casi non conosce neanche
molto bene quali sono le finalit del software su cui sta lavorando e
sicuramente non ha esperienza diretta in quello specifico ambito lavorativo.
A lui si chiede di costruire una struttura solida, sicura e magari duratura nel
tempo.
Lutente avanzato generalmente inserito nel contesto lavorativo ove le sue
applicazioni dovranno funzionare e molte volte dovr realizzarle nei ritagli
di tempo. Dovr allestire piccole e agili procedure in pochi giorni per far
fronte a problemi imprevisti, magari in attesa del rilascio della procedura
ufficiale, che dovr uscire da l a poco.
Questo non vuol dire che le due figure siano inavvicinabili, anzi a volte gli
utenti avanzati crescono cos tanto a livello di conoscenze tecniche da
diventare dei veri e propri programmatori. Purtroppo pi difficile il
processo inverso. E raro che un programmatore puro riesca a stabilire un
punto di contatto, o meglio a comunicare con i fruitori del suo software.
Se avete fatto vostri i concetti espressi da questo corso, sarete sicuramente
in grado di realizzare applicazioni professionali di tutto rispetto. Per, non
dimenticatevi che in realt abbiamo solo scalfito limmenso universo del
VBA.
Non stato neppure preso in considerazione un blocco di costruzioni
fondamentali come gli Oggetti, per non parlare dellassoluta assenza di
riferimenti allintegrazione con altre applicazioni Office.
Poi, per chiunque lavori in una azienda di medie o grandi dimensioni, non
da trascurare la tematica legata alle intranet e alla interazione fra pagine
WEB e applicativi Office.

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

140

Indice rapido

Voce
Costanti
Debug
Declare
Do UntilLoop
Do WhileLoop
Editor di VB
Errori
ForNext
Forms
IfThen
IfThen ElseIfElseEnd If
InputBox
Left
Len
Macro virus
Moduli
MsgBox
Notazione scientifica
On Error GoTo
Personal.xls
Registrare una macro
Select Case
ThisWorkbook
Variabili
Workbook_BeforeClose(Cancel As Boolean)
Workbook_Open

Pagina
69
92
134
64
63 - 119 - 123
47
88
107 - 111 - 132
95 - 99
60 - 132
104 - 135
74
119
119
128
34 40
70
68
94
27
15
106
48 - 125
66
125 - 127
124 126

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Viaggio attraverso la conoscenza del


pi diffuso linguaggio di creazione

Enrico Cannoni - Manuali.Net Tutti i diritti riservati

Excel Visual Basic per applicazioni


Autore:
Enrico Cannoni

Prima edizione Novembre 2001


Copyright 2001 Manuali Net
U.R.L. www.manuali.it/
Copertina e progetto grafico di Enrico Cannoni
Ogni cura stata posta nella raccolta e nella verifica della documentazione contenuta in
questo corso. Tuttavia n lautore, n Manuali Net possono assumersi alcuna responsabilit
derivanti dallutilizzo della stesa.
Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni internazionali.
Nessuna parte di questo corso pu essere riprodotta con sistemi elettronici, meccanici o altri,
senza lautorizzazione scritta dellEditore.
Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle rispettive case
produttrici.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

EnricoCannoni-Manuali.NetTuttiidirittiriservati

Sommario

Sommario......................................................................................................................................4
Presentazione................................................................................................................................9
Informazioni preliminari.............................................................................................................10

Cosa bisogna sapere per affrontare questo corso?.......................................................................10


Versioni di Excel.......................................................................................................................10
Convenzioni utilizzate.................................................................................................................10
Contenuto del corso.....................................................................................................................11
PARTE 1
Introduzione alle macro......................................................................................................................15
Lezione I - Il registratore di macro..............................................................................................16

Prepariamoci a registrare una macro..........................................................................................16


Iniziamo a registrare..................................................................................................................17
Il registratore partito...............................................................................................................18
Provare la macro.......................................................................................................................18
Lezione II Riferimenti relativi...................................................................................................20

Registrare una macro con i riferimenti relativi..............................................................................20


Verificare una macro con i riferimenti relativi..............................................................................20
Macro o Procedura...................................................................................................................22
Allarme virus............................................................................................................................22
Lezione III - Macro di navigazione..............................................................................................23

Navigare tra fogli......................................................................................................................23


Scorciatoie da tastiera................................................................................................................24
I pulsanti...................................................................................................................................24
Raccolta di istruzioni per la gestione dei pulsanti..........................................................................25
Ping Pong.................................................................................................................................26
Lezione IV - Macro universali.....................................................................................................27

Cartella macro personale ...........................................................................................................27


Personal.xls..............................................................................................................................28
Lezione V Barre degli strumenti................................................................................................30

Macro per visualizzare le barre...............................................................................................30


Una nuova barra degli strumenti.................................................................................................32
Rifinire i pulsanti........................................................................................................................33
Lezione VI Moduli, la terra di nessuno......................................................................................35

Intervallo dati denominato..........................................................................................................35


Casella combinata.....................................................................................................................36
Casella di controllo....................................................................................................................38
Casella di selezione....................................................................................................................39
Lezione VII Un modello valutario..............................................................................................41

Euroconvert..............................................................................................................................41
Predisporre la casella combinata.................................................................................................42
La funzione Indice.....................................................................................................................43
Calcolare lEuro........................................................................................................................44
Vincolare la quantit..................................................................................................................44
EnricoCannoni-Manuali.NetTuttiidirittiriservati

Gestire gli eccessi......................................................................................................................45


Considerazioni...........................................................................................................................46
PARTE 2
Primi passi nel VBA...........................................................................................................................48
Lezione VIII LEditor di VBA....................................................................................................49

Aprire lEditor di VB.................................................................................................................49


Le finestre dellEditor di VB......................................................................................................50
La finestra Progetto...................................................................................................................50
La finestra delle Propriet..........................................................................................................51
La finestra del Codice................................................................................................................51
Lezione IX Il codice delle macro................................................................................................53

Regole generali.........................................................................................................................53
Analizzare il codice di Macro1....................................................................................................54
Analizzare il codice della macro RiferimentiRelativi.....................................................................55
Modificare il contenuto di una macro..........................................................................................56
I nomi delle procedure...............................................................................................................57
Identare il codice.......................................................................................................................57
Le maiuscole .............................................................................................................................57
Lezione X Operare delle scelte con IF....................................................................................58

Il file Comuni............................................................................................................................58
Scomporre i problemi.................................................................................................................58
Registrare la colorazione di una cella ..........................................................................................59
Esaminare il codice della macro Colorare....................................................................................60
Lenunciato Whit.......................................................................................................................61
Eliminare codice superfluo.........................................................................................................61
Colorare e scendere..................................................................................................................62
SeAllora................................................................................................................................62
Lezione XI Ripetere le azioni.....................................................................................................64

Pulsanti alternativi.....................................................................................................................64
Rinominare un modulo...............................................................................................................64
I cicli........................................................................................................................................65
Do WhileLoop.......................................................................................................................65
Do Until Loop.......................................................................................................................66
Almeno una volta...................................................................................................................67
Lezione XII - Le variabili.............................................................................................................68

Definizione di variabile...............................................................................................................68
Non dichiarare le variabili...........................................................................................................68
Dichiarare le variabili.................................................................................................................68
Denominazione di variabili..........................................................................................................69
Tipo di dati delle variabili............................................................................................................69
La notazione scientifica..............................................................................................................70
Dichiarazione delle variabili e del tipo..........................................................................................70
Le costanti................................................................................................................................71
Portata delle variabili.................................................................................................................71
Dichiarare le costanti.................................................................................................................71
Lezione XIII Comunicazioni allutente......................................................................................72

Una semplice finestra di messaggio............................................................................................72


Gli argomenti di MsgBox............................................................................................................72
Lezione XIV Interazione con lutente........................................................................................77

Finestra input ...........................................................................................................................77

EnricoCannoni-Manuali.NetTuttiidirittiriservati

Loutput verso una cella .............................................................................................................78


Ancora sugli argomenti..............................................................................................................79
Metodo InputBox......................................................................................................................79
A capo.....................................................................................................................................80
Lezione XV Procedura decisionale.............................................................................................81

Variabili a portata di modulo.......................................................................................................81


Inserire una procedura dentro una procedura...............................................................................82
Programmazione strutturata.......................................................................................................82
Decolorare................................................................................................................................83
PARTE 3
Addentrarsi nel VBA..........................................................................................................................84
Lezione XVI Trova....................................................................................................................85

Pulire lEditor di VB..................................................................................................................85


Una macro per trovare..............................................................................................................86
La guida in linea........................................................................................................................87
Lezione XVII InputBox e Trova.................................................................................................89

Una variabile contro la rigidit....................................................................................................89


Adattare una macro preesistente................................................................................................89
Una immagine come pulsante.....................................................................................................90
Lezione XVIII Gestione degli errori..........................................................................................91

Errori di linguaggio o di sintassi...................................................................................................91


Errori di runtime........................................................................................................................91
Errori logici...............................................................................................................................91
Il primo errore...........................................................................................................................92
Ancora logica............................................................................................................................92
Un errore da runtime.................................................................................................................93
Un caso ambiguo.......................................................................................................................93
Un errore ortografico.............................................................................................................94
Un errore spaziale..................................................................................................................94
Non finiscono mai......................................................................................................................94
Lezione XIX Debug...................................................................................................................95

Punti di interruzione...................................................................................................................95
Effettuare il debug.....................................................................................................................95
Intercettare gli errori di runtime..................................................................................................97
Lezione XX I forms...................................................................................................................98

Il primo form.............................................................................................................................98
Forms e pulsanti........................................................................................................................99
Personalizzare il pulsante tramite la finestra delle Propriet..........................................................99
Evento clic..............................................................................................................................100
Pubbliche e Private..................................................................................................................102
Lezione XXI Forms: atto II.....................................................................................................103

Dare vita ad un Form............................................................................................................103


Chiudere un Form....................................................................................................................104
Aggiungere un altro pulsante....................................................................................................104
Duplicare i pulsanti..................................................................................................................105
Lezione XXII Allora Se............................................................................................................106

Chiedere conferma..................................................................................................................106
Scegliere un colore..................................................................................................................107
I Pulsanti di opzione.................................................................................................................107
IfThenElse IfElseEnd If............................................................................................108
EnricoCannoni-Manuali.NetTuttiidirittiriservati

Case.......................................................................................................................................110
Lezione XXIII Ciclo For Next..............................................................................................111

Ricavare dati da una cella ........................................................................................................112


Errore di Overflow..................................................................................................................113
Proteggere e sproteggere.........................................................................................................113
Parte 4
Controllare Excel.............................................................................................................................115
Lezione XXIV Le Function......................................................................................................116

Tipi di routine..........................................................................................................................116
Creare una nuova funzione per Excel........................................................................................116
Analisi del problema.................................................................................................................117
Come trovare limporto netto....................................................................................................117
CompensoNetto.......................................................................................................................118
Lezione XXV Manipolare i dati................................................................................................120

Costruire lesempio..................................................................................................................120
Funzioni Len e Left..................................................................................................................121
Ottimizzare..............................................................................................................................122
Passare i dati ad un nuovo foglio...............................................................................................123
Pulire solo se.......................................................................................................................125
Lezione XXVI Auto_Apri_Chiudi.............................................................................................126

Auto_Apri...............................................................................................................................126
Auto_Chiudi............................................................................................................................127
Un po di storia.........................................................................................................................127
Istruzioni varie .........................................................................................................................127
Esempi di Auto_Apri e Auto_Chiudi.........................................................................................128
Proteggere..............................................................................................................................129
Lezione XXVII I macro virus...................................................................................................130

Come difendersi......................................................................................................................130
Difesa artigianale .....................................................................................................................131
Appendice...................................................................................................................................132

Unanimazione per misurare le prestazioni del PC......................................................................132


Conclusioni.................................................................................................................................135

EnricoCannoni-Manuali.NetTuttiidirittiriservati

Presentazione
A partire dalla lontana versione 5.0 (1993), Excel primo fra i programmi della Microsoft,
introdusse un nuovo strumento di automatizzazione, il Visual Basic per Applicazioni.
Il VBA (acronimo di Visual Basic for Application) un vero e proprio linguaggio di
programmazione, che appartiene alla famiglia del Visual Basic e ne possiede identica sintassi
e struttura, ma a differenza di questultimo contiene degli oggetti peculiari di un foglio
elettronico.
Grazie al connubio fra Excel e il VBA stata data la possibilit, ad un gran numero di utenti,
di creare potenti sistemi informativi completamente automatizzati, prerogativa sino a non molto
tempo fa riservata ai soli programmatori professionisti.
La strategia della Microsoft, a partire da Office 97, ha introdotto il VBA in tutte le sue
applicazioni, in modo tale da diventare un unico linguaggio di programmazione, nella specificit
dei rispettivi ambienti di lavoro. Ci ha favorito al massimo grado quella sinergia fra
programmi, quali Excel ed Access per esempio, da tanti invocata.
Nonostante tutte queste premesse favorevoli, in Italia il VBA non ha incontrato il successo
che ci si poteva attendere, come ad esempio ha avuto negli Stati Uniti. Soprassedendo sulle
varie ragioni culturali ed economiche, la scarsa diffusione del VBA probabilmente da
ricercare nelle difficolt che gli utenti incontrano nellapprendere la sintassi di un linguaggio di
programmazione.
Il primo passo che occorre intraprendere per rendere la curva di apprendimento del VBA
meno erta proprio quella di avvicinarvisi dal versante di Excel, che grazie al suo
Registratore di Macro rende tutto molto pi semplice.
Il secondo passo lo compie questo corso, durante il quale si cercher di accompagnare gli
utenti con esempi pratici e concreti, senza avventurarsi in dissertazioni e finezze teoriche,
sicuramente fondamentali per un programmatore professionista, ma non indispensabili per un
utente evoluto che vuole essere subito produttivo.
Insomma quello che vi trovate innanzi un corso di programmazione per non programmatori
grazie al quale sarete in grado di costruire applicazioni molto potenti.
Novembre 2001

EnricoCannoni-Manuali.NetTuttiidirittiriservati

Informazioni preliminari

Cosa bisogna sapere per affrontare questo corso?


Per affrontare proficuamente lapprendimento del VBA non necessario avere avuto
precedenti esperienze di programmazione, ma sicuramente indispensabile conoscere bene
Excel.
Versioni di Excel
Pur essendo le immagini di corredo alle lezioni tratte da Excel 10 (Office XP), si possono
utilizzare tranquillamente anche le relase 9 (Office 2000) e 8 (Office 97). Pi problematica si
presenta la situazione per chi ancora dispone di Excel 7 (Office 95), o addirittura la mitica
versione 5 per Windows 3.1.
Naturalmente non assolutamente possibile utilizzare degli autentici fossili tipo Excel 4.
Convenzioni utilizzate
Esempio di convenzione

Descrizione

Debug

Le parole in corsivo evidenziano elementi di


Excel o del VBA.
Il grassetto indica i nomi attribuiti alle
procedure, alle variabili, ai fogli di lavoro e alle
celle.
Il font Verdana con rientro sporgente
evidenzia codice di esempio.
Il testo bordato indica tasti, combinazioni di
tasti o pulsanti.
Testo su sfondo grigio, indica note o
approfondimenti.

SaltaErrore

Do While ActiveCell <>

CTRL+C
Nota: Non fate

EnricoCannoni-Manuali.NetTuttiidirittiriservati

10

Contenuto del corso

INTRODUZIONE ALLE MACRO


LEZIONEIIlregistratoredimacro

Prendere confidenza con il registratore di macro e verificarne il funzionamento.


LEZIONEIIRiferimentirelativi

Registrare ed eseguire una macro. Apprendere la differenza fra macro con riferimenti assoluti
e macro con riferimenti relativi.
LEZIONEIIIMacrodinavigazione

Navigare allinterno di un foglio e fra fogli. Associare le macro registrate a dei pulsanti.
LEZIONEIVMacrouniversali

Rendere le macro sempre disponibili. I segreti di Personal.xls.


LEZIONEVBarredeglistrumenti

Registrare una serie di azioni e associarle ai pulsanti di una nuova Barra degli strumenti.
LEZIONEVIModuli,laterradinessuno

I controlli della Barra degli strumenti Moduli. Esaminare il funzionamento della Casella
combinata, della Casella di controllo e della Casella di selezione: controlli direttamente
disponibili nel foglio di lavoro.
LEZIONEVIIUnmodellovalutario

Utilizzando gli strumenti presentati nella precedente lezione e una buona conoscenza del foglio
elettronico costruiremo un programma di conversione di alcune valute Europee in Euro.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

11

PRIMI PASSI NEL VBA


LEZIONEVIIILEditordiVBA

Descrizione dellambiente di programmazione.


LEZIONEIXIlcodicedellemacro

Leggere, analizzare e modificare il codice della macro precedentemente registrate.


LEZIONEXOperaredellescelteconIfThen

Scrivere routine che verificando determinate condizioni eseguono operazioni diverse a


seconda del risultato.
LEZIONEXIEseguireilcicloDoWhileLoop

Le strutture a ciclo consentano di eseguire ripetutamente una serie di istruzioni.


LEZIONEXIILevariabili

Cosa sono le variabili. Tipi di variabili. Dichiarare le variabili.


LEZIONEXIIIComunicazioniallutente

Usare MsgBox (Finestra messaggio).


LEZIONEXIVInterazioneconlutente

Usare InputBox (Finestra di input)


LEZIONEXVProceduradecisionale

Usando InputBox e MsgBox creare una procedura che agisce secondo le decisioni prese
dallutente.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

12

ADDENTRARSI NEL VBA


LEZIONEXVITrova

Implementare con il VBA una procedura di ricerca.


LEZIONEXVIIInputBoxeTrova

Rendere pi flessibile la ricerca di un campo sfruttando le potenzialit di InputBox.


LEZIONEXVIIIGestireglierrori

Imparare ad intercettare gli errori per rendere le procedure pi professionali.


LEZIONEXIXDebug

Esaminare una procedura durante lesecuzione passo passo per verificarne il funzionamento.
LEZIONEXXIForms

Costruire una Finestra di dialogo.


LEZIONEXXIForms.AttoII

Approfondire le modalit di gestione di un form.


LEZIONEXXIIAlloraSe

Potenziare le procedure precedentemente create con la struttura di controllo


IfThen...ElseIfElseEnd If e i Pulsanti di opzione. Ottimizzare con la struttura di
controllo Case.
LEZIONEXXIIICicloForNext

For, routine da utilizzare quando si a conoscenza del numero di volte che le istruzioni di un
ciclo vanno ripetute. Il suo impiego facilita la creazione di piccole utilit. Passare ad una
procedura il valore contenuto in una cella.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

13

CONTROLLARE EXCEL
LEZIONEXXIVLeFunction

Differenze fra Sub e Function. Con lo strumento Function possibile creare nuove funzioni
per il foglio di lavoro Excel.
LEZIONEXXVManipolareidati

Costruzione di una procedura che ripulisce il contenuto delle singole celle di una colonna da
caratteri superflui, che poi copia in un altro foglio di lavoro. Sar introdotto luso delle funzioni
interne Len e Left..
LEZIONEXXVIAuto_Apri_Chiudi

Con lausilio di particolari macro possibile eseguire delle routine in fase di avvio e di chiusura
di Excel. Piccola carrellata di routine adibite a potenziare gli automatismi delle nostre
procedure.
LEZIONEXXVIIImacrovirus

Come difendersi dai macro virus


Appendice

Unanimazione per misurare le prestazioni del PC.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

14

PARTE1
Introduzioneallemacro
In questa prima fase del corso impareremo ad usare il Registratore di macro. Si tratta di uno
strumento piuttosto limitato, ma il suo uso rappresenta un buon trampolino di lancio per
imparare a programmare con il VBA.
Affrontando lo studio della cartella Personal.xls impareremo a rendere globali le nostre macro.
Infine, grazie al sapiente utilizzo dei controlli offerti dalla barra degli strumenti Moduli,
impareremo a creare applicazioni sorprendenti senza usare una sola parola di codice.

Al corso allegato un file di Excel, di nome Comuni, contenente, oltre ai soliti tre fogli
vuoti, un foglio denominato Comuni, contenente lelenco di tutti i comuni della
provincia di Torino.
A partire dalla nona lezione dovrete utilizzare i dati presenti nel foglio di lavoro citato
nel precedente paragrafo. E comunque consigliato usare la cartella di lavoro Comuni
sin dalla prima lezione.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

15

Lezione I - Il registratore di macro


Il Registratore di Macro un mezzo per memorizzare e riutilizzare le azioni compiute con la
tastiera e/o con il mouse, permettendo cos di creare delle procedure automatizzate chiamate
Macro. Le Macro eseguono sequenze di azioni molto pi rapidamente di noi.
Prepariamoci a registrare una macro
Prima di iniziare la registrazione, dobbiamo pianificare le azioni che vorremo successivamente
far eseguire alla macro, poich eventuali ripensamenti che dovessero sopraggiungere durante
la registrazione saranno impietosamente memorizzati e quindi riprodotti dalla macro.
Noi, ad esempio, vogliamo grassettare le intestazioni della tabella dati riportata nellimmagine
sottostante.

Per effettuate loperazione voluta dovremo spostarci dalla cella A1 alla cella A3, selezionare
lintervallo A3:F3 per poi cliccare sul comando grassetta. Certo in questo caso le operazioni
da effettuare sono molto semplici, ma se la registrazione da fare ci richiedesse un buon
numero di azioni, sarebbe consigliabile effettuare una o pi prove senza avviare il registratore.
La possibilit di compiere degli errori molto alta.

NOTA: importante porre molta attenzione nelle azioni che registreremo, poich anche la pi piccola

variazione pu creare ripercussioni assolutamente imprevedibili.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

16

Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e cliccare sulla
voce Registra nuova macro .

Sar visualizzata una finestra di dialogo denominata Registra Macro.

In questa prima registrazione non ci soffermeremo sulle opzioni che ci vengono offerte,
lasceremo invariato anche il poco fantasioso nome di default Macro1.
Cliccare su OK per confermare linizio della registrazione.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

17

Il registratore partito
In apparenza non sembra essere successo niente se escludiamo la presenza di un nuovo
pulsante nellarea di lavoro.
Ad essere precisi il pulsante una barra degli strumenti che prende il nome di Interrompi
registrazione e serve appunto a bloccare la registrazione della macro.
Iniziamo ad eseguire le operazioni precedentemente provate: spostarsi dalla cella A1 alla cella
A3, selezionare lintervallo
A3:F3 per poi cliccare sul comando grassetta. Infine
deselezioniamo attivando la cella A2.
Finito il nostro compito stoppiamo la registrazione cliccando sullapposito
pulsante.

NOTA: Quando volete fermare la registrazione fate attenzione a non posizionarvi sulla X, poich in tal caso

chiudereste la barra degli strumenti Interrompi registrazione, lasciando il registratore di macro


beatamente acceso.

Provare la macro
Adesso verifichiamo il nostro operato.
Propedeuticamente selezioniamo nuovamente lintervallo A3:F3 e togliamo la grassettatura,
altrimenti risulter difficile valutare leffetto della nostra prima macro

Quindi dal menu


Strumenti\Macro
scegliamo la voce Macro .

EnricoCannoni-Manuali.NetTuttiidirittiriservati

18

Sar visualizzata la finestra di dialogo Macro, al momento ospitante la sola Macro1.


Cliccando sul pulsante Esegui la macro sar avviata

e come dincanto le intestazioni della tabella saranno grassettate.


Proviamo a ripetere lesecuzione della macro, spostandoci per, prima di avviarla, nella cella
C5 e togliendo la grassettatura.
Anche in questo caso la macro viene eseguita correttamente. Ma allora perch abbiamo fatto
questa prova?
Portate pazienza, con la prossima registrazione scopriremo larcano.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

19

Lezione II Riferimenti relativi

Registrare una macro con i riferimenti relativi


Iniziamo a registrare una seconda macro, avendo avuto cura di eliminare leventuale
grassettatura dalle intestazioni della tabella e di posizionarsi sulla cella A1.
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e cliccare
sulla voce Registra nuova macro .

Questa volta sostituiamo il nome predefinito Macro2


il nuovo nome RiferimentiRelativi.

Quindi clicchiamo su OK per dare inizio alla nuova registrazione.


Individuiamo nellarea di lavoro la barra degli strumenti Interrompi
registrazione e prima di effettuare una qualsiasi azione cliccare sul
pulsante Riferimento relativo.
Spostarsi dalla cella A1 alla cella A3, selezionare lintervallo A3:F3 per poi cliccare
sul comando grassetta
Infine deselezionare attivando la cella A2.

Interrompiamo la registrazione cliccando sullapposito pulsante.

con

Verificare una macro con i riferimenti relativi

Posizioniamoci sulla cella A1 e dal menu Strumenti\Macro clicchiamo sulla voce


Macro per visualizzare la finestra di dialogo Macro.
Selezioniamo la nuova macro RiferimentiRelativi e clicchiamo sul pulsante Esegui.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

20

Anche questa volta la macro eseguir il suo lavoro correttamente. Ma adesso proviamo a
rieseguire RiferimentiRelativi posizionando la cella attiva in C5. Ricordiamoci di togliere
preventivamente la grassettatura dalle intestazioni.
Constaterete che in questo caso la macro non ha funzionato. Vediamo di capire il perch. La
prima macro, Macro1, funziona sempre indipendentemente dalla cella attiva al momento della
sua esecuzione, poich una macro con riferimenti assoluti; essa sa che deve iniziare in
ogni caso il suo lavoro dalla cella A3.
Invece RiferimentiRelativi, come dice il suo nome una macro con riferimenti relativi.
Durante la registrazione ci siamo spostati dalla cella A1 alla cella A3, cio siamo scesi in
basso di due celle. Quindi la nostra macro, essendo relativa, non ha registrato lo spostamento
sulla cella A3, bens ha registrato uno spostamento in basso di due celle. Pertanto essa
strettamente condizionata dalla cella di partenza.
Si potrebbe dire che le macro con riferimenti assoluti sono pi sicure, ma pi rigide potendo
essere utilizzate solo in locazioni non modificabili, mentre le macro con riferimenti relativi sono
flessibili ma pi difficili da gestire. In realt le applicazioni pratiche di queste macro sono
estremamente limitate, il loro vero valore di tipo didattico e ce ne renderemo bene conto
quando passeremo ad esaminare il codice che hanno generato nelle esercitazioni precedenti.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

21

Macro o Procedura
I termini Macro e Procedura, secondo alcuni autori, non sono equivalenti. Si attribuisce
lappellativo macro al codice prodotto con il registratore di macro, mentre si definisce
procedura ci che viene scritto completamente a mano, senza lausilio del registratore.
In realt il codice che viene prodotto con il VBA di Excel spesso il risultato combinato
delluso del registratore e di scrittura diretta del codice: pertanto, distinguere i due termini
risulterebbe alquanto pleonastico, conseguentemente in questo corso le due definizioni saranno
considerate sinonimi.
Allarme virus
Sappiamo tutti che la nostra cartella di lavoro, avendo utilizzato il registratore, in fase di
apertura visualizzer una finestra segnalante la presenza di macro, potenziali veicolatici di
virus. Nessun allarmismo in questo caso, clicchiamo pure su Attiva macro, ma attenzione a
non abbassare la guardia con file di altra provenienza.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

22

Lezione III - Macro di navigazione


In questa terza lezione continueremo ad usare il Registratore generando delle macro che, per
quanto semplici, si riveleranno anche molto utili. Diciamo che alla fine di questa lezione , se
dotati di un buon spirito dinventiva potremo costruire un primo rudimentale sistema
informativo.
Navigare tra fogli
Spostarsi fra i fogli di lavoro di una cartella, servendosi delle apposite schede, non sempre
agevole, soprattutto per gli utenti non molto avvezzi alluso del pc. Inoltre in certi casi si
preferisce disattivare la visualizzazione delle schede, per poter cos creare una navigazione
guidata tra i fogli.
Ma nel caso test prospettato, in che modo le macro possono aiutarci?
Innanzi tutto registriamo una macro che ci porti al Foglio2.
Attivare il Foglio1 poich per poter registrare lo
spostamento al Foglio2 chiaramente indispensabile
avviare la registrazione da una locazione diversa da quella di destinazione.
Portarsi sul menu Strumenti\Macro e avviare il Registratore di macro.
Denominare la macro Navigator e confermare cliccando su OK.
Attivare il Foglio2 e interrompere la registrazione.
Verifichiamo il funzionamento di Navigator.
Portarsi nel Foglio1.
Dal menu Strumenti\Macro scegliere Macro.
Eseguire la macro denominata Navigator.
Verremo trasportati nel Foglio2.
Per, se nei nostri intendimenti vi era lobiettivo di rendere pi facile la vita degli utenti,
dovremo operare qualche ulteriore accorgimento.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

23

Scorciatoie da tastiera
Mettiamo nuovamente mano al registratore, avviandolo dal menu Strumenti\Macro\Registra
nuova macro.
Lasciamo invariato il nome della macro proposto da Excel e spostiamo il nostro interesse alla
casella di controllo Tasto di scelta rapida che presenta preimpostato il tasto CTRL.
Se noi inserissimo nella casella di controllo la lettera M ad esempio, per avviare la macro
associata, basterebbe digitare la combinazione di tasti CTRL+M. Il problema che sono molti
i comandi associati alla combinazione CTRL pi lettera dellalfabeto, quindi pi prudente
utilizzare la combinazione di tasti CTRL+SHIFT+M o una
qualche altra lettera. Per operare una simile combinazione di
tasti occorre tener schiacciato il tasto SHIFT mentre viene
digitata la lettera da associare.
Non male! Peccato che le scorciatoie da tastiera siano un ottimo
strumento per utenti esperti, non certo per neofiti!

I pulsanti
Indubbiamente il sistema pi comodo e facile per far eseguire delle operazioni a chiunque,
quello di usare un pulsante.

Dal menu Visualizza\Barre degli strumenti scegliere Moduli.

Individuare loggetto Pulsante e cliccarci


sopra.

Spostare il puntatore del mouse in una zona


libera del foglio ed effettuare un clic.

Sar automaticamente generato un pulsante ed avviata la finestra di dialogo Assegna macro,


dalla quale bisogner selezionare il nome della macro di nostro interesse, che in questo caso
sar Navigator.
Confermare cliccando su OK.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

24

A questo punto, senza nullaltro fare, digitare il nuovo nome per il


pulsante che, per rendere chiara la sua funzione sar Foglio 2.
Deselezionarlo eseguendo un clic a vuoto.
Posizionando il puntatore del mouse sulla nuova creazione lo vedremo trasformarsi in una
manina ad indicare la sua associazione ad una macro.
Ciccandoci sopra sarete proiettati nel Foglio2.

Raccolta di istruzioni per la gestione dei pulsanti

Per poter spostare, dimensionare o rinominare un pulsante devono


essere presenti le maniglie.
Nel caso gli sia associata una macro cliccandoci sopra questa sar eseguita rendendo
impossibile far comparire le maniglie. In tal caso prima di cliccare sulloggetto, tenere
premuto il tasto CTRL.
Non volendo associare una macro al pulsante allatto della creazione occorrer
cliccare su Annulla nella finestra di dialogo Assegna macro.
Per associare una macro ad un pulsante cliccarci sopra con il tasto destro del mouse
e dal menu contestuale scegliere Assegna macro.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

25

Ping Pong
Grazie al pulsante precedentemente creato possiamo attivare il Foglio2: ma adesso vogliamo
anche ritornare indietro, sempre utilizzando un pulsante.
Attivare il Foglio2.
Dal menu Strumenti\Macro scegliere Registra nuova macro.
Rinominare la macro Navigator2.
Portarsi nel Foglio1 ed interrompere la registrazione.
Finita la fase di registrazione ritornare nel Foglio2.
Dalla barra degli strumenti Moduli selezionare loggetto Pulsante e cliccare in una
zona vuota del foglio per generarlo.
Associargli la macro Navigator2.
Rinominare il pulsante Indietro e deselezionarlo cliccando a vuoto.
A questo punto sarete in grado di passare dal Foglio1 al Foglio2 e viceversa cliccando sui due
pulsanti.
Per rendere pi evidente le potenzialit del lavoro svolto in
questa lezione, dal menu Strumenti scegliete la voce
Opzioni, attivate la scheda Visualizza e quindi
deselezionate lopzione Schede.
Noterete che per muoversi fra i fogli della cartella sarete obbligati a servirvi dei pulsanti,
quindi ad una navigazione guidata.
Nota: Per spostarsi da un foglio di lavoro allaltro si possono anche utilizzare le combinazioni di tasti:

CTRL+Pag? , per passare al foglio successivo, o CTRL+Pag? per tornare al foglio precedente.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

26

Lezione IV - Macro universali


E giunto il momento di conoscere pi approfonditamente la finestra di dialogo Registra
macro.
Cartella macro personale
Tutti gli elementi della finestra di dialogo Registra macro sono di immediata comprensione.
Tutti , escludendo la voce Memorizza macro in : , la quale ospita un piccolo elenco di
possibilit fra le quali scegliere.

Questa cartella di lavoro


o Scelta di default.
o Le macro saranno contenute nella cartella di lavoro nella quale sono state
registrate.
o Le suddette macro saranno disponibili per le altre cartelle solo se la cartella
che le contiene aperta.
Cartella macro personale
o Le macro non saranno contenute nella cartella dalla quale stata effettuata la
registrazione.
o Le macro saranno sempre disponibili, indifferentemente dalla cartella aperta.
o Nelleventualit la cartella sia esportata in un altro pc, le macro (quelle
registrate con la modalit Cartella macro personale) non saranno disponibili.
Nuova cartella di lavoro
o Opzione di scarsa utilit.

Personal.xls
Quando registriamo una macro in modalit Cartella macro personale , questa non viene
memorizzata nella cartella in uso, bens in una cartella nascosta che si chiama Personal.xls.
Nota : La cartella Personal.xls non esiste come file sino a quando non viene effettuata una registrazione in

modalit Cartella macro personale.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

27

Ogni volta che Excel viene avviato il file Personal.xls, pur rimanendo nascosto, viene aperto,
mettendo le sue macro a disposizione delle altre cartelle aperte.

E possibile visualizzare la cartella Personal.xls scegliendo dal


menu Finestra la voce Scopri, che visualizza lomonima finestra
dialogo.

di

E comunque consigliabile nascondere Personal.xls cliccando su


Nascondi sempre dal menu Finestra.

Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro quartiere generale
Personal.xls.

Ma dove sita la cartella Personal.xls ?


Non troppo complicato da esporre con Windows 95/98.
PERCORSO
C:\
Programmi\
Microsoft Office\
Office\
XLStart\
Personal.xls

EnricoCannoni-Manuali.NetTuttiidirittiriservati

DESCRIZIONE
O altra unit disco
O similare

28

Pi complesso con Windows 2000.


PERCORSO
C:\
Documents and settings\
Enrico Cannoni\
Dati applicazioni\
Microsoft\
Excel\
XLStart\
Personal.xls

DESCRIZIONE
O altra unit disco
Il nome dellutente

I files ospitati allinterno della directori XLStart vengono eseguiti automaticamente allavvio di
Excel.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

29

Lezione V Barre degli strumenti


In questa lezione vedremo come sfruttare al meglio gli strumenti di personalizzazione delle
barre degli strumenti offerti da Excel.
Il nostro compito sar quello di creare una piccola barra degli strumenti, disponibile da tutte le
cartelle del nostro computer, dalla quale richiamare le barre di uso pi frequente.
Macro per visualizzare le barre

Selezionare il menu Visualizza\Barre degli strumenti e deselezionare le barre


Standard e Formattazione.
Dal menu Strumenti\Macro lanciare Registra nuova macro.
Denominare la macro Standard e memorizzarla in Cartella macro personale.
Confermare lavvio della registrazione cliccando su OK.

Dal menu Visualizza\Barre degli strumenti attivare la barra Standard.


Interrompere la registrazione.

Siccome caldamente consigliato verificare sempre il funzionamento della macro registrata,


disattivare nuovamente la barra degli strumenti Standard e richiamare la finestra di dialogo
Macro dal menu Strumenti\Macro.

Nota: E interessante osservare che la macro Standard a differenza delle altre preceduta da

Personal.xls! , il file ove ospitata.

Selezionare Standard e cliccare sul pulsante Esegui.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

30

La barra degli strumenti Standard sar immediatamente ripristinata.

Nota: Nelleventualit che la macro Standard non fosse disponibile nellelenco della finestra di dialogo

Macro, prescindendo da un vostro errore, controllate che la casella Macro in: sia impostata su
Tutte le cartelle di lavoro aperte.

Seguendo i punti da 1 a 6, precedentemente illustrati, si proceda a registrare le macro


Formattazione , Disegno e Moduli, attivanti le omonime barre degli strumenti.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

31

Una nuova barra degli strumenti


Creare linvolucro della nuova barra degli strumenti unoperazione molto semplice.
Fare clic su Personalizza dal menu Visualizza\Barre degli strumenti.
Nella finestra di dialogo Personalizza attivare la scheda Barre degli strumenti.
Cliccare sul pulsante Nuova .

Apparir una nuova barra degli strumenti, priva di ogni pulsante che, salvo
diversa scelta, si chiamer Personalizzata1.

Nella finestra di dialogo Personalizza scegliere la scheda Comandi per aggiungere


dei pulsanti alla barra degli strumenti Personalizzata1.
Nel riquadro di sinistra, Categorie scegliere Macro.

Dal riquadro di destra, Comandi, trascinate


Pulsante personalizzato, la faccina che ride,
allinterno della barra degli strumenti in
costruzione.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

32

Cliccare con il tasto destro del mouse


pulsante e dal menu contestuale che
apparir, scegliere Assegna macro.

Dalla finestra di dialogo Macro


scegliere la macro Standard e confermare cliccando su OK.
Chiudere la finestra di dialogo Personalizza.
Verificare il funzionamento del tutto.

sul

Rifinire i pulsanti
Il tutto funziona bene, lunico neo rappresentato dalletichetta
autoesplicativa che, compare quando si posiziona il puntatore del
mouse sul pulsante, poich la dicitura Pulsante personalizzato
eccessivamente generica..
Dopo aver aperto la finestra di dialogo
Personalizza, cliccare con il tasto destro del mouse
pulsante e nel conseguente menu contestuale
portarsi sulla voce Nome e rinominare il predefinito
Pulsante personalizzato in Barra Standard.

sul

Adesso possiamo inserire nella nostra barra degli strumenti un secondo pulsante. Seguiamo le
istruzioni precedentemente illustrate, con lunica differenza di associare la macro denominata
Formattazione , che permette la visualizzazione dellomonima barra degli strumenti.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

33

Per rendere questo secondo pulsante distinguibile dal primo, clicchiamoci sopra con il tasto
destro del mouse e dal menu contestuale che apparir, posizionarsi su Cambia icona
pulsante per disporre di una discreta raccolta di icone per pulsanti.

Ripetere le operazioni descritte precedentemente anche per le macro Disegno e Moduli.


A questo punto potrete verificare che la nuova barra degli strumenti disponibile per qualsiasi
cartella di lavoro del vostro computer, o profilo per gli utilizzatori di NT.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

34

Lezione VI Moduli, la terra di


nessuno
Generalmente si ritiene che la creazione di interfacce grafiche con caselle combinate, caselle
di comando e altri controlli visivi siano unattivit esclusiva degli sviluppatori.
Con Excel possibile disporre di controlli grafici senza conoscere una sola parola di
programmazione. Tale possibilit ci data dagli strumenti disponibili sulla barra degli strumenti
Moduli, gi sperimentata nella seconda lezione, che ci permette di inserire i suoi controlli
direttamente su un foglio di lavoro.
Possiamo dire di avventurarci in un territorio inesplorato sia dagli utenti di Excel che dai
programmatori, insomma in una terra di nessuno.
Intervallo dati denominato
Inizieremo il nostro studio sui controlli della barra degli strumenti Moduli, prendendo in esame
la Casella Combinata.
Nota: Nelleventualit non fosse chiaro di quale oggetto stiamo parlando, pensate ai vari menu a tendina

usati per cambiare il tipo di font e le dimensioni dei caratteri.


Per poter vedere una Casella combinata in funzione occorre disporre di un intervallo di dati
denominato.

Partendo dalla cella A2 di un foglio intonso, si digitino i nomi della citt visibili
nellimmagine sottostante.
Selezionare lintervallo di dati
A2:A8.
Scegliere Crea dal menu
Inserisci\Nome.
Apparir la finestra di dialogo
Crea nomi e dopo aver
controllato che sia selezionata la
sola
opzione
Riga
superiore,
confermare cliccando su OK.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

35

Verifichiamo leffetto dellintervallo denominato test creato.

Fare clic sul pulsante della Casella del nome e selezionare il


nome Citt dallintervallo dellelenco a discesa.
Leffetto che si otterr sar la selezione di tutti i nomi di citt
sottostanti letichetta Citt, che sarebbe il nome
dellintervallo dati denominato.

Nota: In realt la Casella del nome non altro che una Casella combinata,

quindi lesatta dicitura sarebbe: cliccare sulla casella combinata Casella del nome.

Casella combinata
Passiamo alla vera e propria creazione della Casella combinata.

Dal menu Visualizza\Barre degli strumenti scegliere Moduli.

Sfruttando le propriet di autoesplicazione dei


pulsanti, cercare il controllo Casella
combinata e cliccarci sopra.

Posizionarsi sulla cella C4 e modellare un


riquadro grande allincirca come due celle.

Fare clic con il tasto destro sulla Casella combinata or ora creata e dal menu
contestuale scegliere la voce Formato controllo.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

36

Apparir la finestra di dialogo Formato controllo ove dovremo selezionare la scheda


Controllo.
Nella casella Intervallo di input: digitare Citt, nella casella Collegamento cella:
digitare C1 e cliccare su OK.

Deselezionare loggetto cliccando a vuoto.

Cliccando sul pulsantino della Casella combinata vedremo comparire la lista delle citt e
cliccando su una di esse, ad esempio Milano, nella cella C2 comparir il numero 2. Provando a
fare clic su Firenze in C1 sar inserito il 4.

Cerchiamo di capire come siamo riusciti ad ottenere un simile risultato.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

37

Digitando Citt nella casella Intervallo di input della finestra di dialogo Formato controllo,
abbiamo detto alla Casella combinata:
Guarda casella che tu devi contenere lelenco di nomi corrispondente allintervallo di dati
Citt, cio Torino, Milano, Venezia ecc. .Poi, la citt che sceglier dovrai indicarla nella cella
C1, la cella appunto digitata in Collegamento cella.
Ma che cosa che quel numero che compare in C1? Semplice, il numero di posizione
nellelenco dellelemento scelto. Milano il secondo, quindi corrisponde al numero 2.
Casella di controllo
La Casella di controllo, altro oggetto molto diffuso, serve ad indicare se vogliamo o non
volgiamo fare una certa cosa, se vero o non vero o meglio VERO o FALSO.

Dalla barra degli strumenti Moduli cliccare


sulloggetto Casella di controllo.

Fare clic in corrispondenza della cella C9, sar automaticamente generata una
Casella di controllo.

Cliccare con il tasto destro sulla


Casella di controllo per far apparire
menu
contestuale,
dal
quale
selezionare Formato controllo.

Apparir la finestra di dialogo


Formato controllo ove dovremo
selezionare la scheda Controllo.
Nella casella Collegamento cella digitare B9.
Deselezionare loggetto cliccando a vuoto.

Cliccando sulla Casella di controllo vi comparir un segno di


spunta e nella cella B9, quella indicata in Collegamento cella,
VERO. Cliccando nuovamente sulla Casella di controllo il segno
spunta sar tolto e in B9 comparir FALSO.

Casella di selezione

il

Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di selezione.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

di

38

Fare clic in una zona vuota del foglio per generare automaticamente
Casella di selezione.

Fare clic con il tasto destro sulla Casella di selezione per far apparire li menu
contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 10
o Valore massimo 100
o Avanzamento 5
o Collegamento cella H1
Cliccare su OK.

Deselezionare il controllo.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

una

39

Adesso cliccando sulla sezione superiore della Casella di selezione vedrete il valore in H1
aumentare di 5 in 5 sino ad un massimo di 100.
Cliccando sulla parte inferiore diminuir di 5 in 5 sino ad un minimo di 10.
Probabilmente, dopo un primo momento di soddisfazione, vi sorger un dubbio. Ma a che
servono questi controlli?
Portate pazienza, nella prossima lezione realizzeremo una interessante applicazione che
ricorrer agli oggetti test studiati.

Nota: Nei controlli ove si imposta un valore massimo non possibile superare 30.000.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

40

Lezione VII Un modello valutario


Questa lezione potrebbe risultare particolarmente impegnativa, soprattutto per chi non fosse
dotato di una adeguata conoscenza di Excel. Ma qu cogliamo loccasione per ribadire che,
soltanto chi gi conosce bene il foglio elettronico potr trarre pieno giovamento da questo
corso di VBA.
Excel dotato di una funzione, Euroconvert , in grado di convertire il valore delle valute
Europee in euro . Ma se per un utilizzatore di Excel di medie capacit, ricorrere ad una
funzione non rappresenta certo un problema, ben diversa la situazione per quegli utenti
sprovveduti di conoscenze sul foglio elettronico.
Il nostro compito sar quello di creare un programma di conversione in euro dallinterfaccia
amichevole.

Euroconvert
Diamo una rapida occhiata alla sintassi delle funzione Euroconvert .
=Euroconvert(Numero ; Origine; Destinazione)
Numero
Origine
Destinazione

Importo da convertire.
Il codice ISO della moneta di origine.
Il codice ISO della moneta di destinazione.

Nellesempio sottostante vediamo come convertire 1000 lire in euro.


=Euroconvert(1000;itl;eur)

Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione Euroconvert.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

41

Predisporre la casella combinata


Lutilizzo di una Casella combinata prevede un intervallo dati denominato.
Partendo dalla cella J2 di un foglio vuoto, digitare i dati sottostanti.
Paese

Francia
Italia
Paesi Bassi
Germania
Spagna

Moneta

Franco
Lira
Fiorino
Marco
Peseta

CodiceISO

frf
itl
nlg
dem
esp

Selezioniamo lintervallo di dati K2:L7.


Scegliere Crea dal menu Inserisci\Nome.
Nella finestra di dialogo Crea nomi
lasciare selezionata solo Riga superiore e
confermare cliccando su OK.

Nota: In realt abbiamo creato due intervalli denominati,


Moneta e CodiceISO.

Passiamo alla creazione di una Casella


combinata.
Dal menu Visualizza\Barre degli
strumenti scegliere Moduli.
Sfruttando le propriet di autoesplicazione dei pulsanti cercare nella barra Moduli il
controllo Casella combinata e cliccarci sopra.
Posizionarsi sulla cella E5 e modellare un riquadro grande allincirca come due celle.
Fare clic con il tasto destro sulla Casella combinata or ora creata e dal menu
contestuale scegliere la voce Formato controllo.
Apparir la finestra di dialogo Formato controllo ove dovremo selezionare la scheda
Controllo.
Nella casella Intervallo di input: digitare il nome dellintervallo denominato Moneta,
nella casella Collegamento cella: digitare G5 e cliccare su OK.
Deselezionare loggetto cliccando a vuoto.

La funzione Indice
Inseriamo nella colonna B i dati come raffigurati nellimmagine sottostante,
la quale ci lascia intuire che la moneta presente nella cella C4, Peseta, quella scelta con la
Casella combinata.
Sempre nellimmagine sottostante la Barra della formula, indicante il contenuto della cella
C4, ci mostra la funzione Indice .

EnricoCannoni-Manuali.NetTuttiidirittiriservati

42

Esaminiamo brevemente anche la sintassi della funzione INDICE.


=INDICE(Intervallo dati; Riga)

Intervallo dati
Riga

=INDICE(Moneta;G5)

Lintervallo denominato contenente i dati ove vogliamo


effettuare la ricerca, nel nostro caso Moneta.
La riga dellintervallo dati in corrispondenza della quale si
trova il valore desiderato. Nel nostro esempio la Peseta
il quinto elemento, cio si trova alla quinta riga
dellintervallo denominato Moneta.

Nota: La sintassi della funzione Indice ben pi articolata di quella rappresentata nei paragrafi precedenti,

ma essendo questo un corso di VBA non ci dilungheremo oltre su di essa.

Quindi ogni qualvolta che scegliamo una valuta con la Casella combinata, grazie alla funzione
Indice, questa viene visualizzata anche nella cella C4.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

43

C a l c o l a r e lEuro

La cella C4 individua la valuta che vogliamo convertire, mentre la cella C6 adibita


allinserimento della quantit della valuta scelta.
Nel nostro esempio, illustrato nellimmagine a seguire, vogliamo convertire 1.000 Lire: il
risultato dovr apparire nella cella C9. Per ottenere tale risultato dobbiamo inserire in C9 una
funzione piuttosto complessa.
=EUROCONVERT(C6;INDICE(CodiceIso;G5);eur)

Il secondo argomento della funzione EUROCONVERT, valuta di origine, invece di essere


digitato direttamente viene passato dalla funzione INDICE, che a sua volta si avvale
dellintervallo denominato CodiceIso.

A questo punto, variando la quantit (C6) o la moneta con la Casella combinata,


automaticamente sar calcolato limporto corrispondente in Euro.

Vincolare la quantit
Volendo impostare una quantit (C6) che non possa eccedere un determinato valore, o pi
semplicemente togliere allutente ogni onere di digitazione, possiamo ricorrere ad una Casella
di selezione.

Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di selezione.


Fare clic in una zona vuota del foglio per generare automaticamente
Casella di selezione.
Fare clic con il tasto destro sulla Casella di selezione per far apparire
menu contestuale, dal quale selezionare Formato controllo.
Selezionare la scheda Controllo e digitare:
o Valore corrente 10
o Valore minimo 1
o Valore massimo 20000
EnricoCannoni-Manuali.NetTuttiidirittiriservati

una

li

44

Avanzamento 1
Collegamento cella G8
Cliccare su OK.
o
o

Quindi nella cella C6, in corrispondenza della quantit, digitare la seguente formula :
=1000*G8

ove G8 la cella collegata alla Casella di selezione.


Noterete che ad ogni singolo clic sulla Casella di selezione si aggiorner automaticamente la
quantit di valuta da convertire e a cascata gli euro corrispondenti.
Gestire gli eccessi
Il nostro modello valutario ha un problema!
Il valore minimo 1000, impostabile dallazione combinata della Casella di selezione e della
formula in C6, sicuramente adeguato alle lire, ma troppo elevato per i franchi.
Si potrebbe rimediare al problema abbastanza agevolmente con una funzione SE nidificata,
ma noi che vogliamo vedere la Casella di controllo in azione seguiremo unaltra via.
Dalla barra degli strumenti Moduli cliccare sulloggetto Casella di controllo.
Fare clic in corrispondenza della cella E11.
Sar automaticamente generata una Casella di controllo.
Fare clic con il tasto destro sulla Casella di controllo per far apparire li menu
contestuale, dal quale selezionare Formato controllo.
Apparir la fine stra di dialogo Formato controllo ove dovremo selezionare la scheda
Controllo.
Nella casella Collegamento cella digitare G11.
Selezionare il nome di default per sovrascriverlo
digitando Dividi per 100.
Deselezionare loggetto cliccando a vuoto.
Il nostro intendimento quello di poter dividere per 100 la quantit (C6) di valuta da convertire
quando selezioniamo la Casella di controllo e conseguentemente nella cella G11 comparir
VERO. Ad esempio, se la quantit in C6 di 92000 risultasse eccessiva metteremo il segno di
spunta alla Casella di controllo ed automaticamente il valore in C6 si trasformerebbe in 920.
Per ottenere il risultato di cui sopra, occorre modificare la formula in C6, integrandola cos:
=SE(G11=FALSO;1000*G8;10*G8) . Traducibile in: se la Casella di controllo non
selezionato e quindi restituisce il valore FALSO in G11, venga eseguita la moltiplicazione
normale per 1000, altrimenti moltiplicare solo per 10 (1000/100=10).

EnricoCannoni-Manuali.NetTuttiidirittiriservati

45

Considerazioni
Luso dei Pulsanti di opzione ci avrebbe permesso di creare un modello valutario pi elegante
e preciso, ma in questa fase del nostro corso avremmo introdotto delle difficolt, forse,
eccessive.
Poi, per completezza di informazione, vi invito
fare
una
visitina
al
menu
Strumenti/Conversione euro per prendere
visione di uno strumento di conversione niente
male, che Excel ci mette a disposizione.
Ma allora vi domanderete, perch tutto sto
esercizio? Semplice!
Per pure finalit didattiche!

EnricoCannoni-Manuali.NetTuttiidirittiriservati

EnricoCannoni-Manuali.NetTuttiidirittiriservati

47

PARTE2
PrimipassinelVBA
Inizieremo adesso ad addentrarci nel VBA vero e proprio. Prenderemo confidenza con
lambiente di programmazione e vedremo il codice scritto con le macro che abbiamo
registrato.
Scriveremo le prime semplici procedure e piano piano conosceremo le principali strutture di
controllo.
Insomma vedremo che la programmazione, se accompagnata dalla logica e un po di
inventiva, non poi cos difficile, anzi ci troveremo ben presto in grado di raggiungere risultati
di tutto rispetto.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

48

Lezione VIII LEditor di VBA


I novizi della programmazione troveranno non poche difficolt nel primo impatto con lEditor
di Visual Basic; tenete conto che anche i vecchi utilizzatori del VBA prima maniera, cio
quello risalente alle versioni 5 e 7 di Excel, trovarono ostico raccapezzarsi nel nuovo ambiente
di programmazione.
Per questa ragione illustreremo gli elementi essenziali dellEditor da questa prima lezione
dedicata ai rudimenti della programmazione.
Aprire lEditor di VB
Nellimmagine sottostante si pu ammirare lEditor di VB

richiamabile dal menu Strumenti di Excel, posizionandosi sulla voce Macro per poi
cliccare Visual Basic Editor., oppure con la combinazione di tasti ALT+F11.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

49

Nota: LEditor illustrato nellimmagine della pagina precedente corrisponde ad una nuova cartella di lavoro

appena aperta. Gli elementi di un Editor associato ad una cartella contenente delle macro si
presenterebbero un po diversamente.

Le finestre dellEditor di VB
LEditor di VB composto da una finestra principale, detta genitrice, che contiene tre
sottofinestre definite figlie.
Le finestre figlie sono: Finestra Progetto, Finestra delle Propriet e Finestra del Codice.
Tutte e tre le sottofinestre possono essere chiuse, spostate e ridimensionate.
La finestra Progetto
La Finestra Progetto per default posizionata in alto a sinistra e visualizza tutti i fogli di lavoro,
i moduli e se presenti i forms della cartella o cartelle di lavoro aperte. I suoi contenuti sono
rappresentati da un diagramma ad albero con tutte le cartelle aperte e collassabili con un clic
sul segno meno (-).
Nellesempio raffigurato a lato possiamo vedere che
stiamo trattando del VBAProject(Cartel1), cio di una
cartella appena aperta che ha il consueto nome
Cartel1.xls. Scendendo nella scala gerarchica troviamo la
cartella Microsoft Excel Oggetti contenente i tre fogli di
lavoro, pi un elemento particolare denominato
ThisWorkbook, del quale parleremo nelle ultime lezioni.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

50

Nelleventualit la finestra Progetto non fosse presente, la si pu richiamare dal menu


Visualizza dellEditor VB, cliccando sulla voce Gestione progetti.

La finestra delle Propriet

La finestra delle Propriet mostra le propriet delloggetto


selezionato. Nellimmagine desempio stiamo visualizzando
propriet del Foglio1. Provando a cliccare sul Foglio2 nella
finestra del Progetto vedremo la finestra delle Propriet
aggiornarsi al nuovo elemento selezionato.

le

Nelleventualit la finestra delle Propriet non


fosse presente, la si pu richiamare dal menu
Visualizza dellEditor VB, cliccando sulla voce
Finestra Propriet.

La finestra del Codice


La terza sottofinestra, quella del Codice, nellimmagine raffigurante lEditor non presente,
al suo posto vediamo uno spazio vuoto grigio. Ci dovuto al fatto che in una nuova cartella di
lavoro non ancora presente il codice, quindi a meno di richiamarla esplicitamente, la finestra
del Codice non visibile.
Per richiamare la finestra del Codice, vi sono vari sistemi, tra i quali fare clic sul menu
Inserisci/Modulo.
Ma se andiamo ad aprire la cartella di lavoro Comuni, ove abbiamo eseguito le prime
registrazioni, scopriremo una situazione sensibilmente diversa.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

51

La finestra del Progetto presenta degli elementi aggiuntivi,


la cartella Moduli, allinterno della quale troviamo
Modulo1 e Modulo2.

tipo

Ancora pi evidente la presenza della finestra del


Codice con del codice allinterno.

Nota: LEditor di Visual Basic sicuramente ben pi complesso di quello che pu apparire dalla nostra

breve chiacchierata, ma senza appesantimenti teorici che, rischierebbero di scoraggiarci, gli


elementi appresi in questa lezione sono sufficienti ad orientarci nel suo interno.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

52

Lezione IX Il codice delle macro


Finalmente giunto il momento di esplorare il codice prodotto dal nostro registratore di macro.
Regole generali
Apriamo la cartella di lavoro contenente gli esempi delle prime lezioni e dal menu
Strumenti\Macro selezioniamo la voce Visual Basic Editor.
La finestra Progetto dovrebbe gi mostrare selezionato il Modulo1 e la finestra Codice il
corrispondente listato. Se cos non fosse nella finestra Progetto, eseguire un doppio clic sulla
voce Modulo1.
Andiamo cos ad esaminare la macro registrata nella prima lezione.
Le righe che iniziano con un apice (), colorate di verde sono testo di commento. E possibile
aggiungere, modificare, eliminare commenti senza influenzare lesecuzione della macro.
Ricordiamoci per che i commenti rivestono una grande ruolo nella documentazione delle
nostre procedure.
La macro vera e propria inizia con Sub, Procedura in Italiano. Quindi ogni macro deve iniziare
con la parola chiave Sub, al quale segue un nome di fantasia, che nel nostro caso Macro1.
Infine aprire e chiudere una coppia di parentesi tonde senza spazi allinterno. Riepilogando una
macro deve sempre iniziare con la seguente sintassi:
Sub NomeFantasia( )

Sub un elemento fondamentale anche per la chiusura della macro.


Ogni macro deve terminare con End Sub.
Analizzare il codice di Macro1
La macro registrava le azioni di selezionare lintervallo di celle A3:F3 , di grassettarlo e infine
di deselezionare attivando la cella A2.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

53

Range("A3:F3").Select
Selection.Font.Bold = True
Range("A2").Select

Seleziono le celle da A3 a F3
La selezione deve essere grassettata? Vero.
Seleziono la cella A2 per deselezionare.

Per rendere pi comprensibile la trasposizione del codice, in linguaggio corrente si un po


sacrificata la struttura sintattica. In VBA, loggetto precede lazione .
Range("A2") = oggetto
Select = azione (verbo)

E come se nel parlare di tutti i giorni invece di dire Bevo il caff, dicessimo Il caff bevo.
Qual il vantaggio di una simile bizzarria linguistica? Una volta selezionato un oggetto
possiamo compiere su di esso innumerevoli azioni senza dover riselezionare continuamente lo
stesso oggetto.
Per restare nellesempio del caff come se dicessimo: Il caff bevo, acquisto, sorseggio,
rovescio.
Il punto (.) funge da separatore fra loggetto e lazione

Nota: Ad essere precisi loggetto, oltre a precedere lazione, pu anche precedere la specificazione di una
sua Propriet, ossia, continuando la metafora linguistica, laggettivo. Sempre per mettere i puntini
sulle i, lazione in VBA viene chiamata Metodo.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

54

Analizzare il codice della macro RiferimentiRelativi


La seconda macro, registrata durante la prima lezione, introduceva la logica dei riferimenti
relativi.
Anche questa macro, registrava le azioni di selezionare lintervallo di celle A3:F3 , di
grassettarlo e infine di deselezionare attivando la cella A2.
Sub Riferimentirelativi()
'Riferimentirelativi Macro
ActiveCell.Offset(2, 0).Range("A1:F1").Select
Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).Range("A1").Select
End Sub

Ma in questo caso passava in secondo piano lesatta ubicazione delle celle, bens assumevano
importanza gli spostamenti, quindi era anche importante sapere qual era la cella attiva nel
momento in cui veniva attivata la registrazione. La cella attiva era A1.

ActiveCell.Offset(2, 0).
("A1:F1").Select

Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).
Range("A1").Select

Dalla cella attiva, qualunque essa sia, scende di 2


celle
quindi seleziona verso destra 6 celle.
E importante notare che A1 e F1 non rappresentano
riferimenti assoluti, anche perch in realt sono state
selezionate le celle A3:F3 .
La selezione deve essere grassettata? S.
Dalla cella attiva, qualunque essa sia, sale di 1
cella
quindi seleziona la cella per deselezionare.
Anche qui importante notare che non A1 la cella
selezionata.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

55

Modificare il contenuto di una macro


Passiamo ad esaminare .la macro Navigator, presente nel Modulo2:
Sub Navigator()
Sheets("Foglio2").Select
End Sub

Con listruzione
Sheets(Foglio2).Select

come se dicessimo Il foglio chiamato Foglio2 seleziona.


E intuitivo che volendo cambiare il foglio da attivare, baster riscrivere il nome del foglio
posto fra le parentesi tonde e le virgolette: ad esempio reindirizziamo la navigazione di
Navigator al Foglio3.
Sheets(Foglio3).Select

Facile vero?!
Le nostre procedure di navigazione hanno un difetto per! Ci portano nel foglio desiderato, ma
non si preoccupano di controllare se il foglio visibile dallinizio: certamente sgradevole
transitare in un foglio e visualizzare la fine di una tabella.
Posizioniamoci dopo Select della macro Navigator e diamo un INVIO per creare una
riga vuota.
Spostiamo il cursore sulla riga vuota test creata e digitiamo le seguenti istruzioni:
Range("A1").Select

Laggiunta della piccola porzione di codice sopra illustrata, far s che la macro dopo essersi
spostata sul foglio desiderato, attivi la cella A1, garantendo cos la visualizzazione del foglio
dallinizio.
Nel paragrafo sottostante possiamo vedere la nuova versione di Navigator:
Sub Navigator()
Sheets("Foglio3").Select
Range("A1").Select
End Sub

I nomi delle procedure


Nellassegnazione di nomi alle macro, occorre seguire alcune regole di denominazione:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.
Devono essere univoci, almeno allinterno della procedura (poich a volte non basta
meglio prudentemente allinterno della cartella), o pi correttamente nellarea di
validit.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

56

Non possono coincidere con il nome di parole chiave del VBA.


Non devono essere composti da pi parole.

Identare il codice
Si pu notare, nei primi esempi di macro esaminati, che le righe non sono sempre allineate al
margine sinistro, ma risultano spostate verso destra in vario modo. Questo stile di scrivere il
codice detto indentazione.
Non ci sono regole fisse che stabiliscano di quanto bisogna far rientrare una riga, od un gruppo
di righe; lidentazione solo un modo per rendere visivamente pi chiara la struttura del
programma.
Generalmente ci si serve dellidentazione per allineare ad esempio sulla stessa colonna
blocchi di istruzioni dello stesso livello o comunque correlati fra loro.
Nelluso dellidentazione entra comunque il gusto personale dellautore del programma,
giacch introduce elementi di chiarezza visiva, del tutto estranei al sistema di esecuzione del
programma.
Le maiuscole
Tutte le parole chiave del VBA hanno liniziale maiuscola: Sub, End, Range, Select ecc. .
Per la digitazione di esse deve avvenire tutta in minuscolo, poich automaticamente le iniziali
di trasformeranno in maiuscole, sempre che siano state scritte correttamente.
Il digitare le iniziali delle parole chiave in minuscolo di fatto un sistema di controllo.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

57

Lezione X Operare delle scelte con


IF
In questa lezione impareremo a prendere delle decisioni, a scrivere delle routine che verificano
determinate condizioni ed eseguono conseguentemente, istruzioni specifiche, in base al
risultato della verifica.
Le istruzioni in VBA che controllano il flusso delle decisioni sono definite strutture di
controllo.
Mettendola un po sul mistico, potremmo dire che implementiamo le capacit delle nostre
macro a scegliere fra il vero ed il falso: fra il bene ed il male.
Il file Comuni
Apriamo la cartella di lavoro Comuni e scegliamo lomonimo foglio, contenente lelenco dei
comuni della provincia di Torino. In particolar modo, soffermiamoci sulla colonna F,
contenente i valori relativi alla popolazione.
Il nostro compito consister nel colorare di giallo le celle contenenti un numero di abitanti
superiore al valore di 9.999: il tutto naturalmente, con un semplice clic.

Scomporre i problemi
Iniziamo per gradi: il primo compito quello di capire come si fa a colorare di giallo una cella
tramite il codice VBA. La soluzione molto semplice! Registriamo una macro che formatta di
giallo lo sfondo di una cella.
Prima di iniziare la registrazione ci accerteremo che larea di lavoro non presenti degli
impedimenti, che potrebbero compromettere la qualit del codice che sar generato.
Notiamo che le barre degli strumenti, disposte su di ununica riga ci occultano dei pulsanti, fra
i quali proprio quello del Colore di riempimento.

Dal menu Visualizza\Barre degli strumenti scegliere Personalizza.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

58

Comparir la finestra di dialogo Personalizza, dalla quale sceglieremo la scheda


Opzioni.
Mettere il segno di spunta su Mostra barre degli strumenti Standard e
Formattazione su due righe.
Cliccare su OK per confermare.

Registrare la colorazione di una cella

Posizioniamoci su di una cella da colorare.


Lanciare il registratore di macro dal menu Strumenti\Macro\Registra nuova macro.
Digitare come nome della macro Colorare e cliccare su OK per avviare la
registrazione.

Dal pulsante Colore riempimento, posto sulla barra degli strumenti


Formattazione, scegliere il colore giallo.

Interrompere la registrazione
Interrompi registrazione.

cliccando

EnricoCannoni-Manuali.NetTuttiidirittiriservati

sul

pulsante

59

Esaminare il codice della macro Colorare


Nella precedente lezione abbiamo visto che per visualizzare il codice di una macro, occorre
richiamare lEditor di VB: risultato ottenibile anche dalla finestra di dialogo Macro,
richiamabile dal menu Strumenti\Macro\Macro.
Una volta visualizzata la finestra Macro, selezionare la macro Colorare e cliccare sul
pulsante Modifica, per essere immediatamente proiettati nellambiente di programmazione

ove possibile ammirare la sintassi generata per colorare una cella di giallo.
Questa volta il codice si presenta meno intuitivo degli esempi precedenti, complicato dalla
presenza dellenunciato Whit.
Sub Colorare()
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

60

Lenunciato Whit
Lenunciato Whit, traducibile in con, serve a rendere pi veloce lesecuzione della macro, ma
non indispensabile. Rivediamo la procedura Colorare senza Whit.
Sub Colorare()
Selection.Interior.ColorIndex = 6
Selection.Interior.Pattern = xlSolid
End Sub

Le due righe di codice cos trasformate si possono leggere:


Selezione interna colora di giallo
Selezione interna trama solida
Mentre il codice originale cos traducibile:
Con selezione interna
colora di giallo
trama solida
Fine con
Appare evidente che in presenza di molti attributi il codice racchiuso dallenunciato Whit
diventa pi conciso, pi veloce.

Eliminare codice superfluo


In molti casi il Registratore di macro registra tutte le possibili impostazioni, anche quando se
ne modificano solo una o due. Eliminando le impostazioni non necessarie la macro risulter
semplificata e pi veloce.
Nella macro Colorare lunica propriet che vogliamo modificare il colore, quindi la tipologia
di trama eliminabile. Il risultato della suddetta colorazione una macro estremamente
leggera.
Sub Colorare()
Selection.Interior.ColorIndex = 6
End Sub

6 significa giallo

Notate il commento che ricorda che al numero 6 corrisponde il giallo.

Colorare e scendere
Dopo essere riusciti a far colorare di giallo una cella, unaltra azione che possiamo far
compiere alla nostra macro, senza eccessive difficolt quella di scendere alla cella
sottostante. Il pezzo di codice necessario a tale necessit gi disponibile nella macro
Navigator.
Ricordate? Il seguente codice scende di due celle
ActiveCell.Offset(2, 0).Range("A1").Select

EnricoCannoni-Manuali.NetTuttiidirittiriservati

61

quindi sostituendo il 2 con un 1, scenderemo di una sola cella per volta.


Ed ecco il risultato di questa ulteriore modifica alla procedura Colorare, che formatta la cella
di giallo e scende di una cella.
Sub Colorare()
Selection.Interior.ColorIndex = 6
ActiveCell.Offset(2, 0).Range("A1").Select
End Sub

6 significa giallo
Scende di una cella

SeAllora
E giunto il momento di dare il lume della ragione alla nostra macro!
Dovr colorare soltanto quando il valore della cella supera 9.999 .
Sub Colorare()
If ActiveCell > 9999 Then
Se il contenuto della cella superiore a 9999
Selection.Interior.ColorIndex = 6
6 significa giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Scende di una cella
End Sub

Il codice della struttura di controllo If cos traducibile.


Se la cella attiva contiene un valore maggiore di 9999 allora
Colorala di giallo
Fine se
Esaminiamo anche la sintassi di If, che si presenta molto semplice.
Alla parola chiave If segue una condizione, a sua volta seguita dalla parola chiave Then. Nella
riga successiva troviamo una o pi istruzioni da eseguire se una determinata condizione risulta
vera.
Scendendo nuovamente, la fine della struttura di controllo data da End If .
If condizione Then
Istruzioni
End If

Il controllo If deve essere sempre chiuso da End If, ad eccezione di macro con struttura che
si sviluppa su di una sola riga.
If condizione Then istruzioni

Pur dando per acquisita la conoscenza degli operatori di confronto, se ne propone una rapida
carrellata.

OPERATORI di CONFRONTO

EnricoCannoni-Manuali.NetTuttiidirittiriservati

62

MAGGIORE
MINORE
UGUALE

>
<
=

DIVERSO
MAGGIORE O UGUALE
MINORE O UGUALE

EnricoCannoni-Manuali.NetTuttiidirittiriservati

<>
>=
<=

63

Lezione XI Ripetere le azioni

Posizioniamo la cella attiva in F5 e proviamo la macro Colorare . Sar testato il valore della
cella, eventualmente formattato, in ogni caso la cella attiva scender nella cella sottostante.
Volendo ripetere pi volte lesecuzione della macro, le operazioni di rovistare fra il menu
Strumenti\Macro\Macro, individuare la procedura e cliccare su OK, si dimostreranno
veramente noiose.

Pulsanti alternativi
Si pu rimediare al problema di cui sopra, associando la macro Colorare ad un pulsante. Per
i pulsanti, diciamocelo, sono proprio bruttini.
Scegliamo una soluzione alternativa.
Dal menu Visualizza\Barre degli strumenti scegliere Disegno.
Cliccare su Casella di testo.
Modellare la Casella di testo in prossimit della
cella G2.
Personalizzarla a piacere.
Cliccarci sopra con il pulsante destro del mouse e
dal
menu contestuale che apparir, scegliere la voce
Assegna macro.
Assegnare la macro di nome Colorare e confermare cliccando su OK.
Deselezionare loggetto cliccando sul foglio.
Adesso risulter molto pi comodo provare la macro Colorare .

Rinominare un modulo
Volendo visualizzare la macro Colorare, cliccare sul pulsante Modifica della finestra di
dialogo Macro. Tale macro si trova presumibilmente nel Modulo3, in ogni caso accertarsene
osservando la barra del titolo del modulo, ove riportato il nome del Modulo.
Per rendere meno generico il nome del modulo, rinominiamolo.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

64

Nella finestra delle Propriet,


fianco a (Name), selezionare
Modulo3 e digitare il testo
alternativo ModColorare .

di

I cicli
Indubbiamente Colorare una macro simpatica, ma parliamoci chiaro, non serve a niente. Gi
nel nostro elenco di circa 300 records testare tutti i valori sarebbe assai uggioso, figuriamoci
se ci trovassimo innanzi un database di cinquemila o seimila records!
Dobbiamo trovare il sistema, di far scorrere da Excel tutto lelenco automaticamente e di
fermarsi, quando questi finisce.
Il VBA, dopo If Then, ci mette a disposizione unaltra tipologia di struttura di controllo: i
cicli.
Le strutture a ciclo consentono di eseguire ripetutamente un blocco di istruzioni di una macro.
Do WhileLoop
Listruzione Do WhileLoop verifica una condizione allinizio del ciclo e se risulta vera
(True) esegue le istruzioni, ripetendole fino a quando la condizione risulta falsa (False)
Do While condizione
istruzioni
Loop

Modifichiamo la macro Colorare aggiungendovi la struttura di controllo Do While Loop.

Nota: Il codice di una macro non prevede dei numeri davanti alle righe: la numerazione delle linee presente

nel listato successivo e in altri seguenti, stata inclusa solo per facilitare il riconoscimento e il
commento della sintassi delle procedure desempio.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

65

1: Sub Colorare()
2:
Do While ActiveCell <> ""
'esegue se vero che diverso da vuoto
3:
If ActiveCell > 9999 Then
4:
Selection.Interior.ColorIndex = 6
5:
End If
6:
ActiveCell.Offset(1, 0).Range("A1").Select
7:
Loop
8: End Sub

La procedura alla riga 2 inizia testando la cella attiva ed come se recitasse:


esegui fino a quando vero che la cella attiva contiene un qualche valore
Se abbiamo avviato la macro con la cella attiva in F5, la cella chiaramente (vero) diversa da
vuota e quindi passa ad eseguire il blocco di istruzioni successive.
Nota: Il simbolo virgolette/virgolette () senza spazi vuoti significa vuoto; quindi <> significa diverso da

vuoto.
Dalla riga 3 alla riga 5 esegue le istruzioni di controllo del numero degli abitanti della citt e se
superiori a 9999 colora la cella di giallo.
Le istruzioni della riga 6 scendono nella cella F6.
Arrivati alla riga 7 troviamo la parola chiave Loop e ripetiamo il ciclo partendo dalla verifica
del contenuto della cella attiva, che a questo punto abbiamo visto essere F6.
Il ciclo sar ripetuto sino a quando arrivati a F320 Do While non trover pi vera la
condizione, poich tale cella vuota.

Do Until Loop
Sub Colorare()
Do Until ActiveCell = ""

'esegue se non vero che la cella


vuota

If ActiveCell > 9999 Then


Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

66

Do Until Loop verifica una condizione allinizio del ciclo, ed esegue il blocco di istruzioni

successive fino a quando la condizione risulta falsa, per poi fermarsi quando la condizione
diventa vera.
Entrambi i cicli funzionano perfettamente: forse Do While pi diffuso.
Almeno una volta
Do While e Do Until testano sin dallinizio del ciclo il soddisfacimento della condizione
e se tale non risultasse, non eseguirebbero neanche una volta la serie di istruzioni comprese
nel loro corpo.
Attivare una cella vuota e lanciare la macro Colorare : la procedura non scender neanche di
una cella!
Si dovesse presentare la necessit di eseguire lintero ciclo di istruzioni, almeno una volta,
prima di verificare il soddisfacimento della condizione, occorrer eseguire i seguenti ritocchi al
codice:
Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop While ActiveCell <> ""
'esegue se vero che diverso
da vuoto
End Sub

Sub Colorare()
Do
If ActiveCell > 9999 Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Loop Until ActiveCell = ""
' esegue se non vero che la cella
vuota
End Sub

Nota: Le strutture cicliche a volte vanno in errore ed entrano in un loop infinito. Per uscire da una simile

situazione di stallo, premere la combinazione di tasti CTRL+INTERR .

EnricoCannoni-Manuali.NetTuttiidirittiriservati

67

Lezione XII - Le variabili


Questa lezione dedicata a uno degli elementi fondamentali nello studio di qualsiasi linguaggio
di programmazione: le variabili.
Definizione di variabile
Le variabili sono aree predefinite della memoria del computer, in cui vengono archiviati i dati
mentre le macro sono in esecuzione. Le variabili risultano utili per tenere traccia di conteggi
che cambiano continuamente, per conservare linput dellutente o di altra origine e per
larchiviazione di valori destinati ad essere modificati da macro eseguite successivamente.
Nota: in un certo senso possiamo paragonare le variabili alle celle di Excel. Le celle sono identificabili da

un riferimento, tipo A1, o ancora meglio da un nome (cella denominata), Pippo ad esempio: nello
stesso modo noi identifichiamo le variabili attribuendogli un nome. Il contenuto della cella\variabile
pu variare, ma non il suo nome. Quindi ogni volta che si vuole fare riferimento al valore
contenuto in una determinata cella\variabile baster usare il suo nome.

Non dichiarare le variabili


In VBA, quindi in VB, a differenza di linguaggi di programmazione nobili come il C ed il
Pascal, si pu decidere di non dichiarare le variabili: in realt le controindicazioni ad una simile
ipotesi sono moltissime. In questo corso non prenderemo in considerazione tale opportunit.
Anzi adesso ci preoccuperemo di eliminare la possibilit, che una evenienza cos scellerata,
come quella di non dichiarare le variabili, possa accadere anche solo accidentalmente.
Dal menu Strumenti dellEditor di VBA scegliere Opzioni, portarsi sulla scheda
Editor e porre il flag (segno di spunta) sulla scelta Dichiarazione di variabili
obbligatoria.
Dichiarare le variabili
La dichiarazione delle variabili, detta anche dichiarazione esplicita, si ottiene con la parola
chiave Dim (Dimensionare), collocando la dichiarazione allinizio della procedura o del
modulo.
Sub NomeMacro()
Dim NomeVariabile

Denominazione di variabili
Nellassegnazione di nomi alle variabili, occorre seguire alcune regole di denominazione. I
nomi di variabili:
Devono iniziare con una lettera.
Non possono includere punti, operatori matematici o di confronto.
Non possono superare 255 caratteri.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

68

Devono essere univoci, almeno allinterno della procedura, o pi correttamente


nellarea di validit.
Non possono coincidere con il nome di parole chiave del VBA.
Non devono essere composti da pi parole.

Tipo di dati delle variabili


Quando si dichiara una variabile possibile assegnarle anche il tipo di dati che dovr
contenere. Se non si specifica nessun tipo di dati, come nellesempio sopra esposto (Dim
NomeVariabile), viene automaticamente assegnato il tipo Variant. Il tipo Variant una sorta
di minestrone in grado di gestire qualsiasi tipo di dati. Ma se si desidera creare macro
rapide, e si sa che in una determinata variabile saranno sempre archiviate informazioni dello
stesso tipo di dati, consigliabile specificare il giusto tipo di appartenenza.
Nome del Tipo
Integer
Long
Single

TIPO
Numerico
Numerico
Numerico

2byte
4byte
4byte

Dimensioni

Double

Numerico

8byte

Currency

Numerico

8byte

String
Boolean
Date
Object
Variant

Testo
Logico
Data
Oggetto
Universale

1bytepercarattere
2byte
4byte
4byte
16b.+1b.xcarat.

Intervallo
da 32.768 a 32.767
da -2.147.483.648 a 2.147.483.6477
da -3,402823E38 a -1,401298E-45 per valori
negativi; da 1,401298E-45 a 3,402823E38 per valori
positivi.
da -1.79769313486231E308 a
-4,94065645841247E-324 per valori negativi; da
4,94065645841247E-324 a 1,79769313486232E308
per valori positivi.
da -922.337.203.685.477,5808 a
922.337.203.685.477,5807
True o False
dal'1 gen. 100 al 31 dic. 9999
Serve ad accedere ad oggetti riconosciuti dal VBA.
Pu contenere qualsiasi tipo di dato.

La notazione scientifica
La tabella riepilogante i tipi di dati, mostra alcuni numeri un po particolari, la loro sequenza
sembrerebbe interrotta dalla vocale E. Tale particolarit conosciuta come notazione
scientifica. La notazione scientifica viene utilizzata in genere per rappresentare numeri molto
grandi o molto piccoli in un formato compatto.
1.12E-2
-0.012
2.4E10
24 000 000 000
5E9
5 000 000 000
33E-10
0.00000000033
4.3E1
43

Dichiarazione delle variabili e del tipo


Dim Pippo As String

EnricoCannoni-Manuali.NetTuttiidirittiriservati

69

Dimensioniamo la variabile di nome Pippo come tipo stringa: detta in altre parole, la variabile
Pippo potr contenere del testo.
Dim Pluto As Integer

In questo secondo caso abbiamo dichiarato la variabile Pluto di tipo numerico Intero.
Dim Paperino, Archimede, Gastone As Variant

In presenza di pi variabili dello stesso tipo, possiamo dichiararle anche sulla stessa linea.
Vediamo un piccolo esempio pratico sulluso di una variabile.
Sub Prova()
Dim Pippo As Integer
dichiaro una variabile di tipo numerico intero
Pippo = 9999
assegno alla variabile il valore 9999
If ActiveCell > Pippo Then
non uso pi il valore, bens la variabile
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Probabilmente avrete notato, dopo aver scritto la parola chiave As, la comparsa di un menu a
tendina, ospitante un lungo elenco di parole chiave. Se a quel punto avete digitato la prima
vocale, nel nostro esempio la i di

EnricoCannoni-Manuali.NetTuttiidirittiriservati

70

integer, lelenco si sar posizionato automaticamente in corrispondenza dei termini inizianti


con la i. Quindi, utilizzando il pulsante direzionale che punta verso il basso, raggiungete
integer e premete sul tasto SHIFT per convalidare la scelta.

Le costanti
Le procedure spesso includono valori che non variano e che ricorrono pi volte: in questo caso
si utilizzano le costanti.
Una costante unarea predefinita della memoria, alla quale viene attribuito un nome e che
sostituisce un numero o una stringa non soggetti a modifiche.
Le costanti sembrano simili alle variabili, in realt non possibile modificarle o assegnarvi
nuovi valori.
Portata delle variabili
Portata lambito entro cui una variabile accessibile. Larea di azione di una variabile pu
essere a livello di procedura o a livello di modulo.
Una variabile dichiarata allinterno della macro una variabile a livello di procedura e la sua
portata limitata alla macro che la contiene. Per trasformarsi a livello di modulo, quindi
utilizzabile da qualsiasi macro di quel modulo, una variabile deve essere dichiarata allinizio del
modulo.
Dichiarare le costanti
Const Pippo = 9999
Const Paperino = Il mattino ha loro in bocca

Notate che il testo che assegniamo alla costante delimitato dalle virgolette ().
Const Pluto = #03/09/1957#

Le date devono essere delimitate dai cancelletti (#....#).

EnricoCannoni-Manuali.NetTuttiidirittiriservati

71

Lezione XIII Comunicazioni


allutente
Poter offrire allutente la possibilit di dialogare con una nostra procedura sicuramente
affascinante e molto utile. In questa lezione studieremo MsgBox, la prima delle due finestre di
dialogo incorporate del VBA che incontreremo nel nostro corso.
Una semplice finestra di messaggio
Richiamare lEditor di programmazione dal menu Strumenti\Macro e nella finestra Progetto
eseguire un doppio clic per attivare il Modulo3, che dovrebbe contenere le macro Colorare e
Prova.

Posizionarsi sulla prima riga vuota e dare un paio di invii per creare spazio rispetto la
procedura Prova: quindi digitiare Sub Comunica() e premere il tasto INVIO. Oltre alla
creazione di una riga vuota, saranno inserite le istruzioni di fine procedura End Sub.
Sub Comunica()
End Sub

Posizionarsi sulla riga vuota presente fra lapertura e la chiusura della macro, premere il tasto
TAB e digitare le seguenti istruzioni:
MsgBox "Il mattino ha l'oro in bocca"

Eseguire Comunica, scegliendola dallelenco delle macro


presenti nella finestra di dialogo Macro: apparir limmagine
riprodotta a lato.
Per poter eseguire qualsiasi altra operazione in Excel o
nellEditor di VBA obbligatorio cliccare sul pulsante OK.
MsgBox visualizza il testo precedentemente inserito fra le
virgolette ().
Gli argomenti di MsgBox
Ma adesso implementiamo il codice di Comunica.
Sub Comunica()
Dim Titolo, Messaggio As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Utilizzo di MsgBox"
MsgBox Messaggio, , Titolo
End Sub

MsgBox oltre ad un messaggio, permette anche di


impostare la sua barra del titolo, sostituendo il generico Microsoft Excel con un titolo a nostro
piacere.
Mentre veniva digitato il codice, dopo la scrittura della variabile Messaggio, contenente la
comunicazione per lutente, hanno fatto la loro comparsa due elementi contestuali: unetichetta
descrittiva della sintassi di MsgBox e una casella combinata contenente lelenco degli
argomenti inseribili in quel punto.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

72

Ad onor del vero, letichetta (gialla) descrittiva della sintassi non molto esplicativa per un
novizio del VBA: vediamo di semplificare un po, inserendo solo gli argomenti principali.
MsgBox(Prompt, [Buttons], [Title])

Fra gli argomenti presentati, solo Prompt obbligatorio. Ci facilmente deducibile dal fatto
che lunico non racchiuso fra parentesi quadre [].
Prompt largomento rappresentante il messaggio da inoltrare, che nel nostro esempio
rappresentato dalla variabile Messaggio.
Buttons, sempre nel nostro esempio non stato contemplato, per non essendo contemplata la
possibilit di saltare un argomento, abbiamo lasciato a sua testimonianza la doppia virgola , , .
Title il titolo che compare sulla barra del titolo della finestra messaggio, che nel nostro caso
la variabile Titolo.
Nota: Le parentesi tonde a questo stadio di utilizzo della funzione MsgBox non sono ancora necessarie.

Aggiungiamo anche largomento Buttons, dandogli la


forma di un bel punto esclamativo.

MsgBox Messaggio, vbExclamation, Titolo

Le possibili impostazioni dellargomento Buttons sono:


Costante

Valore

Descrizione

vbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3

0
1
2
3
4
5
16
32
48
64
0
256
512

VisualizzasoloilpulsanteOK.
VisualizzaipulsantiOKeAnnulla.
VisualizzaipulsantiTermina,Riprova,eIgnora.
VisualizzaipulsantiS,NoeAnnulla.
VisualizzaipulsantiSeNo.
VisualizzaipulsantiRiprovaeAnnulla.
Visualizzal'iconadimessaggiocritico.
Visualizzal'iconadirichiestadiavviso.
Visualizzal'iconadimessaggiodiavviso.
Visualizzal'iconadimessaggiodiinformazione.
Ilprimopulsanteilpredefinito.
Ilsecondopulsanteilpredefinito.
Ilterzopulsanteilpredefinito.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

73

VbDefaultButton4
VbApplicationModal

768
0

VbSystemModal

4096

vbMsgBoxHelpButton
VbMsgBoxSetForeground
vbMsgBoxRight
vbMsgBoxRtlReading

16384
65536
524288
1048576

Ilquartopulsanteilpredefinito
Finestradimessaggioasceltaobbligatorianell'applicazione.L'utentedeverisponderealla
finestradimessaggioprimadipotercontinuarealavorarenell'applicazionecorrente.
Finestradimessaggioasceltaobbligatorianelsistema.Tutteleapplicazionivengonosospese
finoaquandol'utentenonrispondeallafinestradimessaggio.
AggiungeunpulsantedellaGuidanellafinestradimessaggio.
Specificachelafinestradimessaggioinprimopiano.
Iltestoallineatoadestra.
Specificacheiltestovienevisualizzatodadestraasinistraperisistemiebraicoearabo.

Ilprimogruppodivalori(0-5)descriveinumeroei tipodeipulsantivisualizzatinella finestradimessaggio.Ilsecondogruppo(16,32,48,64)descrivel stile dell'icona.Il


l
l
o
terzogruppo(0,256,512,768)determinaipulsantepredefinitoeiquartogruppo(0,4096)determinasel finestradimessaggioasceltaobbligatorianell'applicazioneonel
l
l
a
sistema.Quandosisommanodeinumeriperlacreazionediunvalorefinaledell'argomentobuttons,utilizzaresoltantounnumeroperciascungruppo.
Nota: Il contenuto di questa pagina tratto dalla guida del VBA di Excel.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

74

Infine osserviamo la possibilit di inserire pi argomenti Buttons nella stessa finestra


messaggio.
MsgBox Messaggio , vbYesNo + vbExclamation, Titolo

Ma se la finestra messaggio serve solo a fare comunicazioni allutente, perch in questo


ultimo esempio rappresentata la possibilit di scegliere fra S e No ?
Fra non molto affronteremo anche questo lato di MsgBox.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

75

Lezione XIV Interazione con lutente


La finestra di input, la seconda delle due finestre di dialogo incorporate del VBA, ci consente
di fare un bel passo avanti nella possibilit di interagire con i fruitori delle nostre procedure.
Finestra input
La funzione InputBox permette di creare e di visualizzare una semplice finestra di dialogo che
consente limmissione di dati da parte dellutente.
Richiamare lEditor di VB dal menu Strumenti\Macro\Visual Basic Editor.
Attivare il modulo ModColorare dalla finestra Progetto.
Portarsi alla fine modulo e creare delle righe vuote con degli invii.
Digitare il codice seguente.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo)
7:
MsgBox Contenitore
8: End Sub

Dal menu Strumenti\Macro (Excel o Editor che sia) attivare la finestra di dialogo
Macro ed eseguire la macro Immissione .
Apparir InputBox ove occorrer digitare un nome a piacere.
Confermare cliccando su OK.

Far la sua comparsa una finestra messaggio recante il nome appena digitato in
InputBox.
La sintassi della macro Immissione , sino alla riga 5, pressoch identica a quella utilizzata
per MsgBox. Anche qui dichiariamo delle variabili, che saranno poi utilizzate per il titolo e per
il messaggio della nostra finestra.
Abbiamo in pi la dichiarazione di una terza variabile di tipo Variant.
Le differenze con le istruzioni di MsgBox, sorgono a partire dalla sesta riga, come risulta
evidente dal codice delle due funzioni messe a confronto.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

76

MsgBox Messaggio, , Titolo

Contenitore = InputBox(Messaggio, Titolo)

La differenza meno rilevante la mancanza nella riga di InputBox delle due virgole (,
,) che in MsgBox possono essere occupate dallargomento Buttons, non presente in
InputBox.
La seconda differenza, la pi importante, la presenza di una variabile, Contenitore ,
ad inizio della riga relativa alla gestione di InputBox. Associamo alla variabile
Contenitore loutput di InputBox, cio la variabile Contenitore conterr ci che sar
digitato in InputBox.
A questo punto il contenuto della settima riga della procedura Immissione , dovrebbe essere
chiara: MsgBox ci presenter come messaggio il contenuto della variabile Contenitore ,
variabile riempita da quello che stato digitato in InputBox.

Nota: La variabile Contenitore stata dichiarata come tipo Variant, non sapendo a priori che tipo di dati

potrebbero essere digitati.

Loutput verso una cella


Nellesempio precedente abbiamo indirizzato il valore immesso in InputBox a MsgBox, ma
volendo, possiamo anche dirigerlo verso la cella di un foglio di lavoro.
1: Sub Immissione()
2: Dim Titolo, Messaggio As String
3: Dim Contenitore As Variant
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Digita il tuo nome"
6:
Contenitore = InputBox(Messaggio, Titolo, Default)
7:
Range("a1") = Contenitore
8: End Sub

E bastato modificare le istruzioni della settima riga: in luogo della finestra messaggio abbiamo
inserito la cella A1.
Ancora sugli argomenti
A volte linput dellutente abbastanza prevedibile: in tal caso pu risultare daiuto inserire un
testo o un numero predefinito, che potr essere confermato o alloccorrenza sostituito.
Si dimensioni una terza variabile di tipo string, denominata Default, quindi sinserisca la
seguente riga di codice fra la quinta e la sesta riga
Default= Matteo, Luca e Davide

e modificare la sesta riga, che a questo punto sar diventata la settima in:
Contenitore = InputBox (Messaggio, Titolo, Default)

EnricoCannoni-Manuali.NetTuttiidirittiriservati

77

Metodo InputBox
Il VBA, ogni tanto, presenta degli strani misteri. Uno di questi la presenza, accanto alla
funzione InputBox, di un altro oggetto pressoch identico, definito metodo InputBox.
Nota: Il VBA pesca i suoi oggetti da varie librerie: la funzione InputBox appartiene alla libreria di Visual

Basic: il metodo InputBox fa parte della libreria di Excel.


Il metodo InputBox presenta un vantaggio rispetto alla omonima funzione: in grado di filtrare
il tipo di dati immesso.
1: Sub SuperImmissione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4: Dim Contenitore As Variant
5:
Titolo = "Corso on line di VBA per Excel"
6:
Messaggio = "Digita il tuo nome"
7:
Default = 10
8:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1)
9:
Range("a1") = Contenitore
10: End Sub

La sintassi del metodo InputBox, come potete vedere nellesempio di fatto identica alla
funzione InputBox.
Lunica differenza rilevabile alla riga 8. La parola chiave Application precede InputBox ed
presente largomento Type al quale associato il valore 1, indicante laccettazione di soli
valori numerici.

Nellimmagine visibile il tentativo fallito,


immettere del testo.

Nota:

Application
rappresenta
Microsoft Excel.

di

lapplicazione

Qui di seguito sono riportati i valori dellargomento Type, atti a specificare il tipo di dati
restituito.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

78

Valore
0
1
2
4
8
16
64

Significato
Una formula
Un numero
Del testo (una stringa)
Un valore logico (True o False)
Un riferimento di cella, ad esempio un oggetto Range
Un valore di errore, ad esempio #N/D
Una matrice di valori

A capo
Il codice della macro SuperImmissione , presenta una stranezza: sono presenti due righe 8. Il
VBA non permette di spezzare le righe di codice, per a volte le righe diventano
eccessivamente lunghe e quindi illeggibili.
Si risolve il problema mandando a capo una porzione di codice, dicendo per al VBA che si
tratta di una riga di istruzioni unica. Lultima parola della riga 8.1, nel nostro esempio,
InputBox dopo la quale si creato uno spazio vuoto con la pressione della barra spaziatrice.
Quindi si digitato un underscore ( _ ) .
8.1:
8.2:

Contenitore = Application.InputBox _
(Messaggio, Titolo, Default, Type:=1)

EnricoCannoni-Manuali.NetTuttiidirittiriservati

79

Lezione XV Procedura decisionale


In questa lezione daremo sostanza alla realizzazione di una procedura di interazione fra uomo
e macchina. Decideremo di volta in volta qual il numero massimo di abitanti oltre il quale
vogliamo formattare le celle.
Variabili a portata di modulo
Richiamando alla memoria la lezione sulle variabili, sicuramente non avrete dimenticato il
paragrafo dedicato alla portata delle variabili. Nello svolgimento di questa lezione dovremo
ricorrere, per la prima volta, ad una variabile a livello di modulo.
Attiviamo il modulo ModColorare e posizioniamoci al suo inizio, ove digiteremo la seguente
dichiarazione di variabile.
Dim Contenitore As Variant 'Variabile a livello di modulo

Quindi creiamo una nuova procedura, atta a raccogliere il numero di abitanti che di volta in
volta porremo come limite oltre al quale si dovr colorare la cella.
1: Sub SceltaPopolazione()
2: Dim Titolo, Messaggio As String
3: Dim Default As Integer
4:
Titolo = "Corso on line di VBA per Excel"
5:
Messaggio = "Popolazione oltre la quale colorare di giallo"
6:
Default = 9999
7:
Contenitore = Application.InputBox _
8:
(Messaggio, Titolo, Default, Type:=1) 'Tipo 1, cio numerico
9: End Sub

La macro SceltaPopolazione, ricalca perfettamente la procedura vista nella precedente


lezione, SuperImmissione .
Lunica differenza appunto la dichiarazione della variabile Contenitore , fatta a inizio
modulo.
La variabile Contenitore conterr il valore digitato nella finestra di input.

Inserire una procedura dentro una procedura


Sempre nel modulo ModColorare cerchiamo la macro Colorare e immediatamente sotto la
prima riga, con un invio, creiamo una riga vuota ove digitare SceltaPopolazione .
Il risultato non dovrebbe essere dissimile da quello visualizzato nelle righe sottostanti.
1: Sub Colorare()
2: SceltaPopolazione
'Macro in cui digitiamo la popolazione
3:
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
4:
If ActiveCell > Contenitore Then
'se superiore a 9999

EnricoCannoni-Manuali.NetTuttiidirittiriservati

80

5:
Selection.Interior.ColorIndex = 6
6:
End If
7:
ActiveCell.Offset(1, 0).Range("A1").Select
8:
Loop
9: End Sub

'colora di giallo
fine condizione
'scende di una cella
ripeti

Nota: Incominciando ad aumentare la complessit della procedura i commenti diventano indispensabili.

Probabilmente avrete gi capito che, la prima istruzione eseguita dalla macro Colorare sar
quella di eseguire le istruzioni della procedura SceltaPopolazione, posta nella seconda riga.
La procedura SceltaPopolazione , tramite InputBox, richieder il valore desiderato, che una
volta ricevuto memorizzer nella variabile Contenitore .
Terminata SceltaPopolazione , la macro Colorare continuer a processare le sue istruzioni
dalla riga 3 e passata alla riga 4 verificher se il contenuto della cella attiva superiore al
valore contenuto nella variabile Contenitore .
Tutto ci spiega perch abbiamo dimensionato la variabile a livello di modulo: essa viene
riempita nella procedura SceltaPopolazione , ma il suo contenuto viene sfruttato allinterno
della macro Colorare .
Programmazione strutturata
In questa lezione, inserendo una procedura allinterno di unaltra procedura, abbiamo adottato
la tecnica della programmazione strutturata.
Pi le procedure diventano lunghe e complesse, pi difficile diventa seguirne il
comportamento, correggerle, aggiornarle, sino a diventare pressoch ingestibili.
Inoltre, a volte, una piccola sottoprocedura pu essere riutilizzata pi volte allinterno della
stessa procedura ospitante, o addirittura da una unaltra procedura ancora.

Decolorare
Per rendere la nostra applicazione un po pi comoda, registriamo una macro per togliere il
colore dalle celle precedentemente formattate.
Dalla barra degli strumenti Disegno scegliere Casella di testo e modellarne le forme
accanto al pulsante artigianale Verifica, denominandolo Decolora.
Posizioniamoci in F5, avviamo il registratore di macro, attribuendogli il nome
Decolora e clicchiamo su OK per avviare la registrazione.
Premere la combinazione di tasti CTRL+SHIFT+? (tasto direzionale gi) per
selezionare tutte le celle contigue della colonna
contenenti dati.
Sulla barra degli strumenti di Formattazione agire
sul
pulsante Colore riempimento per scegliere Nessun
riempimento.
Attivare la cella F5 per deselezionare.
Interrompere la registrazione.

Sub Decolora()
'Toglie il colore
'Risultato della pressione di CTRL+SHIFT+Tasto direzionale Gi

EnricoCannoni-Manuali.NetTuttiidirittiriservati

81

Range(Selection, Selection.End(xlDown)).Select
Selection.Interior.ColorIndex = xlNone
'No colore
Range("F5").Select
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

82

PARTE3
AddentrarsinelVBA
Il viaggio nella conoscenza del VBA, ci porter a perfezionare, approfondire e assemblare gli
strumenti sino ad ora appresi.
Continueremo il discorso su loutput dellutente, impareremo a convivere con gli errori, a
creare finestre di dialogo, a costruire utilit atte a facilitare il nostro lavoro.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

83

Lezione XVI Trova


In questa lezione implementeremo la nostra procedura di colorazione, con una funzione di
ricerca dei comuni.
Pulire lEditor di VB
I moduli collegati al file Comuni incominciano ad essere un po disordinati: vediamo di fare un
po di ordine.
Avviare lEditor di VB.
Dalla finestra Progetto attivare il modulo Modulo3 facendo un doppio clic.
Con il mouse selezionare le due macro Navigator e Navigator2 e premere la
combinazione di tasti CTRL+X per tagliarle.
Transitare al Modulo2 e posizionarsi al fondo, creando eventualmente delle righe
vuote con degli invii.
Premere la combinazione di tasti CTRL+V per incollare le macro precedentemente
tagliate.
Nella finestra Propriet posizionarsi in corrispondenza di (Name) per rinominare
Modulo2 in Varie .

Nella finestra Progetto cliccare con il tasto destro


Modulo3 e dal menu contestuale scegliere la voce
Rimuovi Modulo3

su

Nota: I nomi, dei moduli menzionati potrebbero non corrispondere esattamente a quelli creati sul vostro PC.

Tale eventualit non dovrebbe comunque rappresentare un problema.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

84

Far la sua comparsa una finestra messaggio, con la quale sar richiesto se si desidera
esportare il modulo prima di eliminarlo. Per esportare sintende creare un file con estensione
bas, contenente il codice del modulo in fase di eliminazione.
Nel nostro caso possiamo tranquillamente ignorare la richiesta di esportazione e quindi
cliccare su NO.

La logica conseguenza, della presenza di una opzione di esportazione, che sia disponibile
anche la possibilit di importare del codice da un file esterno al nostro progetto. Gi
losservazione del menu contestuale scaturito dalloperazione di eliminazione del modulo, rileva
lopzione Importa file, richiamabile anche dal menu File dellEditor.
Una macro per trovare

Portandosi nel foglio Comuni, si faccia partire il registratore, attribuendo alla macro il
nome di TrovaComune .
Nella finestra di dialogo Trova e sostituisci, richiamabile dal menu Modifica di
Excel, digitare nella casella Trova: il Comune di Almese e cliccare su Trova
successivo per avviare la ricerca.

Fermare la registrazione.
Attivare lEditor di VB.
La conseguenza dellutilizzo del registratore, sar la creazione del Modulo1.
Nella finestra Progetto dellEditor di VB effettuiamo un doppio clic su Modulo1 per
visualizzare il codice test registrato.
Sub TrovaComune()

EnricoCannoni-Manuali.NetTuttiidirittiriservati

85

Cells.Find(What:="almese", After:=ActiveCell, LookIn:=xlFormulas, _


LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub

Nota: Il codice sopra riportato, probabilmente differisce da quello generato dal vostro registratore nei punti

ove va a capo.
La macro generata per trovare il Comune sicuramente troppo logorroica. D'altronde se
osservate la finestra di dialogo Trova e sostituisci, raffigurata nella pagina precedente, si nota
che riproduce tutte le opzioni in essa presenti. Troppe!
Certamente mettere mano al codice di una macro non necessariamente semplice, ma
possibile.
Si possono eliminare dei pezzi di codice e provare a vedere cosa succede. Metodo un po
empirico, ma a volte funziona.
La guida in linea
Per rendere loperare a tentativi un po pi consapevole, facciamoci aiutare dalla guida in
linea. Si evidenzi il metodo Find e si schiacci il tasto F1: partir la guida contestualmente alla
parola selezionata.
Probabilmente non sar ben comprensibile quello che la guida vi illustrer, ma con un po di
attenzione potrete estrapolare dal tutto il segmento di codice qui di seguito riportato...
.Find(2,

lookin:=xlValues)

dal quale si capisce che Find, tutto sommato, funziona anche con pochi argomenti.
La guida, inoltre, offre la possibilit
approfondire lo studio della sintassi
metodo Find, cliccando su Metodo
Find applicato alloggetto Range.

di
del

Vediamo adesso come adattare il


frammento di codice prelevato dalla
guida alle nostre esigenze
Find
2

lookin:=xlValues

Cells.Find, come il registratore aveva generato dovrebbe

essere adatto al nostro caso.


con 2 viene cercato un numero e corrisponde al
What:="almese" prodotto dal registratore. Da ci si deduce
che what pu essere omesso e che volendo cercare del testo
lo dovremo inserire fra virgolette, ottenendo come risultato
almese.
questa istruzione specifica il tipo dinformazioni da cercare,
che qui vediamo essere valori (xlValues), mentre
nellesempio della macro formule (xlFormulas). Se per
andiamo a leggere nel dettaglio la guida in linea, essa ci dice
lookin un argomento facoltativo, quindi, salvo esigenze
specifiche, eliminabile.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

86

Nellesempio tratto dalla guida non presente, ma Activate


presente nel codice della macro che abbiamo registrato.
Indubbiamente serve, poich una volta localizzato il nome
cercato, si vuole anche attivare la cella che lo ospita.
Sub TrovaComune()
Cells.Find("almese").Activate
End Sub

Niente da dire! Il risultato della rielaborazione della macro iniziale decisamente pi


leggero, con il vantaggio di guadagnarci in velocit di esecuzione delle istruzioni e di
leggibilit.
Il problema che la macro TrovaComune , per quanto stringata estremamente rigida: cerca
solo il Comune di Almese e per variare la ricerca occorre agire direttamente sul codice,
possibilit ovviamente improponibile per un utente finale.
La prossima lezione sar dedicata a come rendere pi flessibile la ricerca dei dati.
Nota: Il metodo Activate applicato alloggetto Range (cella), come il metodo Select, attiva una cella. La

differenza fra i due metodi che Select pu agire o su di una cella singola o si un intervallo di
celle, mentre Activate ha influenza su di una sola cella.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

87

Lezione XVII InputBox e Trova


Partendo dal codice creato nella precedente lezione, cercheremo di creare una vera e propria
procedura di ricerca dati.
Una variabile contro la rigidit
Abbiamo visto nella precedente lezione, che la rigidit della nostra procedura deriva dal fatto
di aver inserito nei suoi argomenti direttamente il valore da ricercare.
Cells.Find("almese").Activate

Se noi sostituissimo la stringa, che in questo caso indica Almese, con una variabile, avremmo
risolto il problema di poter variare a piacimento loggetto della ricerca. Quindi dobbiamo
trovare il modo di far assumere alla variabile il valore di volta in volta scelto.
Grazie ad InputBox il problema gi praticamente risolto! Useremo la finestra di input per
chiedere allutente quale Comune vuole ricercare.
Adattare una macro preesistente

NellEditor di VB attivare il Modulo1.


Selezionare e copiare, tramite il menu di scelta rapida che compare alla pressione del
tasto destro, negli Appunti la macro TrovaComune per andarla ad incollare alla fine
del modulo ModColorare .
Nella finestra Progetto, cliccare con il tasto destro su Modulo1 ed eliminarlo
scegliendo dal menu contestuale la voce Rimuovi Modolo1.
Visualizzare il contenuto del modulo ModColorare , selezionare la macro
SceltaPopolazione e copiarla a sua volta negli Appunti.
Incollare SceltaPopolazione al di sotto della macro TrovaComune e rinominarla in
SceltaComune .
Portarsi allinizio del modulo nellarea Dichiarazioni ed aggiungere una seconda
variabile a livello di modulo denominata, alla faccia della fantasia, Contenitore2.

Dim Contenitore, Contenitore2 As Variant

Tornare alla fine del modulo e modificare la macro SceltaComune come di seguito
riportato.

Sub SceltaComune()
Dim Titolo, Messaggio,Default As String
Titolo = "Corso on line di VBA per Excel"
Messaggio = "Digita il Comune da trovare"
Default = "Torino"
Contenitore2 = Application.InputBox _
(Messaggio, Titolo, Default, Type:=2)
End Sub

'Tipo 2, cio stringa

Come si pu vedere le variazioni apportate sono veramente minimali.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

88

Si ovviamente variato il messaggio da comunicare, abbiamo precisato che la variabile ove


appoggiare loutput Contenitore2 e che, ovviamente, i dati sono di tipo stringa.
SceltaComune raccoglie, nella variabile Contenitore2, il Comune da ricercare e deve
passarlo alla procedura TrovaComune . Quindi SceltaComune rappresenter la prima
istruzione di TrovaComune , che a sua volta andr a cercare il contenuto della variabile
Contenitore2. Largomento What del metodo Find diverr la variabile Contenitore2.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2).Activate
End Sub

Una immagine come pulsante


Abbiamo gi usato la Casella di testo come pulsante alternativo, ma nulla ci vieta di fare
ricorso ad altri oggetti grafici, tipo una clipart.

Dal menu Inserisci\Immagine scegliere clipart.

Modellare limmagine sul foglio e cliccandoci


sopra con il tasto destro, dal menu contestuale
scegliere la voce Assegna macro, per attribuirgli
macro TrovaComune .

EnricoCannoni-Manuali.NetTuttiidirittiriservati

la

89

Lezione XVIII Gestione degli errori


Alcuni manuali di programmazione introducono la gestione degli errori come primo argomento
da affrontare. Ci testimonia la grande importanza rivestita da tale argomento. Nel nostro
corso abbiamo deciso di non assumere una posizione cos estrema, anche perch una
trattazione approfondita sulla gestione degli errori, rischierebbe di diventare pi impegnativa
dello stesso corso nel suo insieme.
Iniziamo con una presentazione teorica delle tre diverse famiglie di errori

Errori di linguaggio o di sintassi


Derivano da errori di digitazione, tipo lomissione di segni di punteggiatura, la mancanza di
parentesi, o per dimenticanza di una delle parti dei blocchi di istruzione, quali If senza End If e
cos via.
Questi errori possono essere individuati abbastanza facilmente.
Errori di runtime
Si verificano e vengono individuati quando unistruzione tenta di eseguire unoperazione che
non possibile completare in fase di esecuzione. Un esempio la divisione per zero.
Vediamo un esempio:
Densit = Popolaz \ Superfic

Ove la variabile Superfic assume il valore zero, loperazione diventa impossibile anche se la
sintassi dellistruzione corretta.
Si dice errore di runtime perch viene individuato solo se il codice in esecuzione.
Questo genere di errori non sempre facilmente individuabile.
Errori logici
In questo ultimo caso, pur in presenza di codice sintatticamente corretto, che esegue
operazioni valide, abbiamo risultati non desiderati.
Visual Basic non individua gli errori logici, pertanto occorre effettuare un controllo funzionale
del codice.
Chiaramente questi tipi di errori risultano essere decisamente infidi.
Il primo errore
Iniziamo subito in salita, affrontando un errore logico, in cui siamo caduti nellultima lezione
con la procedura di ricerca.
Se avete provato a cercare un Comune, la macro TrovaComune ha sicuramente dato dei
buoni risultati, a meno che la scelta sia caduta su Torino. In tal caso, abbastanza
inspiegabilmente, la cella si posiziona sempre in B2. Guardando con pi attenzione il contenuto
della cella, Comuni Provincia di Torino, scopriamo larcano:
La nostra procedura per default non Confronta intero contenuto della cella, quindi si ferma
in B2 contenente una frase con la parola Torino.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

90

Capito linghippo, per trovare il giusto argomento, che imponga a Find, di cercare una
esatta corrispondenza ai caratteri specificati in InputBox, andiamo a consultare la guida in
linea, che purtroppo non si rivela molto chiarificatrice.
Questo uno di quei casi, ove simpara ad apprezzare in pieno il Registratore di macro.
Registriamo le azioni di cercare un valore, qualunque esso sia, con Trova del menu Modifica,
senza attivare lopzione Confronta intero contenuto della cella, quindi ripetiamo la
registrazione, questa volta spuntando Confronta intero contenuto della cella.
Confrontiamo il risultato delle due registrazioni per individuare ove si differenziano ed ecco le
due istruzioni di nostro interesse.
LookAt := xlPart

LookAt := xlWhole

Anche con un inglese deboluccio si comprende che Part parte e Whole intero, quindi
listruzione che ci necessita LookAt := xlWhole.
Pertanto la macro TrovaComune assumer questa nuova forma.
Sub TrovaComune()
SceltaComune
Cells.Find(Contenitore2, LookAt:=xlWhole).Activate
End Sub

Ancora logica
Rimanendo sempre in tema di errori logici, anche la procedura Colorare presenta un
inconveniente piuttosto fastidioso. Se vogliamo che colori le celle desiderate, essa ci obbliga a
posizionarsi sulla giusta cella di partenza prima di avviare la macro.
Fortunatamente la soluzione estremamente semplice: nel modulo ModColorare posizionarsi
in corrispondenza della macro Colorare , creare una riga vuota fra le righe con le istruzioni
SceltaPopolazione e Do While
e digitarvi Range(F5).Select . In tal modo, indipendentemente dalla cella di partenza, la
macro Colorare si posizioner sempre nel punto giusto ove iniziare a testare i valori delle
celle.
Un ultimo ritocco, sempre a Colorare , consiste nel non disorientare lutente che utilizzer il
nostro prodotto. Se dopo aver formattato le giuste celle, il foglio rimane visualizzato intorno
alla trecentesima riga, il che non un bello spettacolo, oltre ad essere una potenziale fonte di
confusione per utenti non esperti, occorre riposizionarlo allinizio. Dopo listruzione Loop e
prima, ovviamente, di End Sub, inserire Range(A1).Select .
Un errore da runtime
Molto spesso gli errori di runtime sono il frutto di pasticci effettuati con la tastiera.
Prendiamo sempre la macro Colorare ad esempio e
simuliamo linavvertita cancellazione dellistruzione Loop,
quindi proviamo ad eseguire suddetta procedura.
Vedremo comparire lavviso di errore a lato raffigurato,
molto chiaramente spiega lorigine del guasto.
Dopo aver fatto clic sul pulsante OK sar visualizzata la
macro Colorare , evidenziata in giallo, ad indicare lo stato di errore della procedura.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

che

91

E importante ripristinare la macro andando a


cliccare sul pulsante Ripristina della barra degli
strumenti Standard dellEditor di VB.
Naturalmente occorrer anche inserire nuovamente listruzione Loop.
Un caso ambiguo
Insistiamo con Colorare e questa volta la nostra
sbadataggine ci fa eliminare If finale, lasciando vedovo
End.
Provando ad eseguire la macro sar nuovamente
comunicato un errore: il problema che il VBA,
prendendo farfalle, ci dir Loop senza Do. Cos un
piccolo refuso da tastiera rischia di diventare un
tormentone, contro il quale lunica cura leggersi
cura il listato.

con

Un errore ortografico
Per ultima affrontiamo la prima tipologia di errori: gli errori di linguaggio o di sintassi.
Un po sgrammaticati digitiamo While senza H e facciamo clic sulla riga successiva.
Immediatamente saremo ammoniti del nostro erroraccio.

Un errore spaziale
Induciamo la macro Colorare a commettere un errore grossolano, modificando il secondo
valore di Offset da 0 a -10, cio da nessun movimento in orizzontale a dieci celle a sinistra.
ActiveCell.Offset(1, -10).Range("A1").Select

EnricoCannoni-Manuali.NetTuttiidirittiriservati

92

Ecco una nuova finestra di


segnalazione
errori,
ove
dovremo cliccare sul pulsante
Debug.

Non finiscono mai


Il problema che non cos
semplice: la casistica degli errori ben pi ampia di quella illustrata in queste poche pagine.
Molte volte le varie categorie di errori sembrano mescolarsi fra di loro e pi i programmi
diventano grandi, pi diventa complicato venirne a capo.
Fortunatamente il VBA possiede degli strumenti in grado di darci una mano in questi
frangenti. La prossima lezione sar appunto dedicata ad approfondire le tematiche sulla
gestione degli errori e il controllo sul flusso delle procedure.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

93

Lezione XIX Debug


In VBA sono disponibili strumenti di debug che consentono di analizzare il funzionamento delle
macro e che risultano particolarmente utili per individuare le cause degli errori. Questi
strumenti possono inoltre essere utilizzati per provare, capire e modificare le procedure create
da altri sviluppatori.
Punti di interruzione
Per riuscire a rintracciare la causa di errori, molte volte si dovr scorrere le istruzioni di una
procedura passo per passo.
Lesecuzione a passo singolo di tutte le istruzioni di una procedura pu diventare decisamente
faticosa, ma solo in alcuni casi veramente necessario scorrere tutte le righe del programma.
Fortunatamente, il VBA consente di eseguire la maggior parte del codice a velocit normale e
passare in modalit Interruzione, cio a processare una riga per volta, solo quando vengono
eseguite particolari istruzioni allinterno del codice.
Un punto di interruzione una riga allinterno del codice evidenziata da una striscia di colore
marrone, con al suo fianco un pallino dello stesso colore. Quando incontra un punto
dinterruzione, il VBA passa dalla normale esecuzione del codice alla modalit Interruzione.
Usando i punti di interruzione possibile seguire la maggior parte di una procedura a velocit
piena e passare in modalit Interruzione solo quando il VBA raggiunge listruzione che
occorre esaminare con attenzione.
Effettuare il debug
Per effettuare il debug di una procedura occorre visualizzare la barra degli strumenti Debug,
richiamabile dal menu Visualizza\Barre degli strumenti dellEditor VB.

Attiviamo il modulo ModColorare e cerchiamo la macro Colorare , quindi in corrispondenza


della terza riga della suddetta procedura
fare clic allinterno del margine sinistro per
impostare il punto di interruzione.

Quindi fare clic sul pulsante Esegui Sub, posto sulla barra degli strumenti Debug.
Saranno immediatamente eseguite le
istruzioni
della
sotto
procedura
SceltaPopolazione , per poi fermarsi in
corrispondenza della riga con il punto
dinterruzione.
A questo punto fare clic sul pulsante Esegui Istruzione, posto sulla barra degli
strumenti Debug per eseguire un passo alla volta.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

94

Dopo il clic sul pulsante Esegui Istruzione la riga gialla si sposta nella riga in basso. In questa
fase stata eseguita listruzione della riga iniziale (quella marrone) e il VBA in attesa di
eseguire listruzione della riga colorata di giallo.
Eseguendo nuovamente clic sul pulsante Esegui Istruzione, viene controllato il valore
contenuto nella variabile Contenitore che, nel caso illustrato nellimmagine sottostante,
deducibile essere inferiore al valore della cella, perch invece di passare allistruzione
successiva, ove avrebbe colorato la cella, salta immediatamente a End If.

Continuando a cliccare su Esegui Istruzione processeremo riga per riga, sino a quando,
terminate le esigenze di indagine del codice, interromperemo il debug
cliccando
sul pulsante Ripristina.
E importante ricordarsi di togliere il punto dinterruzione, risultato ottenibile
eseguendo
le stesse operazioni richieste per definirlo, cio cliccando sopra il pallino marrone.
Nota: Il pulsante Esegui Sub, utilizzato senza lintermediazione del punto dinterruzione esegue il flusso

della procedura tutto di un fiato.

E possibile eseguire il debug anche senza lausilio del punto dinterruzione. In tal caso
posizioniamo il cursore in corrispondenza della procedura che si desidera verificare e
cliccando sul pulsante Esegui istruzione sar eseguita una istruzione alla volta, partendo
dallinizio della macro. Per interrompere il debug, anche in questo caso, ricorrere al pulsante
Ripristina, oppure, per far scorrere velocemente tutto il codice, fare clic sul pulsante Esegui
Sub.
Intercettare gli errori di runtime
Per quanti sforzi si facciano in fase di sviluppo di un programma, non sar possibile
sterminare tutti gli errori, specie se linput dei dati dipende dagli utenti. Citando lesempio
della precedente lezione, pu accadere che lutente, perfido, immetta in InputBox uno 0 come
divisore.
Il VBA dotato di un sistema di rilevazione degli errori che permette di evitare la
visualizzazione dei messaggi di errore.
Tale risultato ottenibile dalla seguente sintassi:
On Error GoTo SaltaErrore

Specificando che SaltaErrore un nome di fantasia, definito etichetta (label), possiamo


tradurre il codice in:

EnricoCannoni-Manuali.NetTuttiidirittiriservati

95

In caso di errore salta alletichetta SaltaErrore .


Sub StudioErrori()
Dim Popolaz, Densit, Superfic As Long
Popolaz = 2000
Superfic = 0
On Error GoTo SaltaErrore
Densit = Popolaz \ Superfic
MsgBox "Ogni abitante dispone di " & Densit & " metri quadri"
Exit Sub
SaltaErrore:
MsgBox "Impossibile dividere per zero", vbCritical
End Sub

Dallesempio si pu vedere che letichetta SaltaErrore : stata posizionata per entrare in


azione in caso di errore, al termine delle normali istruzioni.
Si dovuto, inoltre, aggiungere listruzione Exit Sub per terminare in anticipo la macro, in
modo che non esegua le istruzioni relative agli errori, se errori non ci sono.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

96

Lezione XX I forms
Fino a questo momento abbiamo preso confidenza con le due finestre di dialogo incorporate
del VBA: la funzione MsgBox e la funzione/metodo InputBox. Sebbene questi due oggetti
possano garantire ad un programma una buona dose di interattivit, il loro utilizzo non permette
di raggiungere un elevato grado di flessibilit e di personalizzazione.
Fortunatamente il VBA permette di creare delle finestre di dialogo personalizzate, conosciute
con il nome di Forms.
Il primo form
Dal menu Inserisci, dellEditor di VB, scegliere la voce UserForm.

Faranno la
comparsa
nuovi
elementi: un
form
denominato
UserForm1 e
barra degli
strumenti

loro
due

la

Casella degli strumenti.

A seguito dellinserimento del Form, la finestra Progetto


visualizza una ulteriore ramificazione con la cartella Form e al
interno, il Form appena generato UserForm1.

Osservando la finestra delle Propriet, con il Form


selezionato, si nota come siano decisamente
aumentati gli elementi, le propriet appunto, in essa
presenti .
Modifichiamo la propriet nome (Name) in Dialogo,
quindi modifichiamo anche la propriet Caption in
Form di Studio.
Potremo osservare che a seguito della modifica della
propriet Caption cambiato il nome presente sulla barra del titolo del Form.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

suo

97

A questo punto occorre fare un po di chiarezza sulla differenza


propriet Name e Caption, che probabilmente, non risulta
immediatamente comprensibile.
Name il nome delloggetto, tramite il quale identificabile tra
oggetti.
Caption una semplice etichetta descrittiva.

fra le

altri

Forms e pulsanti
Il foglio di lavoro Comuni, incomincia ad essere un po troppo
affollato da pulsanti di vario genere. Spostiamo questi controlli
sulla
finestra di dialogo.
Selezionare Pulsante di comando dalla barra degli strumenti Casella degli strumenti e
modellarlo nel Form Dialogo.
Notate che con il Pulsante di comando selezionato, la finestra delle Propriet si aggiorna
automaticamente alloggetto selezionato.

Personalizzare il pulsante tramite la finestra delle Propriet.


In un Form, per modificare laspetto di un Pulsante di comando, o di un altro controllo,
occorre agire sulle sue propriet.
Cambiare la descrizione del pulsante in Verifica agendo sulla propriet Caption.
Cambiare il colore della scritta grazie alle tavolozze dei colori della propriet
ForeColor.
Infine grassettare la scritta agendo sulla propriet Font.
Agendo sulla propriet Font stato visualizzato il pulsante Genera (quello con i tre puntini),
sul quale occorre fare clic per visualizzare una finestra di dialogo con le relative propriet.

Evento clic
Ora dovremmo associare al pulsante il listato della procedura Colorare , ma ormai, non siamo
pi in un foglio di lavoro: quindi se nel menu contestuale, richiamato con il clic del tasto destro
sul pulsante, cercheremo la voce Assegna macro, non ne troveremo traccia.
Siamo entrati nella logica della programmazione ad eventi.
Un evento un azione riconosciuta da un oggetto, per la quale possibile definire una
risposta. Esempi di eventi possono essere: il clic del mouse o la pressione su di un tasto. Un
evento pu essere originato dallintervento di un utente o da una macro.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

98

Nella finestra Progetto fare doppio clic su ModColorare .


Selezionare il codice della macro Colorare , escludendo le righe di inizio e fine
procedura e copiarlo negli Appunti (Modifica\Copia).
Attivare il form Dialogo.
Posizionare il puntatore del mouse sopra il pulsante di comando ed eseguire un
doppio clic.
Apparir un modulo relativo al Form Dialogo, impostato sullevento Click del
pulsante.

Posizionarsi nel corpo della procedura CommandButton1_Click( ) e incollare il


contenuto degli Appunti, cio il listato della macro Colorare .

Private Sub CommandButton1_Click()


SceltaPopolazione 'Macro in cui digitiamo la popolazione
Range("F5").Select
Do While ActiveCell <> "" 'esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then 'se superiore a xxxx
Selection.Interior.ColorIndex = 6 'colora di giallo
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

99

Verifichiamo il funzionamento del nostro operato assicurandoci che il form

Dialogo

sia attivo e clicchiamo sul pulsante Esegui Sub/User Form.

La finestra di dialogo Dialogo, per quanto un po


sgraziata, far la sua comparsa nel foglio di
lavoro. Ma amara la sorpresa nel constatare
cliccando sul pulsante Verifica, dopo aver
diligentemente digitato il valore richiestoci da
InputBox, otteniamo un'unica uniforme
pennellata di giallo.

che

Perch questo errore? Ricordate il discorso


delle
variabili con la portata estesa a livello di
modulo? Bene, dichiarando la variabile Contenitore nellarea di dichiarazione dei moduli
labbiamo resa disponibile a livello di tutto il modulo, ma non disponibile fra moduli diversi,
come invece necessita in questo caso.
Occorre rendere la variabile Contenitore disponibile per tutti i moduli della Cartella, risultato
ottenibile sostituendo, nellarea di dichiarazione del modulo ModColorare, la parola chiave
Dim con Public.
Public Contenitore, Contenitore2 As Variant

Pubbliche e Private
Presentando la parola chiave Public, balzer allocchio per analogia che, la macro
CommandButton1 preceduta da Private.
Le procedure in VBA per default sono Public, cio accessibili per tutte le altre routine in tutti
i moduli. Si utilizza la dichiarazione Private per rendere una procedura accessibile alle sole
routine incluse nel modulo di appartenza.
Si dichiarano le procedure come Private quando si vogliono evitare indesiderate interferenze
fra routine di vari moduli e per risparmiare preziosa memoria.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

100

Lezione XXI Forms: atto II


Nella precedente lezione abbiamo lasciato il nostro Form un po incompiuto. Per poterlo
vedere in azione, dallEditor abbiamo agito sul pulsante Esegui Sub/User Form, prospettiva
improponibile per un utente finale.
Dare vita ad un Form
Attivare il foglio di lavoro Comuni.
Eliminare i pulsanti che richiamano le procedure TrovaComune (il microscopio) e
Decolora, cliccandoci sopra con il tasto destro e scegliendo Taglia.
Fare clic sul pulsante Verifica tenendo premuto il tasto CTRL e modificare il testo
descrittivo in Scegli opzioni.
Attivare lEditor, visualizzare il modulo ModColorare e posizionarvisi alla fine
digitando la seguente procedura:
Sub LanciaDialogo()
Dialogo.Show
End Sub

Ritornare sul foglio Comuni e cliccando con il tasto destro sullo unico pulsante
rimasto, associargli la macro test creata: LanciaDialogo.

La sintassi per eseguire una finestra di dialogo, come si pu vedere, estremamente sintetica:
nome oggetto, che nel nostro caso il Form Dialogo, seguito dal metodo Show.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

101

Chiudere un Form
Il Form Dialogo per essere chiuso ci obbliga ad agire sulla X posta sulla barra del titolo.
Volendo porre un pulsante espressamente adibito alla chiusura del Form, seguiamo i seguenti
passi.
NellEditor di VB attivare il Form Dialogo.
Generarci sopra un nuovo pulsante e
denominiamolo Chiudi.
Fare doppio clic sul pulsante test creato.
Digitare listruzione END nel corpo della
procedura, per ottenere il risultato visualizzato nel
sottostante codice di esempio.

Private Sub CommandButton2_Click()


End
End Sub

Se poi si vuole che la finestra di dialogo venga chiusa immediatamente dopo aver eseguito la
procedura Colorare, connessa al pulsante Verifica, aggiungere listruzione End prima
dellultima riga.
End
End Sub

Verificate il funzionamento dei due pulsanti.


Aggiungere un altro pulsante
Aggiungiamo un terzo pulsante al Form Dialogo per gestire la decolorazione.

Nella finestra Progetto dellEditor VB eseguire un doppio clic sul modulo


ModColorare per visualizzarlo.
Selezionare il codice della routine Decolora escludendo la prima e lultima riga e
copiarlo negli Appunti.
Nella finestra Progetto dellEditor VB eseguire un doppio clic sul Form Dialogo per
visualizzarlo.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

102

Nella Casella degli strumenti cliccare sul Pulsante di comando e modellarlo sul
Form.
Variare la propriet Caption del nuovo pulsante in Decolora.
Fare doppio clic sul pulsante etichettato Decolora, per visualizzare un modulo relativo
al Form Dialogo, impostato sullevento Click del pulsante.
Posizionarsi nel corpo della procedura CommandButton3_Click() e incollare il
contenuto degli Appunti, cio il listato della macro Decolora.
Aggiungere End come ultima istruzione della procedura, cio prima dellutima riga,
per chiudere il Form.

Duplicare i pulsanti
I pulsanti di un Form, in linea di massima, devono avere tutti le stesse dimensioni, tipo di
carattere e cos via. Loperazione di generare il pulsante etichettato Decolora stata piuttosto
lenta e imprecisa, costringendoci a reimpostare tutte le propriet sul modello del precedente
pulsante etichettato Verifica.
Per evitare una simile trafila, selezionare il pulsante da usare come modello ciccandoci sopra,
quindi premere la combinazione di tasti CTRL+C per copiarlo negli Appunti, infine cliccare in
un punto vuoto qualsiasi del Form e premere la combinazione di tasti CTRL+V per incollare
un clone del primo pulsante.
A questo nuovo pulsante si dovr cambiare la propriet Caption e a seguito del doppio clic
associare il codice di pertinenza. E abbastanza intuitivo che con questo sistema riprodurre
anche un gran numero di pulsanti tutti uguali, non rappresenterebbe un problema.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

103

Lezione XXII Allora Se


Questa lezione, grazie anche allapprofondimento della struttura decisionale If, dedicata a
rendere pi flessibile ed interattiva la procedura di colorazione delle celle.
Chiedere conferma
Prima di eseguire delle modifiche, molte volte, le procedure chiedono conferma allutente
tramite una finestra messaggio.
Per implementare la suddetta modifica seguire i seguenti passi.
Attivare il modulo ModColorare, e portarsi allinizio nellarea Dichiarazioni ed
aggiungere una terza variabile a livello di modulo, denominata Risul.
Public Contenitore, Contenitore2, Risul As Variant

Successivamente digitare la seguente procedura.

Sub Messaggi1()
Dim Mess, Titolo As String
Mess = "Sei sicuro di voler procedere."
Titolo = "Corso on line di VBA per Excel"
Risul = MsgBox(Mess, vbYesNo + vbQuestion, Titolo)
End Sub

Abbiamo creato una procedura espressamente


dedicata alla gestione di messaggi per lutente.
Posizionando il cursore in corrispondenza di una riga
della
procedura Messaggi1, cliccate sul pulsante Esegui
Sub/ User Form per visualizzare questa nuova
finestra messaggio.
Notate la presenza di due pulsanti in luogo dellunico
esemplare presente negli altri esempi con MsgBox.
Chiaramente i due pulsanti sono generati dallistruzione vbYesNo. Un altro particolare da non
trascurare la variabile, a livello di modulo, Risul che ricever loutput del pulsante sul quale
lutente avr fatto clic.
Portarsi nel Form Dialogo e cliccare due volte sul pulsante etichettato Verifica.
Apportare alla Sub CommandButton1_Click le variazioni evidenziate in grassetto visibili nel
codice sottostante.
Private Sub CommandButton1_Click()
SceltaPopolazione
Range("F5").Select
Messaggi1
procedura di visualizzazione messaggio
If Risul = vbNo Then Exit Sub se cliccato sul pulsante No esce
Do While ActiveCell <> ""
If ActiveCell > Contenitore Then
Selection.Interior.ColorIndex = 6
End If
ActiveCell.Offset(1, 0).Range("A1").Select

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

104
Loop
Range("a1").Select
End
End Sub

Se in seguito alla visualizzazione della finestra messaggio, generata dalla procedura


Messaggi1, si clicca sul pulsante NO, la procedura viene subito terminata. Altrimenti saranno
eseguite tutte le istruzioni per colorare le celle che contengono pi di tot abitanti.
Scegliere un colore
Nella creazione del messaggio di conferma, abbiamo fatto ricorso alla struttura decisionale If,
nella sua forma pi semplice: in realt If pu esprimere ben altri livelli di strutturazione.
Poniamo il caso di voler dare allutente della nostra applicazione, la possibilit di attingere il
colore con cui formattare le celle da una tavolozza di almeno tre colori: il giallo, il rosso e il
verde. Sappiamo che nellindice della tavolozza dei colori il giallo corrisponde al 6. Per
conoscere il valore corrispondente al rosso e al verde, registrare una macro che colora due
celle rispettivamente dei due colori desiderati. Il rosso corrisponde al 3 ed il verde al 4.
I Pulsanti di opzione
Ma come fare a dare allutente la possibilit di comunicare alla procedura il colore da lui
preferito? Usando i Pulsanti di opzione!
Attivare il Form Dialogo.
Eventualmente ingrandirlo per facilitare lintroduzione di nuovi oggetti.
Sulla Casella degli strumenti fare clic sul pulsante Cornice e modellare il
controllo sul Form, tenendo conto che dovr contenere tre Pulsanti di
opzione.
Dalla Casella degli strumenti scegliere il Pulsante di opzione e modellarlo
allinterno delloggetto Cornice teste introdotto nel Form.
Ripetere le operazioni del paragrafo precedente per altre due volte.
Modificare, nella finestra Propriet, la propriet Caption del Pulsante di opzione
OptionButton1 in Giallo, ricordando che il controllo in oggetto deve essere
selezionato..
Procedere nel modificare la propriet Caption degli altri due Pulsanti di opzione, in
Rosso e Verde.
Modificare la propriet Caption della Cornice in Colore.
Fare clic sul pulsante Esegui Sub / User Form per verificare il funzionamento dei
Pulsanti di opzione.
I Pulsanti di opzione si escludono reciprocamente, quindi il loro funzionamento corretto
quando uno solo di essi rimane selezionato. Sono stati introdotti allinterno di una Cornice
poich in caso contrario non funziona lesclusione vicendevole.
Nelleventualit si riscontrassero dei problemi nel rendere uniforme laspetto dei Pulsanti di
opzione agire sulla propriet Height (altezza) ed uniformarne il valore.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

105

Occorre poi definire qual il colore predefinito, che nel


caso dellimmagine a lato il giallo. Per ottenere
suddetto risultato, impostare la relativa propriet Value
True, controllando che la propriet Value degli altri due
Pulsanti di opzione sia impostata su False.

su

IfThenElse IfElseEnd If
NellEditor di VB visualizzare il Form Dialogo e dal
menu Visualizza scegliere la voce Codice, per
accedere al modulo del Form. Nellarea di dichiarazione,
cio allinizio del modulo, dimensionare una variabile denominata Pennello con portata a livello
di modulo.
Dim Pennello As Integer

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

106

Quindi digitare la seguente procedura.


Sub ScegliColore()
If OptionButton1.Value = True Then
'se il primo pulsante
Pennello = 6
'giallo
ElseIf OptionButton2.Value = True Then 'altrimenti se il secondo
Pennello = 3
'rosso
Else
'altrimenti il terzo
Pennello = 4
'verde
End If
End Sub

Questa volta la struttura decisionale If ha scelto fra tre possibilit.


Dopo la prima possibilit IfThen passato alla seconda ElseIfThen, infine lultima con
Else senza il Then.
Se invece di avere tre scelte, ne avessimo avute quattro, la terza sarebbe stata ElseIfThen
e la quarta Else.
Infine modificare la procedura CommandButton1_Click legata alla formattazione delle celle
come di seguito riportato.
Private Sub CommandButton1_Click()
SceltaPopolazione
'Macro in cui digitiamo la popolazione
ScegliColore
Macro per scegliere il colore
Range("F5").Select
Messaggi1
Macro per scegliere se controllare
If Risul = vbNo Then Exit Sub
Do While ActiveCell <> "" ' esegue se non vero che la cella vuota
If ActiveCell > Contenitore Then
'se superiore a 9999
Selection.Interior.ColorIndex = Pennello 'colora
End If
ActiveCell.Offset(1, 0).Range("A1").Select 'scende di una cella
Loop
Range("a1").Select
End
End Sub

Dopo la procedura SceltaPopolazione, abbiamo introdotto la procedura ScegliColore adibita a


raccogliere la scelta del colore dai Pulsanti di opzione.
Per lindicazione del colore da usare con
Selection.Interior.ColorIndex = abbiamo introdotto la variabile Pennello contenente il valore
del colore scelto.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

107

Case
La struttura If ElseIf, consente di nidificare al suo interno altre strutture If o anche If ElseIf,
un po come in Excel nidifichiamo la funzione Se, con la differenza che in VBA le possibilit
sono enormemente pi elevate.
Per se la scelta dovesse avvenire fra molti elementi, una decina per esempio, la struttura If
EsleIf, pur funzionando, non rappresenterebbe lideale. Se ciascuna istruzione ElseIf esegue
un confronto della stessa espressione con valori diversi, questo approccio risulta complicato.
In tal caso, consigliabile utilizzare listruzione Select Case.
Sub StudioCase()
Dim Numero As Integer
Number = 7
' Inizializza la variabile
Select Case Number
Case 1
' Numero 1
MsgBox "S uno", vbExclamation
Case 6, 7, 8
' Numeri tra 6 e 8
MsgBox "S da 6 a 8", vbExclamation
Case 9 To 12
' Numeri da 9 a 12
MsgBox "S da 9 a 12", vbExclamation
Case Else
'Gli altri numeri
MsgBox "Altro", vbExclamation
End Select
End Sub

Per verificare il funzionamento di questultima procedura, sostituire il contenuto della variabile


Number.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

108

Lezione XXIII Ciclo For Next


Il ciclo For Next (Per Successivo), consente di eseguire un determinato gruppo di
istruzioni, un certo numero di volte. Un ciclo For un modo sintetico per scrivere un gran
numero di istruzioni che fanno sostanzialmente la stessa operazione.
Osserviamo questo semplice esempio.
Sub Saluti()
Dim Conta As Integer
For Conta = 1 To 5
MsgBox "Ciao"
Next
End Sub

Eseguite questa macro e la finestra messaggio vi saluter per cinque volte. Se non avessimo
usato il ciclo For per ottenere lo stesso risultato avremmo dovuto scrivere la procedura nel
seguente modo.
Sub Saluti()
MsgBox "Ciao"
MsgBox "Ciao"
MsgBox "Ciao"
MsgBox "Ciao"
MsgBox "Ciao"
End Sub

Forse lesempio illustrato non rende ancora giustizia alle potenzialit del ciclo For, ma
osservate questaltro listato.
Sub ProvaFor()
Dim Conta, Elabora As Long
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
For Conta = 1 To 5
Elabora = Elabora * 2
Next
MsgBox Elabora
End Sub

La variabile Conta il contatore del ciclo For: ogni volta che il ciclo viene eseguito la
variabile Conta aumenta di uno. Nella prima esecuzione del ciclo essa conterr uno,
nellultima ripetizione, se il ciclo viene ripetuto cinque volte, conterr cinque.
Il numero di volte che il ciclo viene ripetuto dato dal valore espresso dopo la parola chiave
To, cio il 5.
1 To 5, che pu essere tradotto in : dallinizio (1) alla fine (5).
Quindi la variabile Elabora, che prima dellinizio del ciclo, ha assunto il valore digitato in
InputBox (per facilitare lesposizione dellesempio poniamo sia 3), assume il valore di se
stessa moltiplicata per 2, cio 3*2= 6. Il ciclo giunge a Next e da inizio alla seconda ripetizione
con la variabile Elabora che avr un valore di 6 e gli sar assegnato il valore di se stessa per
2, cio 6*2 = 12.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

109

E cos continuando sino alla quinta esecuzione, ove consegue il risultato di 96, visualizzato nella
finestra messaggio.
Ricavare dati da una cella
Il ciclo For pu diventare anche pi flessibile rendendo dipendente il numero di ripetizioni da
una variabile. Invece di avere
1 To 5 , possiamo proporre 1 To NomeVariabile.
Preparare questo nuovo esempio, controllando che nella cartella in cui stiamo lavorando sia
presente un foglio di lavoro denominato Foglio1, e digitare nella cella A1 il valore 5. Il numero
di ripetizioni sar determinato dal valore presente nella cella A1 del foglio Foglio1.
Nel codice sottostante possiamo vedere che nella riga 3 la variabile Raccogli, assume il valore
della cella A1. Nella riga 5 il numero di ripetizioni determinato dalla variabile Raccogli.
1:
2:
3:
4:
5:
6:
7:
8:
9:

Sub ProvaFor()
Dim Conta, Elabora, Raccogli As Long
Raccogli = Sheets("Foglio1").Range("a1")
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
For Conta = 1 To Raccogli
Elabora = Elabora * 2
Next
MsgBox Elabora
End Sub

Verificare il funzionamento di questa procedura posizionando il cursore in un punto qualsiasi di


ProvaFor e cliccare sul pulsante Esegui Sub. Noterete che cambiano il valore della cella A1 in
Foglio1 cambier il risultato finale.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

110

Errore di Overflow
Ma in agguato c un
errore. Provate a digitare
1020 in A1 e 20 in
InputBox. Far la sua
comparsa una finestra di
dialogo comunicante un
errore di Overflow.
Un Overflow pu essere il
risultato di un'assegnazione
superiore al valore massimo
previsto. Inseriamo nella
nostra
procedura
la
gestione degli errori, come visto nelle precedenti lezioni.
Sub ProvaFor()
Dim Conta, Elabora, Raccogli As Long
Raccogli = Sheets("Foglio1").Range("a1")
Elabora = Application.InputBox("Digita un numero", , , Type:=1)
On Error GoTo Salta
For Conta = 1 To Raccogli
Elabora = Elabora * 2
Next
MsgBox Elabora
Exit Sub
Salta:
MsgBox "Numeri troppo alti"
End Sub

Proteggere e sproteggere
Molte volte si deve lavorare con cartelle di lavoro contenenti un gran numero di fogli, che per
esigenze procedurali dobbiamo consegnare allutente finale protetti. Durante la lavorazione e
successivi aggiornamenti si dovr procedere alla protezione e sprotezione dei fogli di lavoro
pi volte, attivit decisamente lunga e noiosa, anche perch non effettuabile in multifoglio.
Le due procedure qui di seguito riportate proteggono e sproteggono tutti i fogli di una cartella
di lavoro in un battibaleno, inserendo anche una password, che naturalmente pu essere
variata a piacere.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

111
Sub Proteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Protect Password:="lilli"
Next
Worksheets(1).Select
End Sub
Sub Sproteggi()
Dim spro, conta, fog As Integer
fog = 1
spro = Worksheets.Count
For conta = 1 To spro
Worksheets(fog).Select
fog = fog + 1
ActiveSheet.Unprotect Password:="lilli"
Next
Worksheets(1).Select
End Sub

Rispetto agli esempi precedenti sono presenti I seguenti elementi di innovazione.


spro = Worksheets.Count

La propriet Count restituisce il numero di fogli di lavoro presenti in una cartella di lavoro.
Worksheets(fog).Select

Un foglio di lavoro, oltre che dal nome individuabile dalla posizione che occupa nella cartella
di lavoro, quindi Worksheets(1) rappresenta il primo foglio di lavoro. Nel nostro caso
Worksheets(fog) , il luogo del valore c la variabile fog . Se alla variabile fog viene associato
il valore 1, indicher il primo foglio, associandogli 2, il secondo foglio e cos via.
ActiveSheet.Protect

Ovviamente protegge il foglio di lavoro attivo, mentre Unprotect lo sprotegge. E possibile


omettere listruzione Password, in tal caso la protezione avverr senza nessuna parola
segreta.
Utilizzando InputBox anche possibile permettere allutente di personalizzare la password.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

112

Parte4
ControllareExcel
Una delle grandi prerogative del VBA, la possibilit di creare nuove funzioni da affiancare
alle funzioni incorporate di Excel, di manipolare e spostare dati, di determinare le opzioni di
apertura di una cartella, di eliminare la comparsa di messaggi di avvertimento; insomma, di
assumere il controllo di Excel.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

113

Lezione XXIV Le Function

Tipi di routine
In Visual Basic, quindi VBA, possibile creare due tipi di routine, ovvero la gi ampiamente
sperimentata Sub e la routine Function.
La routine Sub ununit di codice racchiusa tra le istruzioni Sub e End Sub che esegue
delle operazioni, senza restituire alcun valore.
Una routine Function ununit di codice racchiusa tra le istruzioni Function e End
Function che esegue unoperazione specifica restituendo un valore.
Le routine Function possono essere utilizzate in sostituzione di formule complesse,
direttamente nei fogli di lavoro, proprio come si utilizzano le funzioni incorporate di Excel.
Creare una nuova funzione per Excel
Grazie alle formule di Excel, riusciamo a risolvere problemi veramente complessi. Purtroppo, a
volte, determinati problemi risultano essere superiori al nostro retroterra culturale. Ad
esempio, personalmente non capisco assolutamente niente di finanza, quindi non sarei in grado
di calcolare limporto delle singole rate mensili, derivanti dal finanziamento chiesto ad una
banca per acquistare unauto. Fortunatamente Excel ci mette a disposizione la funzione Rata,
cos il problema risolto in poche battute sulla tastiera.

Come si pu vedere nellimmagine, la finestra di dialogo Incolla funzione raccoglie un bel


numero di Categorie, le quali a loro volta, contengono una ulteriore ricca scelta di funzioni.
Ma, il destino birbone, state tranquilli, far in modo che la funzione per voi, in quel momento
indispensabile, non sia contemplata nella pur ricca collezione di Excel.
Ed proprio qui che entrano in ballo le routine di tipo Function.

E r oC n o i-M n a. eT tidiir ev t
ni a n n a u lN t u it i r ai
c
i
rs

114

Analisi del problema


Attenzione! Si presuppone che, se pensiamo di creare una funzione per aiutare lutente, o
anche noi stessi, il problema da affrontare sia dotato di una discreta complessit. E quindi,
indispensabile effettuare una accurata analisi delle problematiche da affrontare e del come
risolverle.
Il pretesto preso per il nostro esempio, attinge la sua ispirazione da una forma di lavoro che
sempre pi si sta diffondendo, soprattutto fra i pi giovani: la collaborazione coordinata e
continuativa. In molti si saranno scoraggiati di fronte alla complessit del calcolo della ritenuta
dacconto e delle ritenute previdenziali, cos da lasciare una parte dei propri, non gi lauti
guadagni, nelle tasche di qualche commercialista.

Come trovare limporto netto


Illustreremo adesso i passi occorrenti, per ricavare dallimporto lordo, la corrispondente cifra
netta, utilizzando i criteri di calcolo validi sino al 31/12/2000.
A titolo esemplificativo partiamo da un importo lordo di un milione.
Rispetto la cifra di partenza, un milione, occorre calcolare il 20% a titolo di ritenuta
dacconto.
Sempre dalla cifra lorda, un milione, calcolare il 95% per ricavare limponibile (la
cifra) sul quale calcolare i contributi previdenziali.
Laliquota previdenziale nel 2000 era del 13% o del 10%, di cui la quota a carico del
lavoratore corrispondeva ad un terzo .
Nel foglio elettronico, scegliendo per semplicit la laliquota previdenziale del 10%, la formula
per ottenere limporto netto la seguente.
=1000000*0,8-1000000*0,95*0,1*0,333333333333333

Teoricamente si tratta di una formula piuttosto semplice, ma ne illustriamo ugualmente alcuni


passaggi salienti.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

115

La prima parte del calcolo consiste nel calcolare il compenso epurato dal 20% della ritenuta di
acconto e che i pi svolgono in questo modo:
1000000-(1000000*20%)

anche se in realt abbreviabile nel seguente algoritmo:


1000000*0,80

Un secondo passaggio degno di nota riguarda lo scrivere 1/3. Nella formula lo si vede
rappresentato da un 0,333333333333333, ma in realt stato digitato proprio come un terzo
(1/3). I pi attenti avranno sgranato gli occhi,sapendo che se in un foglio di Excel si scrive 1/3,
questi viene riconosciuto come 1 marzo. Per far metabolizzare ad Excel un valore frazionario
si deve procedere nel seguente modo:
Digitare uno zero (0), premere spazio (barra spazio) , infine digitare 1/3.
Se qualcuno si stupito per lassenza di parentesi nella formula, non dimentichi la regola della
precedenza fra operatori aritmetici.
CompensoNetto
Passiamo alla creazione della funzione. Attiviamo un modulo e digitiamo il seguente codice.
Function CompensoNetto(Lordo, Ritenuta, CTR)
Dim Netto, LordoXCTR, CTRLavor As Long
Netto = Lordo - Lordo * Ritenuta
LordoXCTR = Lordo * 0.95
CTRLavor = LordoXCTR * CTR / 3
CompensoNetto = Netto - CTRLavor
CompensoNetto = Round(CompensoNetto, 0)
End Function

EnricoCannoni-Manuali.NetTuttiidirittiriservati

116

Function CompensoNetto(Lordo, Ritenuta,


CTR)

Netto = Lordo - Lordo * Ritenuta

LordoXCTR = Lordo * 0.95

CTRLavor = LordoXCTR * CTR / 3

CompensoNetto = Netto - CTRLavor

CompensoNetto = Round(CompensoNetto, 0)
End Function

CompensoNetto il nome della funzione. I nomi inseriti fra le


parentesi sono gli argomenti della funzione, utilizzabili allinterno
della funzione come variabili predefinite.
Lordo = corrisponde al compenso lordo
Ritenuta = corrisponde alla ritenuta d'acconto (20%)
CTR = corrisponde al CTR del 10% o del 13 %.
Netto il nome della variabile che assume il valore ottenuto dalla
sottrazione della variabile Lordo , meno il valore ottenuto dalla
variabile Lordo per la variabile Ritenuta .
Es. Se Lordo = 1.000.000 e Ritenuta 20% sar eseguito il seguente
calcolo: 1.000.000 - 1.000.000 * 20% = 800.000
LordoXCTR la variabile che assume il valore ottenuto dalla
variabile Lordo * 95%, cio l'imponibile sul quale calcolare i CTR
Es. Sar eseguito il seguente calcolo: 1.000.000 * 95% = 950.000
CTRLavor la variabile che assume il valore ottenuto dalla
variabile LordoXCTR moltiplicato per il valore della variabile CTR
diviso per 3, cio la quota di CTR a carico del consulente.
Es. Se CTR = 10% sar eseguito il seguente calcolo:
950.000 * 10% / 3 = 31.666
CompensoNetto la variabile e il nome della funzione che assume il
risultato finale, ottenuto sottraendo dalla variabile Netto la variabile
CTRLavor .
Es. Sar eseguito il seguente calcolo:
800.000 - 31.666 = 768.334
In questa riga viene arrotondato il risultato con lausilio della
funzione Round .
Fine della funzione.

A questo punto siamo pronti ad utilizzare CompensoNetto in un foglio di lavoro, come una
qualsiasi funzione. Ad esempio se nella cella A1 contenuto il valore 1.000.000
corrispondente al compenso lordo, in A2 troviamo 20% equivalente alla ritenuta d'acconto e in
A3 10% corrispondente al CTR previdenziale, si potr in una cella libera qualunque inserire le
seguenti istruzioni: =CompensoNetto( A1; A2; A3 ) per ottenere il compenso netto del
collaboratore.
Ricordatevi, se volete rendere la funzione utilizzabile in tute le cartelle di lavoro, di collocarla
nella cartella di lavoro speciale Personal.xls.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

117

Lezione XXV Manipolare i dati


Molte volte, siamo chiamati ad operare elaborazioni su dati, provenienti da altre applicazioni,
che si presentano, come dire, inquinati. Diventa fondamentale bonificarli togliendo
caratteri superflui, spazi e altre eventuali imperfezioni.
Costruire lesempio
In tutte le celle, relative alla colonna dei Comuni, inseriamo uno
spazio vuoto e il CAP. Per realizzare tali condizioni attenersi ai
seguenti passi.
Innanzi tutto, per sicurezza, duplichiamo il foglio Comuni.
o Con il puntatore del mouse portarsi sulla scheda del foglio Comuni, tenere
premuto CTRL, tenere premuto il tasto sinistro del mouse e spostarsi un po
pi a destra per generare il foglio Comuni(2), clone perfetto di Comuni.
Nel foglio Comuni(2) attivare la cella G5, digitarvi la formula =A5& &B5
trascinandola sino alla corrispondenza dellultima riga con dati, la 319.
Premere la combinazione di tasti CTRL+C per copiare negli Appunti la colonna,
ancora selezionata, di dati test generata.
Posizionarsi in A5 e dal menu Modifica scegliere Incolla speciale.
Dalla finestra di dialogo Incolla speciale scegliere Valori e confermare ciccando su
OK.
Cancellare i dati della colonna G ed eliminare la colonna B, quella del CAP, sino ad
ottenere il risultato illustrato nellimmagine.

Naturalmente, anche senza ricorrere al VBA, sarebbe possibile con le funzioni di Excel,
ripulire i nomi dei comuni dallo spazio vuoto e dal CAP: ma occorre ricordarsi che un utente
avanzato opera per creare agli altri utenti un ambiente software pi amichevole, dotato di tutti
gli agi portati dallautomatismo.
Funzioni Len e Left
NellEditor di VBA, agendo sul menu Inserisci, aggiungere un nuovo modulo, quindi digitarvi
il codice di seguito illustrato.
1: Sub Pulisci()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6:
bb = Len(ActiveCell) 6

EnricoCannoni-Manuali.NetTuttiidirittiriservati

118

7:
aa = Left(ActiveCell.Cells, bb)
8:
ActiveCell.Offset(0, 6).Range("A1").Select
9:
ActiveCell = aa
10:
ActiveCell.Offset(1, -6).Range("A1").Select
11: Loop
12: Trasporta
13: Range("a1").Select
14: End Sub
Range("a5").Select
Do While ActiveCell <> ""
bb = Len(ActiveCell) 6

aa = Left(ActiveCell.Cells, bb)

ActiveCell.Offset(0, 6).Range("A1").Select
ActiveCell = aa
ActiveCell.Offset(1, -6).Range("A1").Select
Loop
Trasporta

Siposizionasullaprimacellacondati
Ripeteleistruzionisuccessiveperfermarsiquandoincontraunacellavuota.
Lavariabile bb assumeilrisultatodellafunzioneLen checontailnumerodi
caratterideltestoinserito nella cella attivameno 6. Sei composto dai5
caratteridelCAP+l spazio.Quindisottraendoaa lunghezzacomplessiva
o
l
della stringa6,veniamoasaperediquanticarattericompostoi nomedel
l
comunecontenutoinquellacella.
La variabile aa assume i valoredella funzione Left, che restituisceun
l
numerospecificatodicaratteripartendodasinistra,contenutinellacellaattiva.
Ilnumerodicarattericheprelevadatodallavariabile bb.
Sispostaadestradi6celle.
Lacellaattivaassumeilvaloredellavariabile aa.
Scendediunacellaetornaasinistradiseicelle.
Ripetere.
Finitoilciclo Do While ,esegueillistatodellaproceduraTrasporta.

Sub Trasporta()
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste
End Sub
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste

Siposizionasullacella G5 ,laprimadellanuovacolonna,appena
creatadaPulisci.
Selezionatuttelecellecontenentidati.
Taglia.
Selezionalacella A5.
IncollailcontenutodellacolonnaG.

Riepiloghiamo lazione della procedura Pulisci, coadiuvata dalla procedura Trasporta.


La procedura Pulisci, grazie allausilio del ciclo Do..While passa in rassegna tutte le celle
contenenti i nomi dei comuni, sporcati dal CAP. Quindi avvalendosi delle funzioni Len e
Left estrae il nome pulito del comune che sposta sei celle a destra, cio nella colonna G. A
questo punto entra in azione la procedura Trasporta che seleziona lintero intervallo di nomi
ripuliti, li Taglia via, per andare ad incollarli in sostituzione dei dati originali.
Ottimizzare
Ma vediamo che con un po di spirito dosservazione possiamo ottimizzare il codice della
procedura Pulisci.
1: Sub Pulisci2 ()

EnricoCannoni-Manuali.NetTuttiidirittiriservati

119

2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:

Dim aa As String
Dim bb As Integer
Range("a5").Select
Do While ActiveCell <> ""
bb = Len(ActiveCell) - 6
aa = Left(ActiveCell.Cells, bb)
ActiveCell = aa
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
Range("a1").Select
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

120

Sino al punto 7 la procedura Pulisci e la procedura Pulisci2, sono identiche, ma nel punto 8
abbiamo la svolta!
In realt basta associare subito il risultato della variabile aa alla cella attiva. Avendo entrambe
le procedure sotto gli occhi pu sembrare evidente lerrore commesso con la prima routine:
in realt estremamente facile commettere simili sviste e creare procedure che, vero,
funzionano, ma con mille contorcimenti, creando alla lunga dei rallentamenti nellesecuzione
del codice non indifferenti.
Passare i dati ad un nuovo foglio
La procedura PulisciSposta, qui di seguito riportata , pressoch identica a Pulisci2 sino al
punto 12, salvo alla riga 4, ove per essere sicuri che la macro sia eseguita nella giusta
locazione, stato indicato il foglio sul quale eseguire le operazioni di pulizia.
1: Sub PulisciSposta()
2: Dim aa As String
3: Dim bb As Integer
4:
Sheets("Comuni").Select
5:
Range("a5").Select
6:
Do While ActiveCell <> ""
7:
bb = Len(ActiveCell) - 6
8:
aa = Left(ActiveCell.Cells, bb)
9:
aa = LTrim(aa)
10:
ActiveCell = aa
11:
ActiveCell.Offset(1, 0).Range("A1").Select
12:
Loop
13:
Range("a4").Select
14:
Range(Selection, Selection.End(xlDown)).Select
15:
Selection.Copy
16:
Sheets.Add
17: On Error GoTo salta
18:
ActiveSheet.Name = "Arrivo"
19:
Range("a4").Select
20:
ActiveSheet.Paste
21:
Columns.AutoFit
22:
Range("a1").Select
23:
Exit Sub
24: salta:
25:
MsgBox "Il foglio Arrivo " & vbCr & _
26:
" gi presente", vbCritical
27: End Sub

Commentiamo le successive istruzioni.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

121

Range("a4").Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add
On Error GoTo salta
ActiveSheet.Name = "Arrivo"
Range("a4").Select
ActiveSheet.Paste
Columns.AutoFit
Range("a1").Select
Exit Sub
salta:
MsgBox "Il foglio Arrivo " & vbCr & _

" gi presente", vbCritical

Si posiziona sulla prima cella della colonna dati.


Seleziona lintera colonna di dati: corrisponde alla
combinazione di tasti CTRL+SHIFT+? .
Copia la selezione negli Appunti.
Aggiunge un foglio di lavoro.
In caso di errore si sposta alletichetta salta.
Rinomina il foglio appena inserito.
Seleziona A4 del foglio Arrivo.
Incolla
dagli
Appunti
la
selezione
precedentemente copiata.
Autodimensiona la larghezza della colonna alla
cella contenente il nome di comune pi lungo.
Seleziona la cella A1.
Esce dalla procedura per evitare di eseguire le
istruzioni relative allerrore.
Etichetta a cui saltano le istruzioni in caso di
errore,
Messaggio di avvertimento, basato sul pi
probabile errore che potrebbe capitare, cio il
foglio Arrivo gi presente nel momento che la
procedura nella riga 18 cerca di rinominare il
foglio appena aggiunto in Arrivo.
E interessante notare come nella riga
precedente stata usata la costante vbCr per
mandare a capo in un punto determinato il testo
del messaggio.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

122

Pulire solo se
Ipoteticamente potremmo voler applicare la bonifica dei nomi soltanto se questi rientrano in
determinate condizioni: ad esempio, solo quando hanno una popolazione inferiore ai 1000
abitanti o superiore ai 10000.
1: Sub Pulisci3()
2: Dim aa As String
3: Dim bb As Integer
4:
Range("a5").Select
5:
Do While ActiveCell <> ""
6::
ActiveCell.Offset(0, 4).Range("A1").Select
7:
If ActiveCell < 1000 Or ActiveCell > 10000 Then
8:
ActiveCell.Offset(0, -4).Range("A1").Select
9:
bb = Len(ActiveCell) - 6 e sottrae
10:
aa = Left(ActiveCell.Cells, bb)
11:
ActiveCell = aa
12:
ActiveCell.Offset(1, 0).Range("A1").Select
13:
Else
14:
ActiveCell.Offset(1, -4).Range("A1").Select
15:
End If
16: Loop
17: Range("a1").Select
18: End Sub

Sino al punto 5 la procedura Pulisci3 identica alla precedente.


ActiveCell.Offset(0, 4).Range("A1").Select
If ActiveCell < 1000 Or ActiveCell > 10000 Then
ActiveCell.Offset(0, -4).Range("A1").Select
Dal punto 9 al punto 12
Else
ActiveCell.Offset(1, -4).Range("A1").Select
End If

Sispostaversolaquartacellaadestra,ciolapopolazione.
Ifsiavvale delloperatoreORper definirel duecondizionii baseae
e
n
l
qualioperarelaripulitura.
Sesoddisfatteritornaallacelladelcomune.
Eseguelaripulituraescendediunacella.
Altrimenti,senonsoddisfatte.
Scende diuna cella e torna aicomuni, senza effettuarenessuna
ripulitura.
FinedellastrutturadicontrolloIf

EnricoCannoni-Manuali.NetTuttiidirittiriservati

123

Lezione XXVI Auto_Apri_Chiudi


Anche se in questo corso non stato previsto affrontare temi relativi alluso della grafica in
Excel, innegabile che la creazione di un buon programma sia legato alla cura posta nella sua
interfaccia grafica.
In queste lezioni dedicheremo spazio a quelle istruzioni VBA che permettono di valorizzare
laspetto dei nostri programmi, di personalizzarli, di renderli pi usabili, sicuri e automatizzati.

Auto_Apri
Avrete notato, che se si salva una cartella di lavoro con attivo il Foglio2, posizionato nella cella
Z100, alla successiva riapertura questa si presenter con il Foglio2 in Z100.
Peccato! Magari avevate previsto una bella pulsantiera nel Foglio1 e per rendere guidata la
navigazione allinterno della cartella , avevate anche tolto le Schede indicatrici dei fogli.
Fortunatamente il VBA mette a disposizione una procedura speciale che permette di indicare
con precisione le azioni che Excel deve compiere in fase di apertura della cartella di lavoro.
Il trucco consiste nel dare alla procedura il nome di Workbook_Open.
Sub Workbook_open()
MsgBox Ciao
End Sub

E di inserirla nel modulo speciale ThisWorlbook.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

124

Auto_Chiudi
E molto probabile che anche in fase di chiusura della cartella di lavoro, si vogliano eseguire
automaticamente alcune operazioni, fosse solo il ripristinare i settagli modificati in fase di
apertura.
Tale procedura dovr assumere il nome di Workbook_BeforeClose(Cancel As Boolean).
Anche in questo caso la procedura dovr dimorare allinterno del modulo ThisWorkbook.
Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox Arrivederci
End Sub

Un po di storia
Ogni tanto si vedono delle procedure di apertura e di chiusura chiamate rispettivamente
Auto_Open e Auto_Close. Si tratta di macro risalenti alle versioni 5 e 7 di Excel, ormai
tollerate dal VBA per esigenze di compatibilit, ma non certamente amate: quindi non usatele.
A proposito nelle versioni di Excel 5 e 7, era prevista la versione del VBA in italiano e le
macro di apertura e di chiusura automatica, erano denominate Auto_Apri e Auto_Chiudi.
Istruzioni varie
Vengono adesso presentate una serie di istruzioni, che possono essere utilizzate sia allinterno
delle due procedure di apertura, di chiusura, o di altre macro.

Personalizzare la barra del titolo della cartella di lavoro.

Application.Caption = Corso di VBA on line

In chiusura, salva la cartella attiva senza chiedere conferma.

ActiveWorkbook.Save

Chiude la cartella di lavoro senza salvare le modifiche

ActiveWorkbook.Saved = True

Impostando la propriet Saved su True un po come ingannare Excel, dicendogli che la


cartella gi stata salvata, anche se non vero.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

125

Non visualizza la finestra di dialogo di conferma: per spiegarci meglio, quella che
compare quando si vuole eliminare un foglio di lavoro.

Application.DisplayAlerts = False

Per ripristinarla sostituire False con True. E importante ricordarsi di ripristinare la


visualizzazione del messaggio di conferma; pu essere molto pericolosa la mancanza di un
elemento con il quale gli utenti sono abituati ad interagire.

Disattiva laggiornamento dello schermo durante lesecuzione di una macro.

Application.ScreenUpdating = False

E importante inserire sempre listruzione di ripristino dellaggiornamento impostando la


propriet ScreenUpdating siu True.

Aprire un file di Excel.

Workbooks.Open FileName:="C:\Documenti\Comuni.xls"

Esempi di Auto_Apri e Auto_Chiudi


Il listato illustra un esempio di utilizzo della procedura di apertura automatica, discretamente
articolato.
Sub Workbook_open()
With Application
.ScreenUpdating = False
Disattiva laggiornamento dello schermo
.DisplayFormulaBar = False
Toglie la barra della formula
.DisplayStatusBar = False
Toglie la barra di stato
End With
With ActiveWindow
.DisplayHorizontalScrollBar = False Toglie la barra di scorrimento orizzon.
.DisplayVerticalScrollBar = False
Toglie la barra di scorrimento vertic.
.DisplayWorkbookTabs = False
Toglie le schede indicanti I fogli
End With
ActiveWindow.WindowState = xlMaximized
Excel a tutto schermo
Application.Caption = " Corso di VBA on line"
Sheets("Comuni").Select
Si apre sul foglio Comuni
Range("a1").Select
Application.ScreenUpdating = True
Ripristina laggiornamento dello schermo
End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

126

E importante in chiusura, ripristinare gli elementi di Excel che sono stati modificati o eliminati
in fase di apertura.

Sub Workbook_BeforeClose(Cancel As Boolean)


With Application
.ScreenUpdating = False
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
End With
Application.Caption = Empty
'Svuota la barra del titolo
ActiveWorkbook.Saved = True
Application.ScreenUpdating = True
End Sub

Proteggere
Se volete essere sicuri che nessuno modifichi il vostro lavoro, o peggio faccia dello
sciacallaggio, proteggete il codice delle macro.
Portarsi nellEditor di VB.
Dal menu Strumenti scegliere la voce Propriet di VBAProject .
Attivare la scheda Protezione.
Mettere il flag su Proteggi progetto dalla visualizzazione.
Inserire la password e confermare ciccando su OK.

Nota: Non fate troppo affidamento su questo tipo di protezione, nella rete sono reperibili dei programmi

che decriptano facilmente le password dei progetti VBA.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

127

Lezione XXVII I macro virus


I virus informatici, "grazie al cielo", non sono mai stati una razza che ha corso il
rischio di estinguersi, ma in questi ultimi tempi, con il proliferare incontrollato dei
macro virus, incominciamo a sentire il bisogno di effettuare un abbattimento "selettivo",
per evitare danni eccessivi all'ambiente dei nostri pc.

Come difendersi
La prima regola in assoluto quella di essere dotati di un antivirus aggiornato. Si noti che un
aggiornamento efficace deve avere una cadenza minima mensile, meglio se settimanale.
Scandire sempre i nuovi documenti di Word, Excel, Power Point ed Access, sia che
provengano da supporti magnetici tipo floppy o CD-ROM, che da posta elettronica. Pu
essere brutto a dirsi, ma non fidatevi di nessuno.
Word ed Excel sono dotati di una procedura che riconosce e segnala in fase di apertura
l'eventuale presenza di una macro nel documento. Alcuni utenti infastiditi da tale segnalazione,
che avviene anche per macro non infette, la disabilitano. Non fatelo assolutamente!
Per ripristinare la procedura di protezione da macro virus, dal menu Strumenti di Excel,
scegliere Macro\Protezione e impostarla su Media.
Nota: La protezione da macro virus stata introdotta con Office 97 e a seconda della versione e

dellapplicativo, pu presentare delle piccole differenze nelle impostazioni di disabilitazione e


riabilitazione.

Scrivere una macro, abbiamo visto nel nostro corso, non molto difficile, ma sono ugualmente
pochi quelli che sono capaci di farlo e anche quelli in grado di scriverne non necessariamente
le creano: quindi se all'apertura di una cartella di Excel, o peggio di un documento di Word, vi
viene segnalata la presenza di una macro e non vi stato comunicato che effettivamente
doveva esserci, non attivatela.
Se avete attivato una macro, dopo l'avvertimento della sua presenza e al successivo riavvio di
quel documento, l'avviso non vi viene pi proposto, siete sicuramente "infetti".

EnricoCannoni-Manuali.NetTuttiidirittiriservati

128

Difesa artigianale
Dalle osservazioni del paragrafo precedente si ricava una idea semplice, ma abbastanza
efficace per trovare i macro virus.
Reperire un file di Excel contenente una macro, possibilmente non infetta, e copiarlo
su un dischetto protetto da scrittura.
Inserire il floppy nel lettore del PC sospetto e lanciare il file di Excel.
Se la procedura di rilevamento macro entra in funzione, probabilmente la macchina sana,
altrimenti il dado tratto, siete infestati.
Per toccare con "mano" l'entit virale richiamate dal menu Strumenti\Macro l'Editor di Visual
Basic e qui se siete abbastanza smaliziati, potete anche provare a estirpare a "mani nude" il
maligno.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

129

Appendice

Unanimazione per misurare le prestazioni del PC


Una delle idee pi deleterie che pu circolare su Excel, quella di crederlo un programma per
rigidi contabili. Nulla di pi falso!
In piena era internettiana imperversano programmi tipo Flash, che sembrano gli unici a poter
offrire grafica ed animazioni. In realt anche il nostro foglio elettronico in grado, anche se un
po timidamente, di dire la sua in fatto di animazioni.
Costruiremo una piccola animazione per misurare le prestazioni del nostro PC.
Procuriamoci una piccola immagine a piacere, ad esempio un ciclista. Lidea
far scendere il ciclistino di una ventina di celle e di farlo risalire al punto di
partenza, dando limpressione della pedalata. Per ottenere un simile effetto
occorre una seconda immagine speculare del ciclista, facilmente ottenibile con
programma di grafica, tipo Paint Shop Pro.
La nostra procedura dovr fare in modo che mentre le due immagini scendono
lungo il foglio, siano alternativamente visibili per dare appunto limpressione della
pedalata.
Inseriamo le due immagini allinizio di un foglio, facendo attenzione a sovrapporle
con precisione, quindi, se le immagini sono su sfondo bianco, come quelle del
nostro esempio, colorare il foglio di lavoro di bianco.
Passare nellEditor Di VB e digitare il codice della procedura CorsaCiclista.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

di
un

130

1: Sub CorsaCiclista()
2:
Dim VarDisegno As Picture
3:
Dim ContCorsa, Contatore, risul As Integer
4:
Dim VelocitPc As Variant, Mess, tit As String
5:
Sheets("Corsa").DrawingObjects("Picture 1").BringToFront
6:
Mess = "Confermando verr eseguita un'animazione la" & Chr(13) & _
7:
"cui esecuzione potrebbe risultare eccessivamente" & Chr(13) & _
8:
"lunga con PC non molto potenti."
9:
tit = "Corso di VBA on line"
10: risul = MsgBox(Mess, vbYesNo, tit)
11: If risul = vbNo Then
12:
Range("a1").Select
13:
Exit Sub
14:
End If
15:
VelocitPc = Timer
16:
For ContCorsa = 1 To 144
17:
With Sheets("Corsa").DrawingObjects("Picture 1")
18:
.Visible = True
19:
.Top = .Top + 2
20:
.Visible = False
21:
End With
22:
With Sheets("Corsa").DrawingObjects("Picture 2")
23:
.Top = .Top + 2
24:
.Visible = True
25:
End With
26:
Next
27:
For ContCorsa = 1 To 73
28:
With Sheets("Corsa").DrawingObjects("Picture 1")
29:
.Visible = True
30:
.Top = .Top - 2.5
31:
.Visible = False
32
End With
33:
With Sheets("Corsa").DrawingObjects("Picture 2")
34:
.Visible = True
35:
.Top = .Top - 2.5
36:
End With
37:
Next
38:
With Sheets("Corsa").DrawingObjects("Picture 1")
39:
.Visible = True
40:
End With
41:
MsgBox (Timer - VelocitPc) & " Secondi"
42: End Sub

EnricoCannoni-Manuali.NetTuttiidirittiriservati

131

Sheets("Corsa").DrawingObjects("Picture
1").BringToFront
Dal punto 6 al punto 14
VelocitPc = Timer
For ContCorsa = 1 To 144
With Sheets("Corsa").DrawingObjects ("Picture
1")
.Visible = True
.Top = .Top + 2
.Visible = False
End With
With Sheets("Corsa").DrawingObjects ("Picture
2")
.Top = .Top + 2
.Visible = True
End With
Next

Dal punto 27 al punto 37


With Sheets("Corsa").DrawingObjects ("Picture
1")
MsgBox (Timer - VelocitPc) & " Secondi"

Nelfoglio Corsa,laprimaimmaginedelciclista, Picture 1 ,deveesserein


primopiano.
Conunafinestramessaggiochiediamoconfermapercontinuareomenola
procedura.
AssociaallavariabilelamisurazionedeltempodatadallafunzioneTimer .
Ripeteleoperazionisuccessiveper144volte.
ConloggettoPicture 1
Impostalaproprietdivisibilesuvero.
Spostainbassologgettodiduepunti.
Rendeinvisibilelimmaginedelprimociclistaecosrimanevisibilelaseconda
immagine.
FineenunciatoCon.
Passaallasecondaimmagine.
Elaspostainbassodiduepunti.
Confermandonelavisibilit.
FineenunciatoCon.
Ripetedacapoilciclo.Quindi,mentrevisibile,fascenderediduepuntiilprimo
ciclistaelonasconde.Aquestopuntopassaalsecondociclista,chenonpicoperto
dalprimociclista,scendeasuavoltadiduepunti.Ricompareilprimociclistaeper
144volte.
Esegueleoperazionidirisalita,cheavendouncicloripetutomenovolteespostamenti
pilunghipirapidodelladiscesa.
Terminatalanimazionerendevisibilelaprimaimmagine.
Visualizzailtempoimpiegatoapercorrereilgirodelfoglio.

Nota: Ad essere scrupolosi, DrawingObjects un oggetto nascosto, perch ormai considerato obsoleto.

Certo, i ragionieri continueranno ad usare Excel per la grigia contabilit aziendale, ma magari,
con langolo della bocca piegato verso lalto, ad abbozzare un tiepido sorriso.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

132

Conclusioni
Questo corso di programmazione, avrete letto nella presentazione, stato allestito, non per i
programmatori professionisti, ma per utenti avanzati (power user), che volevano estendere le
potenzialit, gi ampie, offerte da Excel.
Con questo non si inteso dare adito ad una interpretazione riduttiva, del tipo: i corsi per
programmatori sono di serie A, gli altri di serie B.
In realt sono due aspetti dellinformatica costellati da molte diversit.
Il programmatore, molte volte, appartiene ad un team, sviluppa una porzione specifica
dellintero progetto, in taluni casi non conosce neanche molto bene quali sono le finalit del
software su cui sta lavorando e sicuramente non ha esperienza diretta in quello specifico
ambito lavorativo. A lui si chiede di costruire una struttura solida, sicura e magari duratura nel
tempo.
Lutente avanzato generalmente inserito nel contesto lavorativo ove le sue applicazioni
dovranno funzionare e molte volte dovr realizzarle nei ritagli di tempo. Dovr allestire piccole
e agili procedure in pochi giorni per far fronte a problemi imprevisti, magari in attesa del
rilascio della procedura ufficiale, che dovr uscire da l a poco.
Questo non vuol dire che le due figure siano inavvicinabili, anzi a volte gli utenti avanzati
crescono cos tanto a livello di conoscenze tecniche da diventare dei veri e propri
programmatori. Purtroppo pi difficile il processo inverso. E raro che un programmatore
puro riesca a stabilire un punto di contatto, o meglio a comunicare con i fruitori del suo
software.
Se avete fatto vostri i concetti espressi da questo corso, sarete sicuramente in grado di
realizzare applicazioni professionali di tutto rispetto. Per, non dimenticatevi che in realt
abbiamo solo scalfito limmenso universo del VBA.
Non stato neppure preso in considerazione un blocco di costruzioni fondamentali come gli
Oggetti, per non parlare dellassoluta assenza di riferimenti allintegrazione con altre
applicazioni Office.
Poi, per chiunque lavori in una azienda di medie o grandi dimensioni, non da trascurare la
tematica legata alle intranet e alla interazione fra pagine WEB e applicativi Office.

EnricoCannoni-Manuali.NetTuttiidirittiriservati

FUNZIONI PARTICOLARI DI EXCEL

FUNZIONI PARTICOLARI DI EXCEL

)XQ]LRQLLQXWLOL

6(

2

Calma, non voglio dire che le tre funzioni di cui sopra siano davvero inutili; spesso sono molto utili,
specialmente SE, ma altrettanto spesso se ne pu fare a meno con un certo guadagno di efficienza.
Supponiamo di avere una lista fatta cos:

1
2
3
4
5
6
7
8
9

A
NOME
Rossi
Verdi
Bianchi
Verdi
Bianchi
Verdi
Verdi
Rossi

B
TIPO
pasta
pasta
pasta
riso
riso
riso
riso
pasta

C
Q.TA'
43
19
25
14
84
52
78
2

Supponiamo che voglia aggiungere una colonna a destra per visualizzare solo i risultati per Rossi e pasta
(contemporaneamente): posso farlo in due modi:
1.
2.

=SE(E(A2="Rossi";B2="pasta");C2;0)
=(A2="Rossi")*(B2="pasta")*C2

Il pregio della 1 che al posto dello 0 (per quando la condizione falsa) ci posso mettere quello che mi pare,
mentre nella 2 no. Per la 2 un tantino pi snella, il che torner utile tra poco, per complicarla un po. Il
risultato in ogni caso sarebbe una colonna di zeri, tranne nella prima riga (43) e lultima (2) che
corrispondono ai criteri.
Cmq, gi che ci siamo, la colonna si pu sistemare per avere un risultato pi elegante, una cosa del genere:
D
1
2
3
4
5
6
7
8
9

43
Vuoto
Vuoto
Vuoto
Vuoto
Vuoto
Vuoto
2

FUNZIONI PARTICOLARI DI EXCEL


Il che pu essere ottenuto modificando la formula col SE, oppure modificando il FORMATO delle celle in
questione, senza toccare cio la formula 2, che rimane identica. Basta selezionare le celle in questione e
aprire la finestra Formato->Celle (o premere Ctrl+1); al posto di Standard basta scrivere quanto segue1:
#;-#;Vuoto

dove ovviamente a Vuoto possibile sostituire qualunque testo. Oppure, se volessi semplicemente non
visualizzare nulla al posto degli zeri2:
#;-#;;

S, ma anche se formattata per bene, una colonna cos non il massimo Infatti a questo punto possiamo
farne la somma, semplicemente cos:
=SOMMA((A2:A9=Rossi)*(B2:B9=pasta)*C2:C9)

alla fine della quale per non basta lInvio; essendo una formula particolare3 necessario premere la
combinazione Ctrl+Shift+Invio. Compariranno le parentesi graffe ai limiti della formula.
Naturalmente ai testi nella formula possibile sostituire riferimenti di celle:
=SOMMA((A2:A9=F1)*(B2:B9=G1)*C2:C9)

ad esempio mettendo la formula in H1:


F
G H
1 Rossi pasta 45
Si potrebbe obiettare che allora era meglio creare una tabella Pivot Forse vero, ma una tabella Pivot
molto pi complicata, appesantisce il file, non si aggiorna da sola (tranne magari quando si riapre il file, se
lavete sistemata perch lo faccia), e per casi semplici come questi sprecata.
1

Non c da preoccuparsi: il formato Standard non verr eliminato.


Ma posso anche togliere gli zeri da tutto il file dalla finestra Strumenti->Opzioni, scheda Visualizza.
3
Nel senso che riguarda pi righe.
2

FUNZIONI PARTICOLARI DI EXCEL


)XQ]LRQ

,1',5(772

Questa funzione, che ad una superficiale occhiata pu sembrare abbastanza inutile, in realt si presta a
diversi usi interessanti. Il suo uso elementare questo:
=INDIRETTO(B2)

restituir il contenuto della cella B2, esattamente come scrivere =B2; ma notate le doppie virgolette. Si pu
usare anche lo stile R1C14 in questo modo:
=INDIRETTO(R2C2;0)

per avere lo stesso identico risultato. Ma largomento si pu modificare, inserendoci delle variabili. Es.:
A
1
2
3 pippo
4 pluto
5

D
4

E
1 pluto

paperino

dove in E1 (cio R1C5) c la seguente formula:


=INDIRETTO(R&C1&C&D1;0)

Questo sistema mi stato utile, ad esempio, per trasporre dei dati: da riga o colonna, o viceversa. Certo,
basterebbe usare Copia, Incolla speciale trasponi, ma con una formula la cosa si aggiorna
automaticamente.
Per farlo necessaria unaltra formula inutile: RIF.COLONNA(). Senza argomenti restituisce il numero
della colonna corrispondente alla cella in cui inserita; pu per avere come argomento un riferimento di
cella. Se quindi la inserisco senza argomenti nelle cella da C a E il risultato sar 3, 4, 5. Ma allora nella
colonna x posso inserire il contenuto della RIGA x:
=INDIRETTO(R&RIF.COLONNA()&C1;0)

Vale a dire, se inserisco esattamente questa formula nella cella C1 dellultima tabella di cui sopra, il risultato
sar pippo. Posso quindi semplicemente trascinare a destra la cella, copiando la formula, per avere nella
prima riga gli elementi delle diverse righe della prima colonna:
A
1
2
3
4
5
6

C
pippo

D
pluto

E
paperino

pippo
pluto
paperino
topolino
archimede

Inutile dire che ovviamente posso usarla anche tra fogli diversi.

R sta per riga, C per colonna.

F
topolino

G
archimede

FUNZIONI PARTICOLARI DI EXCEL

/D IXQ]LRQ

,1',5(77

LJUDILFL

Spesso mi capitato di fare un grafico lineare tipo questo:


14
99
41
1
6
100
35
51
97

120
100
80
60
40
20
0

Il problema era che aggiungere dei dati significa dover modificare anche il grafico, per ampliare larea dei
dati di origine. Inoltre, togliere dei dati significa lasciare vuota una parte del grafico, a meno di modificare di
nuovo lorigine dati.
La funzione INDIRETTO consente anche di ovviare a questo. Bisogna fare in modo che la funzione
restituisca A1:A10 se sono piene le prime 10 righe, A1:A15 se ho aggiunto 5 dati, e cos via. Come?
Diciamo che la colonna A contiene unetichetta (in A1) seguita da una serie di numeri, ma, e questo
cruciale, senza celle vuote nella serie. Possiamo:
1.
2.

Contare i valori della serie con la funzione CONTA.VALORI :


CONTA.VALORI(Foglio3!$A$2:$A$100)5
Mettere come origine dati del grafico lintervallo trovato.

Questo si fa agevolmente proprio con la funzione INDIRETTO:


=INDIRETTO(Foglio3!$A$2:$A$&CONTA.VALORI(Foglio3!$A$2:$A$100)+1)

Ovviamente ho messo quel +1 perch la serie comincia in A2; fosse cominciata in A5 avrei messo +4.
S, ma questa formula dove la metto??? In teoria si dovrebbe mettere nella definizione della serie, ovverosia
la formula che compare nella barra quando si seleziona la serie sul grafico (vedi Figura 1).
Quindi al posto di Foglio3!$A$2:$A$11; il che per non funziona!
E quindi???
Occorre creare un nome, con definizione uguale alla formula. Per fare ci, aprire la finestra
Inserisci->Nome->Definisci, quindi sulla casella chiamata Riferito a: scrivere la formula (con tanto
di =). Come al solito possibile selezionare i range6 col mouse. Quindi scrivere un nome valido7
nellapposita casella, ad esempio xyz, e cliccare su Aggiungi (e NON OK, che chiude la finestra senza
salvare il nome!).

Invece che finire in A100 posso anche andare pi in gi; o addirittura fare CONTA.VALORI($A:$A), se la serie
comincia in A1.
6
Intervalli di celle.
7
Cio senza spazi n caratteri particolari.

FUNZIONI PARTICOLARI DI EXCEL

Figura 1

Ora andiamo nella barra della formula, sulla definizione della serie, e sostituiamo
Foglio3!$A$2:$A$11

con
Foglio3!xyz

e premiamo Invio. Ecco fatto. Ora potete aggiungere o togliere dati alla serie nella colonna A, e il grafico si
aggiorner come si deve.
Evidentemente potete anche combinare i risultati della parte 1 e della parte 2 di questo documento, o farvi
venire in mente chiss quali altre combo
Altrettanto evidentemente, queste cose non valgono solo per i grafici a linea, ma anche per tutti gli altri tipi
di grafico.

Lezioni di Excel

Informazioni preliminari

Informazioni Preliminari
Prefazione
Queste dispense di Excel sono un completamento delle lezioni, del livello base, finora svolte.
Consideratele quindi una buona guida che potrete consultare nel caso in cui dovessero venirvi ancora
dei dubbi... Dubbi che non dovreste avere se avrete seguito con attenzione le lezioni !!!
Le dispense sono divise in quattro parti:
1. E la parte introduttiva su alcuni informazioni di carattere generale
2. Questa la parte importanta delle dispense, perch riguarda proprio il vostro lavoro.
3. Qui vi potrete sbizzarrire nell applicare nuovi formati ai fogli di lavoro,nel creare grafici, disegni e
naturalmente STAMPARE!!
4. E la parte dove troverete dei piccoli suggerimenti per personalizzare Excel ed alcune funzioni
speciali.
5. Lultima parte riguarda le Appendici, con un decalogo di suggerimenti utili e le scelte rapide da
tastiera.
Spiegazione dei simboli usati nelle dispense:
Curiosit: Con questo simbolo si segnalano delle piccole curiosit sullargomento
trattato
N.B. Con questo simbolo si segnalano delle annotazioni da tenere presente durante
lo svolgimento del lavoro
Attenzione! Con questo simbolo si segnalano delle procedure rischiose che
possono dare problemi al programma
Ricorda... Con questo simbolo si ricordano alcuni importanti comandi che si
eseguono spesso
Suggerimenti Con questo simbolo si segnalano alcuni trucchetti che possono
semplificare il vostro lavoro
Con i seguenti simboli,invece, si segnalano lordine delle procedure da seguire:
Prima fase
Seconda fase
Ultima fase

1
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

1. Introduzione

1. Introduzione
Cos Excel
In tempi antichi lumanit era solita scribacchiare i numeri con strumenti molto primitivi come le
matite, la carta e le calcolatrici a mano.
Quindi, come facevano i nostri avi a fare i calcoli?
Scrivendo a mano i numeri o battendo sulle calcolatrici su lunghi fogli di carta!!
Questi fogli di carta venivano chiamati fogli di calcolo, e utilizzavano delle griglie sottili per
dividere la grande pagina in una serie di colonne e righe.
Un foglio elettronico come Excel rende omaggio ad un passato cos glorioso presentando,
sullo schermo del vostro computer, un foglio di calcolo simile al vecchio foglio di lavoro, nella
cartella di lavoro che appare come aprite il programma.
Microsoft Excel , quindi, un programma complesso con tante strane caselle, pieno di barre e
menu, in grado di calcolare preventivi, IVA, commissioni di vendita e di elaborare un'ampia serie di
operazioni matematiche utili per chi deve tenere la contabilit di un ufficio o di un'azienda oppure
tenere aggiornata la situazione del proprio conto bancario. Il suo compito consiste nell'analizzare e
manipolare i dati che vengono introdotti e presentarli.
Esso presenta come tutti i fogli elettronici i dati sotto forma di grandi tabelle costituite da righe e
colonne. L'intersezione di una riga con una colonna costituisce una "cella".
Grazie ai dati presenti in queste tabelle, si realizzano grafici che permettono di visualizzare i
risultati in maniera immediata e comprensibile. Sia i grafici che le tabelle, create dai fogli
elettronici, possono essere esportati in un documento creato da un elaboratore di testi per
evidenziare il contenuto. In questo modo si pu comporre una relazione, da presentare ad esempio
ai propri colleghi d'ufficio, sull'andamento della produttivit, oppure pi semplicemente una
ricerca scolastica.
Per entrare, uscire e muoversi nel foglio di lavoro di Excel vengono utilizzati sia il mouse che i
tasti di scelta rapida da tastiera

2
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

1. Introduzione

Ma quanto grande?
Con le sue misure di 256 colonne per 16.384 righe, ogni foglio di lavoro in una cartella di lavoro
di Excel fa sembrare piccolo il pi piccolo foglio di calcolo.

Se si potesse riprodurre lintera griglia del foglio di lavoro su carta, occorrerebbe un


foglio di carta largo oltre 6 m e lungo pi di 100!!

3
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.1 Avvio di Microsoft Excel

2.1 Avvio di Microsoft Excel


Avvio
Per avviare Microsoft Excel:
Attenzione!!! State per entrare nel mondo stupefacente di Microsoft Excel!!!
Potete avviare Excel in parecchi modi.
Modalit Windows
Nel caso vi siate dimenticati come si avvia Windows, potete semplicemente accendere il vostro
computer e poi digitare tre semplici lettere
C:\>WIN
Ovvero, per chi non lavesse capito, digitate WIN subito dopo quello strano messaggio C:\>
(prompt di C) e premete INVIO.
A questo punto vi troverete di fronte alla finestra del Program Manager, per avviare Excel
dovete Trovare la finestra di Microsoft Office. Dopo aver aperto la finestra puntate la freccia
del vostro mouse sulla finestra di Excel e fate doppio clic.
Oppure, per evitare di andare in giro a ricercare cartelle, potete avviare direttamente Excel dal
DOS digitando WIN EXCEL e poi INVIO.
Modalit Macintosh
Una volta avviato Mac, cercate la cartella Microsoft Office e aprite Excel cliccando due volte
con il mouse sulla cartella di Excel
Si visualizzer la finestra di Excel. Se necessario, ingrandire la finestra facendo clic sul
pulsante di zoom nellangolo superiore destro della finestra.
Il documento principale di Microsoft Excel la cartella di lavoro.

Il File in cui si memorizzano i dati definito Cartella di lavoro.

4
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.2 Creazione, Apertura e Salvataggio di File

2.2. Creazione, Apertura e Salvataggio di File


Creazione di una Cartella di Lavoro
Comando Nuovo
Allavvio di Excel, viene, dunque, aperta una nuova cartella di lavoro; per utilizzarla
sufficiente che iniziate a digitare.
Le celle sono formattate nel formato Standard: carattere Geneva e dimensione 10
Nuova Cartella

Inoltre, dal menu File potete scegliere Nuovo.


Aspetto dello Schermo
Quando si crea o si apre una cartella di lavoro, essa verr visualizzata in una finestra. Lo
schermo dovrebbe apparire come mostrato nellillustrazione.

Barra della
Formula

Casella di
scorrimento
Barra di
scorrimento
verticale

Barra di scorrimento Orizzontale

Il lavoro in Excel verr tutto svolto su un foglio di lavoro.

5
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.2 Creazione, Apertura e Salvataggio di File

Foglio di lavoro.
E costituito da una griglia formata da righe e colonne. Lintersezione di una riga con una
colonna chiamata cella e dispone di un riferimento univoco. Vale a dire la cella E8, ad
esempio, la cella nella quale la colonna E interseca la riga 8. I riferimenti serviranno per la
scrittura di formule o per fare riferimento alle celle, come vedremo in seguito.
La cella nella quale vengono immessi i dati quando si inizia digitare, viene detta Cella Attiva ed
evidenziata da un bordo di spessore maggiore.
Per attivare unaltra cella:
Pu essere visualizzata solo una cella alla volta
Spostare il puntatore del mouse ad esempio sulla cella E8 e fare clic. Infatti la cella ha un
bordo di spessore maggiore (vd Illustrazione precedente).
Per scorrere il foglio di lavoro:
_
_

Se volete che il Foglio di lavoro scorri dallalto verso il basso cliccate sulla freccia Gi
della barra di scorrimento verticale
Se volete che il Foglio di lavoro scorri da destra verso sinistra cliccate sulla freccia Destra
della barra di scorrimento orizzontale;

Salvataggio di una Cartella di Lavoro


_
E consigliabile salvare spesso. Nel caso infatti si verifichi uninterruzione di tensione o altro
sar possibile riprendere il lavoro dellultima versione della cartella di lavoro salvata.
_

Per salvare un documento:


_ Scegliere dal menu File Salva con nome
_
Digitare il nome del file che si desidera utilizzare (Es. Lavoro)
_ Scegliere il pulsante Registra.

Una volta salvata la cartella di lavoro, consigliabile continuare a salvare di


frequente:

6
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.2 Creazione, Apertura e Salvataggio di File

Cliccare sul Pulsante Salva


Salva

Oppure dal Menu File scegliete Salva.

E possibile salvare automaticamente la cartella di lavoro attiva o tutte le cartelle di lavoro aperte
ad intervalli di tempo prestabiliti. Per impostare il comando scegliere Salvataggio Automatico
dal menu Strumenti.

Apertura di una Cartella di Lavoro Esistente


E possibile aprire lultima cartella di lavoro utilizzata scegliendola dalla parte inferiore
dellelenco del menu File.

N.B. Se lelenco delle ultime cartelle di lavoro aperte non compare nel menu File, sar
comunque possibile visualizzarlo scegliendo Opzioni dal menu Strumenti, selezionando la
scheda Standard, attivando, quindi la casella di controllo File utilizzati di recente.
E possibile aprire qualsiasi cartella di lavoro scegliendo Apri dal menu File.
Oppure
Apri

Quando viene visualizzata la finestra di dialogo Apri, selezionare il nome del file che si
desidera aprire

N.B. Se lelenco delle ultime cartelle di lavoro aperte non compare nel menu File, sar
comunque possibile visualizzarlo scegliendo Opzioni dal menu Strumenti ,selezionando la
scheda Standard, attivando, quindi la casella di controllo File utilizzati di recente.
Se non si riesce a trovare una determinata cartella di lavoro, possibile cercarla scegliendo il
pulsante Trova File nella finestra di dialogo Apri.

Uscita
Per Uscire da Microsoft Excel:
Scegliere dal menu File: Esci o dal menu di Scelte Rapide da tastiera.
Verr visualizzato un messaggio di avviso che richieder di salvare i documenti non
ancora salvati.

Gestione di file
Una caratteristica di Excel, quella di poter aprire, copiare, stampare ed eliminare file senza
uscire da Microsoft Excel.

7
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.2 Creazione, Apertura e Salvataggio di File

Trova File
Per poter fare ci, dal menu File si pu utilizzare il comando Trova file... ed individuare i file
che si desidera utilizzare specificando i criteri di ricerca nella finestra Cerca.

8
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.3 Tecniche immissione dei dati

2.3. Tecniche di Immissione di dati


Immissione di dati in una cella
Visualizzare la cella dove immettere i dati (cella attiva), ad esempio A3, digitare il numero 4587 e
quindi premere il tasto INVIO per confermare l immissione.

Immissione di dati in una selezione


E possibile immittere lo stesso dato contemporaneamente in pi celle.
Selezionare le celle

digitare il dato in una di queste celle, ad esempio A1 e quindi premere CTRL + INVIO.
Il dato immesso si ripeter in tutto lintervallo selezionato.

Annullamento di unImmissione
Per annullare un dato selezionare la cella e premere il tasto CANC, RITCANC oppure prima di
confermare limmissione, premere il tasto ESC.

9
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.3 Tecniche immissione dei dati

Immissione di Numeri

I numeri immessi vengono allineati al margine destro della cella.

N.B. Se compare il simbolo ###, la larghezza della cella non sufficiente a contenere il
numero immesso.E necessario reimpostare la larghezza della colonna.
Una maniera rapida e semplice, consiste nel posizionare il puntatore sul bordo destro
dellintestazione della colonna e cliccare due volte. La cella si adatter in maniera automatica
all estensione del numero.
Intestazione della colonna

#########

Forma del Puntatore per modificare la


larghezza della colonna

Per immettere un numero come valore costante, selezionare una cella e digitare il numero. I
numeri possono includere caratteri numerici da 0 a 9 ed uno o pi caratteri speciali:
+ - ( ), / L. % Ee
Durante limmissione tenete presente alcune regole:
Una virgola allinterno di un numero considerata come separatore decimale;
I segni pi (+) che precedono i numeri vengono ignorati;
I numeri negativi devono essere preceduti dal segno meno (-) o racchiusi tra parentesi tonde ( ).
Se si digita

Verr visualizzato

1,0
1.581
1,1%
1,112%
10e2
0 1/2
3 3/5
04/03
L.4.500

1
1.581
1,10%
1,11%
1,00E+03
1/2
3 3/5
4-Mar
L. 4.500

-L.7.890

Formato utilizzato

(L. 7.890)

Standard
Numero #.##0
Percentuale 0,00%
Scientifico 0,00E+00
Frazione #?/?
Data gg-mm
Valuta
L.#.##0;[Rosso](L.#.##0)

10
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.3 Tecniche immissione dei dati

Testo

Il testo immesso viene allineato al margine sinistro della cella.


Excel considera come testo qualsiasi carattere o combinazione di numeri e caratteri.
Selezione e spostamento allinterno di una cartella di lavoro.
La cartella di lavoro il file in cui si lavora e si memorizzano i dati. Ciascuna cartella di lavoro
pu contenere tipi diversi di fogli.
Ad esempio una stessa cartella di lavoro pu contenere un foglio con i dati di vendita annuali
ed un altro con il grafico degli stessi.
La cartella di lavoro predefinita costituita da 16 fogli di lavoro, denominati Foglio1, Foglio2
fino al Foglio 16. I nomi dei fogli appaiono sulle schede visualizzate nella parte inferiore della
cartella di lavoro.
Facendo clic su tali schede, possibile passare da un foglio ad un altro.
La scheda del foglio attivo appare sempre in grassetto:

Barra di Scorriment o
Vertical e

Barra di Scorrimento
Orizzontal e
Foglio Att ivo

Schede

C asell a di divi sione

Frecce di scorrimento dei fogli

Per personalizzare la disposizione di fogli in una cartella di lavoro possibile effettuare una
della seguenti operazioni:
Inserire nuovi fogli
Dal menu Inserisci scegliete Foglio di lavoro e selezionate un numero di schede pari al
numero di fogli che desiderate inserire.
Eliminare dei fogli
Dal menu Modifica scegliete Elimina foglio. Il foglio verr eliminato automaticamente.

11
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.3 Tecniche immissione dei dati

Rinominare dei fogli


Fare doppio clic sul foglio da rinominare, ad esempio il Foglio 1

verr visualizzato una finestra di dialogo in cui si digiter il nome da usare.

Il nome apparir sulla scheda relativa al foglio.

Spostare o copiare dei fogli allinterno della stessa cartella di lavoro


E possibile cambiare lordine dei fogli allinterno di una cartella di lavoro.Ad esempio per
posizionare il Foglio 1 dopo il Foglio 4, cliccare sul Foglio 1, trascinare fino al Foglio 4.

Il triangolo nero indica dove verr inserito il foglio.

Spostare o copiare dei fogli in unaltra cartella


Selezionate i fogli che desiderate spostare. Dal menu Modifica scegliete il comando
Sposta o copia foglio. Verr visualizzata una finestra di dialogo in cui selezionare la
cartella di destinazione e la posizione dei fogli. I fogli verranno spostati nella cartella
selezionata:

12
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.3 Tecniche immissione dei dati

Cartella di destinazione

Posizione dei Fogli

Spostare o copiare dei fogli in una nuova cartella


Dal menu Modifica scegliete sempre Sposta o copia foglio e selezionate Nuova
cartella come cartella di destinazione nella finestra Alla Cartella. In questo modo verr
creata una nuova cartella di lavoro con soltanto i fogli selezionati.

Suggerimento: E possibile ottenere lo stesso risultato trascinando i fogli selezionato al di


fuori della finestra della cartella di lavoro e rilasciando il pulsante del mouse.

13
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.4 Creazione di Formule

2.4. Creazione di formule


Immissione di formule
Abbiamo gi visto come si inseriscono i numeri in un foglio di lavoro, ma in Excel le formule
sono i veri cavalli di battaglia del foglio di lavoro.
Quando inserite una formula, essa calcola la risposta corretta quando viene inserita in una cella
e da quel momento in poi si tiene aggiornata, ricalcolando i risultati ogni volta che viene
modificato uno qualsiasi dei valori utilizzati.
Ad esempio:

Nell' immagine precedente stata inserita una colonna dei totali. Nelle celle da E5 ad E8, stata
inserita la formula Somma, di conseguenza nel caso si cambi, ad esempio, il valore della cella
D5 delle vendite di Febbraio (inserendo il valore 25.000), il Totale cambier automaticamente,
come si vede nellimmagine seguente.

Confrontate i due valori delle celle D5 ed E5 in entrambe le immaggini

14
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.4 Creazione di Formule

La barra della formula


Quando la barra della formula attiva o quando si eseguono modifiche direttamente nelle celle.
Per attivare la barra della formula, cliccate nella cella in cui volete inserire la funzione.

Barr a del la f ormula

Per inserire una formula:


occorre precederla dal segno uguale (=) ed inserire una funzione incorporata, come ad
esempio SOMMA o MEDIA.
oppure digitare i numeri o le celle che contengono i valori ed usare i seguenti operatori
matematici fissi:
+ (segno pi)
- (segno meno)
* (asterisco)
/ (barra)
^ (accento circonflesso)

Addizione
Sottrazione
Moltiplicazione
Divisione
Potenza

Cos, ad esempio, per creare nella cella C2 una formula che moltiplichi il valore inserito nella
cella A2 per il valore inserito nella cella B2, digitare la seguente formula nella cella C2:
= A2 *B2
Quali sono i passaggi per inserire questa formula nella C2?? (Un mentino gi succhiato a chi
indovina):
1. Selezionare la cella C2.
2. Digitate la formula intera = A2*B2 nella cella
Oppure
Selezionare la cella C2 e digitate = (segno uguale)
Selezionate la cella A2 nel foglio di lavoro utilizzando il mouse o la tastiera.
Digitate * (asterisco)
Selezionate la cella B2 nel foglio di lavoro.
Fate clic sulla casella INVIO o premete INVIO.

15
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.4 Creazione di Formule


Excel visualizza la risposta calcolata nella cella C2 e la formula.

o ancora
Selezionate la cella C2
Digitate = (uguale) e prodotto
Aprite una parentesi ed inserite le celle che contegono i valori che volete moltiplicare
Chudete la parentesi, quindi INVIO
Vediamo alcuni esempi su come i cambiamenti influenzano il risultato del calcolo.
Quando la cella A2 contiene il valore 20 e la cella B2 contiene 100, il programma visualizza
il risultato 2000 nella cella C2 del foglio di lavoro.
Se cambiate il valore nella cella A2 da 20 a 10, il valore calcolato nella C2 Cambia
immediatamente in 1000.
Se cancellate il dato della cella B2 senza sostituirlo con un altro, il valore nella C2 diventa 0.
RICORDA!!!
Le celle vuote hanno un valore 0, perch quando il dato della cella B5 viene cancellato la
formula A5 * B5 uguale a 20 * 0.

Somma Automatica
Lo strumento Somma Automatica viene utilizzato per inserire la funzione SOMMA nella barra
degli strumenti, vediamo come:

Posizionate il puntatore sulla cella dove volete che appaia il totale.


Fate clic sul pulsante (Somma Automatica).
Excel mette un segno intorno alle celle precedenti.

16
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.4 Creazione di Formule

Premete INVIO

Seguire la gerarchia
Molte formule eseguono pi di un operazione matematica; Excel esegue ogni operazione nella
direzione da sinistra a destra, secondo un ordine di operazioni:
la Moltiplicazione e la Divisione hanno la priorit sullAddizione e la Sottrazione e di
conseguenza vengono eseguite per prime.
Ad esempio:

5 +10 * 2
Excel la esegue nel seguente modo: moltiplica 10 per 2 per poi sommare il risultato a 5.
Se si vuole prima sommare e poi moltiplicare bisogna aggiungere delle parentesi:

(5 +10) * 2
Le parentesi indicano ad Excel di eseguire prima loperazione in esse contenute.
Errore nella formula
Alcune volte, anche le migliori formule possono andare a pezzi in un foglio di lavoro.
Questo lo si capisce dal fatto che invece del valore calcolato si ottiene un messaggio in lettere
maiuscole, che inizia con il simbolo (#) e termina con un punto esclamativo od interrogativo.
Nel gergo dei fogli elettronici, questo prende il nome di Valore di errore e serve a segnalare
che qualche elemento nella formula, sta impedendo ad Excel di restituire il valore desiderato.
Se in una cella si ottiene un valore di errore necessario scoprire che cosa ha causato lerrore e
modificare il foglio di lavoro.

Cenni preliminari sui valori di errore


Ogni volta che la formula di una cella non pu essere calcolata in modo appropriato, verr
visualizzato un messaggio di errore all'interno della cella stessa. Se una formula include un
riferimento ad una cella che contiene un valore di errore, anche la formula generer un valore di
errore (a meno che non si stiano utilizzando le funzioni speciali del foglio di lavoro
VAL.ERR, VAL.ERRORE o VAL.NON.DISP, le quali cercano i valori di errore). E'
consigliabile risalire ai riferimenti attraverso una serie di celle in modo da individuare l'origine
dell'errore.
Valore di errore Significato
#DIV/0!
La formula sta tentando di dividere per zero
#N/D
Nessun valore disponibile. Questo valore viene in genere immesso
direttamente dall'utente nelle celle del foglio di lavoro che conterranno
dati non ancora disponibili. Le formule contenenti i riferimenti a
queste celle restituiranno #N/D invece di calcolare un valore.
#NOME. ?
Uno dei nomi utilizzati nella formula non riconosciuto dal sistema
#NULLO!
E' stata specificata un'intersezione di due aree che non si intersecano

17
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel
#NUM!
#RIF!
#VALORE!

2.4 Creazione di Formule


Si verificato un problema con un numero
La formula contiene un riferimento ad una cella che non valido
Il tipo di un argomento o operando errato

Copia formula
Qualche volta vi pu capitare di aver bisogno di copiare la formula appena creata in un gruppo
di celle vicine che devono eseguire lo stesso tipo di calcolo, come una semplice somma.
Un metodo che pu essere adottato quello di cliccare sulla formula e posizionare il puntatore
nellangolo in basso a destra della cella; il puntatore si trasformer in una croce nera.
Trascinare sulle celle in cui desiderate copiare la formula.

18
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

2.5. Modifica dei dati di un foglio di lavoro


Modifica del contenuto di una cella
Una cella di un foglio di lavoro pu essere modificata digitandovi nuovi dati o modificando una
parte delle informazioni contenute in esse.
Per le modifiche fare doppio clic sulla cella.

Se la cella contiene una formula, scomparir il valore e verr visualizzata la formula.


Se volete Tagliare, Copiare il contenuto di una cella e successivamente copiarlo in unaltra:
dal menu Modifica, scegliete Taglia, Copia ed Incolla
utilizzate le Scelte rapida da tastiera (vd. Appendice)
o utilizzate i seguenti pulsanti:
Rimuove i caratteri selezionati della cella e li colloca negli Appunti
Taglia

Effettua una copia dei caratteri selezionati e la colloca negli Appunti


Copia

Colloca il contenuto degli Appunti in una cella in corrispondenza del punto di inserimento
Incolla

Per Cancellare: dal menu Modifica scegliete Cancella. I caratteri selezionati nella cella
verranno cancellati, ma non memorizzati negli Appunti. Oppure utilizzate il tasto BACK
SPACE o il tasto CANC.

Cancellare o eliminare celle, righe o colonne.


Esiste una certa differenza tra eliminazione e cancellazione di celle.

Attenzione!!!
LEliminazione di celle ne determina la rimozione completa dal foglio di lavoro e causa lo
spostamento delle celle circostanti, che andranno ad occupare lo spazio lasciato vuoto.
La Cancellazione di celle determina invece la rimozione del contenuto, dei formati o delle note
di queste, ma non delle celle stesse.

19
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

Eliminazione di celle
Selezionate le celle che si desidera eliminare. Ad esempio da A1 a D5

Dal menu Modifica scegliete Elimina. Apparir una finestra di dialogo

Selezionate la direzione in cui si desiderano spostare le celle.


In pratica....

Quando si eliminano delle celle, queste vengono rimosse dal foglio di lavoro e le celle
circostanti si spostano automaticamente, andando ad occupare lo spazio vuoto.

Cancellazione di celle
Selezionate le celle che desiderate cancellare.
Dal menu Modifica scegliete Cancella, quindi selezionate Tutto per cancellare tutto,
Formati per cancellare solo il formato (Dimensione o carattere del testo), Contenuti
o Note, in base a ci che volete cancellare.

Viene rimosso il contenuto ma non le celle.

20
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

Annullare gli errori


Annulla lultima operazione svolta
Annulla

Oppure:
dal menu Modifica scegliete Annulla.
Qualora Annulla non sia disponibile, il comando Impossibile annullare apparir inattivo
nel menu (colore grigio chiaro).

Attenzione!!!
Prima dellesecuzione di un comando che non possibile annullare viene
visualizzato un messaggio di avviso.

Ripetere lultima operazione


E anche possibile ripetere lultimo comando scelto, compresa la modifica in una finestra di
dialogo:
Ripete lultima operazione svolta
Ripeti

Oppure:
Dal menu Modifica scegliere Ripeti.... Anche in questo caso, come per il comando Annulla,
quando un comando non pu essere ripetuto, il comando Impossibile ripetere apparir
inattivo nel menu.

Copia e spostamento di celle.


Le celle possono essere spostate o copiate in pi punti dello stesso foglio di lavoro in un altro
foglio della cartella di lavoro o in un altra applicazione.
Per copiare o spostare:
Trascinate le celle con il mouse
Utilizzate i comandi Taglia, Copia e Incolla.
Effetti della copia e dello spostamento delle celle.
Quando si copia una cella, il contenuto di questa viene duplicato ed incollata in una
nuova posizione.
Lo spostamento comporta, invece, la rimozione del contenuto della cella ed il
trasferimento in una nuova posizione.

21
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

Le celle copiate o spostate possono essere inserite tra quelle esistenti o incollate su
altre.
Utilizzo dei comandi Copia, Taglia ed Incolla.

Suggerimento
Potete usare i comandi Taglia, Copia ed Incolla, anche in forma di pulsanti, per la copia e lo
spostamento di celle allinterno di un foglio di lavoro di grandi dimensioni, in un altro foglio di
lavoro in una cartella di lavoro diversa, in un altra finestra o in un altra applicazione.
Utilizzo dei comandi Copia, Taglia ed Incolla.

Suggerimento
Per la copia e lo spostamento di celle allinterno di un foglio di lavoro di grandi
dimensioni, in un altro foglio di lavoro in una cartella di lavoro oppure in ultra
finestra o un altra applicazuione , consigliabile usare i comandi Taglia, Copia ed
Incolla, anche in forma di pulsanti.
RICORDA!!!
Rimuove i caratteri selezionati della cella e li colloca negli Appunti
Taglia

Effettua una copia dei caratteri selezionati e la colloca negli Appunti


Copia

Incolla

Colloca il contenuto degli Appunti in una cella in corrispondenza del punto di


inserimento
Copia di celle
La copia di celle consiste nel duplicare il contenuto in unaltra posizione.
Selezionare le celle che devono essere copiate.
Dal menu Modifica, scegliete il comando Copia o uilizzare i comandi del menu di scelta
rapida da tastiera o il pulsante Copia.
Larea da Copiare indicata da una cornice intermittente

22
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

Selezionare una cella di destinazione e scegliere Incolla dal menu Modifica o dal menu
scelta rapida da tastiera o il pulsante Incolla.

N.B. Dopo aver eseguito il comando Incolla rimane visualizzata la cornice intermittente . Essa
indica la possibilit di copiare di nuovo le celle selezionate.
Per annularla premere ESC.
Spostamento di celle.
Lo spostamento consiste nel tagliare il contenuto e inserirlo in una nuova posizione.
Per fare ci:
Selezionate le celle che devono essere Spostate.
Scegliete il comando Taglia dal menu Modifica o utilizzate le scelta rapida da tastiera
o il pulsante. Larea da tagliare indicata da una cornice intermittente. Selezionate una
cella di destinazione e scegliere Incolla dal menu Modifica o dal menu di scelta rapida o
il pulsante

Suggerimento
Quando si incollano delle celle sufficiente selezionare la cella che costituir langolo
superiore sinistro dellarea di incollamento.
Inserimento di celle tra celle esistenti.
Per inserire celle copiate o tagliate tra celle esistenti:
Copiare o tagliare le celle desiderate.
Selezionare la cella di destinazione.
Dal menu Inserisci, scegliete Celle Copiate o Celle Tagliate oppure Inserisci celle
copiate o Inserisci celle tagliate dal menu di scelta rapida.

N.B. E possibile inserire le celle una sola volta dopo ciascuna operazione di copia. Per
inserire nuovamente le celle occorre quindi ripetere sempre il procedimento.
Incollamento di pi copie.
Le celle copiate o tagliate possono essere incollate in pi aree del foglio di lavoro:
Copiare o tagliare le celle desiderate.
23
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

Selezionare la cella superiore sinistra dellarea di destinazione, incollando le celle e


ripetendo loperazione per eseguire pi copie.

Suggerimento
Per eseguire selezioni in aree non adiacenti, tenere premuto il seguente tasto mentre si
selezionano le diverse celle di destinazione.
Sistema

Comando

Windows
Macintosh

CTRL
(COMANDO)

Trascinamento delle celle.


Lutilizzo del mouse permette di copiare e spostare le celle a breve distanza in un foglio di
lavoro.
Per spostare una selezione sufficiente
Selezionare le celle che devono essere copiate o tagliate.
Posizionare il puntatore del mouse sui bordi della selezione fino a quando si visualizza una
freccia nera.

A questo punto la selezione appare circondata da una cornice grigia, sar sufficiente
trascinare la cornice nel posto in cui si desidera incollare i dati, ad esempio nelle celle da
B10 a D14 e rilasciare il pulsante del mouse

Se si vuole copiare la selezione, tenete premuto CTRL (Windows) o ALT (Macintosh),


[affianco alla freccia apparir un (+) che indica la possibilit di copiare] e trascinate con il
mouse.
Controllo ortografico e correzione degli errori di digitazione.

24
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

2.5 Modifica dei dati di un foglio di lavoro

E possibile correggere gli errori di ortografia dei fogli e dei grafici scegliendo dal menu
Strumenti il comando Controllo ortografia.
Apparir la seguente finestra di dialogo:

Suggerimento
Per eseguire il controllo su tutti i fogli di una cartella di lavoro, scegliete Seleziona tutti i fogli,
quindi avviate il controllo.

25
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.1 Formattazione dei fogli di lavoro

3.1 Formattazione dei fogli di lavoro.


Applicazione ai dati del formato desiderato.
Le numerose opzioni di formattazione di Microsoft Excel consentono di dare particolare risalto
ai dati e di rendere i fogli di lavoro pi semplici da leggere e pi gradevoli da vedere.
Le celle di un foglio di lavoro possono essere formattate sia prima che dopo limmissione dei
dati. E possibile immettere, ad esempio, dei dati in un intervallo di celle e formattare
lintervallo in grassetto. Applicando il formato, tutti i dati immessi dopo verrano visualizzati in
grassetto.
Applicazione di formati.
E possibile applicare dei formati di cella: dal menu Formato, scegliete Celle oppure
Formato celle dal menu di scelta rapida (vd. Appendice).
I formati di utilizzo pi frequente sono inoltre disponibili come pulsanti sulla barra degli
strumenti Formattazione.
Puls. Formattazione caratteri

Puls. Allineamento e centratura

Puls. Bordo, Colore e Colore carattere

Pulsanti per la formattazione dei


numerei

Barra degli strumenti Formattazione

Tipi di carattere.
Tenete sempre presente che quando viene aperto un nuovo foglio di lavoro, Excel attribuisce un
carattere ed una dimensione uniforme e standard a tutte le immissioni che vengono utilizzate
(Testo Geneva, Dimensione 10).
E possibile formattare i caratteri delle celle in modo da modificare laspetto dei dati immessi.

?? Riuscite a vedere, nellimmagine precedente, quali sono le celle Formattate diversamente??

26
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.1 Formattazione dei fogli di lavoro

Per formattare i diversi tipi di carattere: fare doppio clic sulla cella e cliccare con il mouse
sulla freccia a destra della finestra del testo carattere (vd Immagine seguente), sulla barra degli
strumenti. Scorrete la lista di caratteri e scegliete quello preferito.

Finestra del testo Carattere

Se il carattere standard non vi piace, potete cambiarlo: dal menu Strumenti scegliete
Opzioni, cliccate su Generale e cambiate limpostazione sullopzione Carattere
Standard.
Se volete una dimensione diversa, selezionate anche lopzione Dimensione.

Numeri.
Nel formato numerico Standard predefinito, i numeri vengono visualizzati come interi (1450),
frazione decimali (1,450) o in notazione scientifica (1,450E+08), nel caso in cui il numero
troppo grande per essere contenuto nella larghezza della cella.
E possibile applicare formati numerici tramite i pulsanti della barra degli strumenti
Formattazione.
Per

Fare clic su

Esempio di Formato

Applicare lo stile Valuta

12345 diventa L. 12.345,00

Applicare lo stile Percentuale

0,12 diventa 12%

Applicare lo stile Separatore

12345 diventa 12.345,00

Aumentare il numero di
decimali
del
formato
numerico
Ridurre il numero di decimali
del formato numerico

12.345,00 diventa 12.345,000


12.345,00 diventa 12.345,0

Per sostituire il formato numerico di una cella con un altro formato numerico incorporato, dal
menu Formato scegliete Celle e selezionate la scheda Numero.

Allineamento.

27
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.1 Formattazione dei fogli di lavoro

Oramai sapete che al momento dellapertura di Microsoft Excel, tutte le celle presentano
inizialmente il formato Standard, che allinea automaticamente: i numeri a destra, il testo a
sinistra ed i valori logici e di errore al centro.
Il metodo pi semplice per allineare il contenuto delle celle consiste nellusare i pulsanti nella
barra di formattazione.
Pulsante Centra
Pulsante Allinea a
sinistra

Pulsante Centra nelle


Colonne
Pulsante Allinea a Destra

Altrimenti dal menu Formato scegliete Celle e selezionate Allineamento, oppure Formato
Celle dal menu di Scelta Rapida.
Applicazione di Bordi, Ombreggiature e Motivi di sfondo.
Unaltra delle tante opzioni di Microsoft Excel, quella di poter utilizzare unampia variet di
tipi e largezze di bordi, di motivi ed anche di colori per personalizzare a piacimento un foglio di
lavoro.
Pulsante

Nome
Pulsante Bordo

Posizione
Barra degli Strumenti
Formattazione

Pulsante Colore

Barra degli Strumenti


Formattazione

Pulsante Motivo

Barra degli
Disegno

Strumenti

Oppure, in alternativa, dal menu Formato scegliete Celle e selezionate Bordo o Motivo.

N.B. Le celle adiacenti condividono i bordi. Lapplicazione di un bordo inferiore ad una cella,
ad esempio, comporta lapplicazione di un bordo superiore alla cella sottostante.
Se per si stampa soltanto la cella sottostante, il bordo non verr visualizzato. Quando si
stampa un foglio, i bordi di una cella vengono stampati
Immissione di date o di ore.
Quando Microsoft Excel riconosce limmissione di una data o di unora, il formato delle celle
viene cambiato automaticamente dal formato Standard al formato appropriato di data o di ora.
Quando si immettono date od ore, tenete presente che:
Microsoft Excel ignora le lettere maiuscole.
Lora viene visualizzata automaticamente nel formato a 24 ore, ad esempio 15.00. Se la si
digita nel formato a 12 ore facendola seguire da AM o PM oppure da a o p, ad esempio
3:00 PM, verr convertita nel formato precedente. E necessario inserire uno spazio tra
lora e le lettere AM o PM.
28
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.1 Formattazione dei fogli di lavoro

E possibile digitare una data ed un ora nella stessa cella .E necessario inserire uno
spazio tra lora e le lettere AM o PM.
Per immetere una data, occorre utilizzare una barra (/) o un trattino (-).
Immissione di date o di ore nelle formule.
Le date e le ore possono essere immesse solo come testo racchiuso tra doppie virgolette ()
in una formula e non direttamente in formato numerico. Durante il calcolo della formula, il
testo verr convertito nel numero corrispondente.
Ad esempio, per la formula =12/05/94-05/03/94 verr visualizzata una differenza di 68
Formattazione automatica.
Potete applicare combinazione di formati incorporati ad intervallo di dati tramite il comando dal
menu Formato.
Ad esempio selezionate le celle da B5 a D9 e poi dal menu Formato scegliete Formattazione
automatica. Apparir la seguente finestra di dialogo dove poter scegliere il tipo di formato con
con il quale costruire la nostra tabella:
Elenco dei Formati

Scegliamo, ad esempioda Formato tabella Effetto 3D 1, e cliccare su OK o INVIO. La


nostra solita tabella di vendita si trasformer cos:

29
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

3.2. STAMPA.
Una volta completato il vostro lavoro, mettete tutto su carta!
Questa la cosa pi importante!!
Lunico trucco per stampare un foglio di lavoro consiste nel prendere confidenza con
limpaginazione ed imparare a controllarla.

Operazioni preliminari di stampa


Fate un favore al mondo intero salvando una foresta, utilizzando la caratteristica Anteprima di
Stampa, per controllare laspetto del documento sulla pagina, prima di stampare; in questo
modo non sarete costretti a dover ristampare pi volte il vostro lavoro.
Essa vi consente non solo di vedere esattamente come saranno impaginati i fogli di lavoro e
come verranno stampati, ma vi permette anche di modificare i margini, cambiare le impostazioni
di pagina e persino procedere alla stampa, una volta che tutto OK.
Per visualizzare unanteprima della stampa.
Dal menu File scegliere Anteprima di Stampa,oppure:
Cliccate sul pulsante Anteprima di Stampa sulla barra
di formattazione standard
Anteprima di Stampa

Apparir una schermata come in figura.

E possibile, visualizzare nuove parti della pagina nellAnteprima scorrendo in orizzontale od


in verticale lungo le barre di scorrimento.
Se si vuole stampare scegliete il comando Stampa, altrimenti Chiudi.
Selezione della stampa con il comando: Area di Stampa.
Con excel anche possibile specificare un intervallo di celle da stampare con il comando:
Area di Stampa.
Impostazione dell'area del foglio di lavoro da stampare
1. Selezionare il foglio sul quale si desidera che questa operazione abbia effetto.
30
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

2. Dal menu File scegliete Imposta pagina.


3. Selezionare la scheda Foglio.

4. Selezionare la casella "Area di stampa".


5. Nel foglio di lavoro, selezionare l'intervallo o gli intervalli da stampare. Se necessario,
trascinare la finestra di dialogo Imposta pagina in modo da poter selezionare l'intervallo
da stampare.

6. Per chiudere la finestra di dialogo Imposta pagina, scegliere OK.


Per stampare, scegliere il pulsante Stampa.
E' inoltre possibile digitare riferimenti di cella o nomi predefiniti nella casella "Area di
stampa".
Modifica delle opzioni di stampa
Per centrare i dati del foglio di lavoro sulla pagina:
Dal menu File scegliete Imposta pagina.

31
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

Nella finestra di dialogo Imposta Pagina selezionate la scheda Margini

Nella casella Centra nella pagina attivate la casella di controllo Orizzontalmente.


Attenzione!!
Non scegliete OK fino a quando non si terminato lutilizzo della finestra di dialogo
Imposta pagina!!!
Per nascondere la griglia durante la stampa:
Sempre da Imposta Pagina selezionate la scheda Foglio.
Disattivate la casella di controllo Griglia nella casella Stampa.

32
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

Per stampare la formattazione del colore in bianco e nero:


Attivate la casella di controllo Bianco e Nero nella casella Stampa.
Questo per impedire che la stampante sostituisca dei motivi ai colori.
Scegliete OK.
Pensare ai margini
Excel utilizza un margine superiore e inferiore standard di 2,5 cm su ogni pagina del rapporto e
un margine destro e sinistro di 2 cm.
Spesso possibile far rientrare in una sola pagina lultima colonna regolando i margini.
Potete regolare i margini in due modi:
Da Imposta Pagina selezionate la scheda Margini e regolate le impostazioni.
In Anteprima di stampa cliccate su Margini e trascinate gli indicatori nelle
posizioni desiderate.

Intestazione e pi di pagina.
Le intestazione ed i pi di pagina sono semplicemente testi che appaiono su ogni pagina.
Lintestazione viene stampata sul margine superiore della pagina e il pi di pagina viene
stampata sul margine inferiore. Entrambi sono centrati verticalmente nei margini.
Modificazione dellintestazione e del pi di pagina.
Su imposta pagina cliccare la scheda Intestaz./pi di pagina.
Appare la finestra di dialogo:

33
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

E possibile modificare lintestazione e il pi di pagina cliccando su Personalizza.


Stampa dei Fogli.
Esistono diversi metodi per stampare un documento.
Da
Stampa

Operazione da eseguire
Cliccare sul pulsante.
Consente di stampare la cartella di lavoro
immediatamente

Anteprima di Stampa

Pulsante Stampa

Imposta Pagina

Pulsante Stampa

34
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

I DIECI COMANDAMENTI PER LA STAMPA


Essere in grado di stampare il lavoro in Excel nel modo giusto cos importante che ho deciso di
dedicare una lista di dieci all'argomento.
Vedete in anteprima le meraviglie che stanno per accadere alla stampante accanto a voi
(File Anteprima di stampa): date una bella occhiata a ci che avete creato con la
caratteristica Zoom, controllate l'intestazione e le note a pi di pagina, modificate i
margini e l'ampiezza della colonna, preoccupatevi di certi elementi dimpostazione, e
stampate il tutto dalla finestra Anteprima di stampa. Tuttavia, fate le vostre modifiche
nella finestra del documento.
Quando finalmente arrivato il grande momento di inviare davvero il vostro foglio alla
stampante, fate clic sullo strumento Stampa sulla barra degli strumenti Standard per
stampare tutto quel che c' sul foglio di lavoro corrente.
Per stampare qualunque cosa in ogni foglio di lavoro nell'intera cartella di lavoro - in
altre parole, tutto il lavoro - aprite la finestra di dialogo Stampa (File Stampa o
CTRL+MAIUSC+F12), e selezionate il pulsante di opzione Tutta la cartella di lavoro
prima di scegliere OK.
Per stampare solo le celle che avete selezionato nel corrente foglio di lavoro scegliete le
vostre celle, aprite la finestra di dialogo Stampa, (File Stampa o CTRL
+MAIUSC+F12) e selezionate il pulsante di opzione Selezione prima di scegliere OK.
Quando state stampando un foglio di lavoro che si estende lungo molte colonne - in
altre parole, un foglio di lavoro che assolutamente uguale in larghezza e in lunghezza
o pi largo che alto - cambiate l'orientamento della stampante dalla normale posizione
verticale alla posizione orizzontale (File Imposta pagina scheda Pagina
Orizzontale).
Per costringere tutti i dati di un foglio di lavoro a entrare in una singola pagina di
stampa, aprite la finestra di dialogo Imposta Pagina (File Imposta pagina)
selezionate la scheda Pagina, e poi selezionate il pulsante di opzione Adatta a sotto
Proporzioni. Excel riduce la dimensione della stampa come richiesto per far entrare
tutto su una singola pagina, sebbene Excel non garantisca che sar possibile leggere la
pagina senza una lente d'ingrandimento.
Utilizzate le intestazioni e le note a pi pagina nei rapporti di pi pagine per stampare
sul margine in alto o in basso di ciascuna pagina intestazioni che contengono
informazioni come il numero della pagina, la data e l'ora di stampa e il nome del
documento (File Imposta pagina scheda Intestaz:/pi di pagina).
Indicate le intestazioni nelle righe e nelle colonna del foglio di lavoro come titoli di
stampa perch appaiono sul margine in alto o a sinistra di ciascuna pagina nei rapporti
di pi pagine (File Imposta pagina scheda Foglio Righe da ripetere in alto o
Colonne da ripetere a sinistra).

35
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.2 Stampa

Normalmente Excel stampa griglie in grigio chiaro che mostrano i bordi delle colonne e
delle righe. Ricordatevi di rimuovere queste griglie prima di stampare qualsiasi
relazione che utilizzi bordi attorno agli intervalli celle o altri elementi grafici con i quali
le griglie potrebbero confondersi (File Imposta pagina scheda Foglio Griglia).
Per impedire a Excel di dividere informazioni che dovrebbero apparire sempre insieme
sulla stessa pagina, posizionate il puntatore nel punto dove la pagina dove la pagina
dovrebbe interrompersi e inserite uninterruzione di pagina manuale (Inserisci
Interruzione di pagina).

36
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

3.3. Utilizzo dei grafici


Creazione di un grafico
Che cos un Grafico
Un grafico la rappresentazione grafica dei dati di un foglio di lavoro. I valori contenuti nelle
celle vengono rappresentati come barre, linee, colonne, sezioni di torta o altri tipi di oggetti del
grafico.
La visualizzazione dei dati in un grafico serve a renderli pi chiari, pi significativi e semplici
da interpretare.
Creazione di un grafico
Per creare un grafico selezionate lintervallo di celle che contiene i dati da rappresentare sotto
forma di grafico.
Se si crea un grafico che utilizza un asse delle x e un altro delle y, tenete presente che la prima
riga nella tabella selezionata rappresenta letichetta dellasse delle x, mentre la prima colonna
utilizzata come intestazione nella legenda del grafico.
Una volta fatto questo seguite il seguente procedimento:
Cliccate su Autocomposizione grafico
Autocomposizione grafico
Una volta cliccato, il puntatore si trasforma in una croce con un piccolo istogramma.

37
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Trascinate il puntatore lungo le celle che indicano la posizione e la dimensione del grafico.
Per scegliere larea del grafico posizionate la croce nellangolo sinistro dellarea
desiderata e trascinate diagonalmente verso il basso.

Rilasciate il pulsante del mouse.


Excel visualizza la finestra di dialogo Autocomposizione grafico Passaggio 1 di 5.

Fate attenzione!!! Controllate lintervallo di celle.

38
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Cliccate sul pulsante Successivo oppure premete INVIO.


Si visualizza una nuova finestra di dialogo (- Passaggio 2 di 5).

Come si vede c una vasta scelta di grafici. Scegliete il vostro cliccando con il mouse.
Cliccate sul pulsante Successivo oppure premete INVIO.
Si passa ad unaltra finestra di dialogo (- Passaggio 3 di 5).

Ogni tipo di grafico disponibile in vari formati. Si pu scegliere quello preferito


cliccando con il mouse o digitando il suo numero (per il numero 10 digitare lo 0).

39
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Cliccate sul pulsante Successivo oppure premete INVIO.


La finestra di dialogo il Passaggio 4 di 5.

Excel mostra unanteprima del grafico, controllate che stato inserito con i dati giusti.
Cliccate sul pulsante Successivo oppure premete INVIO.
Appare la finestra di dialogo (- Passaggio 5 di 5).

E possibile inserire un titolo per il grafico e i titoli individuali per i valori dellasse delle
x e delle y. Se volete rimuovere la legenda fate clic sul pulsante di opzione No.

40
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Cliccare sul pulsante Termina oppure premete INVIO per uscire dallultima finestra di
dialogo.
Il grafico viene visualizzato nella zona precedentemente selezionata.

Modifica di un grafico
Una volta creato il grafico, potete utilizzare gli strumenti sulla barra degli strumenti Grafico per
cambiarlo.
RICORDA!!!
Questa barra appare ogni qual volta si clicca sul grafico.

Questo un pulsante a discesa e serve per cambiare tipo di grafico


che verr visualizzato nella finestra a discesa.
Tipo di grafico
Questo pulsante serve ad aggiungere o ad eliminare la griglia
Griglia
orizzontale
Questo pulsante serve a nascondere o far apparire la legenda del
grafico.
Legenda
E possibile modificare i dati compresi nel grafico seguendo questi passaggi:

41
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Fate doppio clic sul grafico per selezionarlo e fate clic sullo strumento Autocomposizione
grafico.
In questo modo si visualizza una finestra di dialogo che contiene la casella di testo
Intervallo.

Modificate questo intervallo come preferite.


Cliccate sul pulsante Successivo.
Appare la finestra di dialogo che consente di cambiare il tipo di grafico.

Cambiate le opzioni di grafico come volete.


Cliccate su Termina o premete INVIO.
Il grafico si modificher instantaneamente.
Modifica del testo
Dopo aver fatto doppio clic sul grafico, possibile selezionare le singole parti d testo che volete
cambiare.
Per selezionare uno di questi oggetti fate semplicemente clic sulloggetto desiderato.
Appaiono dei quadratini di selezione.

42
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.3 Utilizzo dei Grafici

Una volta selezionati gli oggetti potete spostarli o addirittura cambiare il Motivo, il Carattere
o lAllineamento scegliendo opportunamente le tre schede di opzione di formattazione.

43
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.4 Creazione di Disegni

3.4. Creazione di disegni


Oggetti grafici nei fogli di lavoro e nei grafici

Disegno

Con questo pulsante possibile disegnare oggetti grafici utilizzando i pulsanti


sulla barra degli strumenti Disegno
Barra degli strumenti Disegno
Pulsanti Rettangolo, E llisse Arco e D isegno a mano libera

Pulsanti L inea, Freccia e Mano


libera

Pulsanti Rettangolo,
Ellisse Arco e
Disegno a mano
libera Pieno

Pu lsanti Motivo ed O mbreggiatu ra

Cenni sulla creazione di forme, linee, figure a mano libera e altri oggetti
Per disegnare una semplice figura, ad esempio un rettangolo, fate clic sul pulsante rettangolo
della barra degli strumenti Disegno, quindi collocarsi su di un angolo e trascinare
diagonalmente il puntatore.
Questi pulsanti servono per creare linee, frecce e disegni a mano
libera.
Linea, freccia e mano libera

Questi pulsanti servono per creare rettangoli, ellissi e archi.


Rettangoli, ellissi ed archi

Suggerimento:
Per creare quadrati o cerchi cliccare sul pulsante rettangolo o ellisse tenendo premuto il
maiuscolo.
Questi pulsanti servono per creare rettangoli, ellissi e archi
pieni.
Rettangoli, ellissi ed archi pieni

Questo pulsante serve per disegnare un


poligono.
Poligono

44
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

3.4 Creazione di Disegni

Alcuni oggetti disegnati su di un foglio di lavoro: Freccia, Ellisse e Arco pieno.


E possibile cambiare la formattazione di un disegno. Per fare ci, selezionarlo e utilizzare i
seguenti pulsanti:
Questo pulsante serve per cambiare il colore di riempimento;
Colore di riempimento

Questo pulsante serve a cambiare il motivo;


Motivo

Questo pulsante serve a cambiare lombreggiatura


Ombreggiatura

Suggerimento:
Per creare pi figure in successione, fate clic doppio clic sul pulsante.
Per ELIMINARE un oggetto selezionate loggetto cliccandoci sopra, quindi premete CANC.
Informazioni
Per ulteriori informazioni sull uso pi approfondito dello strumento di disegno si rimanda
lutente ad un corso pi avanzato di Microsoft Excel.

45
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.1 Qualcosa di pi sulle Formule

4.1 Qualcosa di pi sulle formule


Riempimento Automatico.
Molti dei fogli di lavoro che vengono creati con Excel richiedono linserimento di una serie di
dati o numeri in sequenza. Il Riempimento automatico di Excel sbriga questo tipo di lavoro
ripetitivo: dovete solo inserire i valori di partenza della serie.
Ad esempio: se si vogliono scrivere i dodici mesi dellanno basta digitare Gennaio, poi
posizionare il mouse sul quadratino di riempimento nellangolo in basso a destra di questa
cella, e trascinare per 12 celle. Una volta rilasciato il pulsante del mouse, Excel riempie
automaticamente con i nomi dei mesi.
Ecco alcuni esempi di serie che potete creare con il riempimento automatico.
Valore inserito nella prima
cella
Giugno
Giu
Martedi
Mar
4/1/94
Gen - 94
15 - Feb
10:00 PM
8:01
Trimestre 1
Trim 2
T3
Prodotto 1
1Prodotto

Serie che il Riempimento automatico crea nelle


successive tre celle
Luglio, Agosto, Settembre
Lug, Ago, Set
Mercoledi, Giovedi, Venerdi
Mer, Gio, Ven
4/2/94, 4/3/94, 4/4/94
Feb - 94, Mar - 94, Apr - 94
16 - Feb, 17 - Feb, 18 - Feb
11:00PM, 12:00 PM, 1:00 PM
9:01, 10:01, 11:01
Trimestre2, Trimestre3, Trimestre4
Trim3, Trim4, Trim1
T4,0T1, T2
Prodotto2, Prodotto3, Prodotto4
2Prodotto, 3Prodotto, 4Prodotto

Autocomposizione Funzione (solo qualche cenno)


Anche se possibile inserire una funzione digitandola direttamente in una cella, Excel fornisce
unAutocomposizione Funzione utilizzabile non solo per selezionare la funzione, ma per
specificare gli argomenti della funzione.
Per lAutocomposizione Funzione andate su Inserisci e scegliete Funzione; si visualizza una
finestra di dialogo che contiene due caselle di riepilogo: Categoria e Nome funzione.

46
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.1 Qualcosa di pi sulle Formule

Excel seleziona automaticamente Usate pi di recente e visualizza le funzioni che di solito


vengono utilizzati nella casella Nome funzione.
Se la vostra funzione non tra quelle selezionate, sceglietela nella casella Categoria.
A questo punto avete gi fatto parecchi passi in avanti nelluso di Excel!!!!
Il vostro primo Lavoro fatto. Cosa dovete fare???
Salvate il vostro Foglio di Lavoro con un Nome!!!!!

47
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.2 Personalizzazione di Microsoft Excel secondo le esigenze dellutente

4.2 Personalizzazione di Microsoft Excel secondo le esigenze dellutente


Barra degli strumenti
C ancora unaltra meraviglia in questo programma: potete, infatti, anche visualizzare qualsiasi
barra degli strumenti incorporata di Microsoft Excel e personalizzarla con i pulsanti o i
comandi usati pi di frequente. Oppure potete anche creare pulsanti e barre degli strumenti
completamente nuovi, programmati per eseguire determinate operazioni.
Al momento dellapertura di Excel vengono visualizzate le barre degli strumenti Standard e
Formattazione.
Barra degli strumenti Standard

Barra degli strumenti Formattazione

Per visualizzare le barre degli strumenti che vi occorrono, dal Menu Visualizza scegliete
Barre degli strumenti, apparir la seguente finestra di dialogo

48
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.2 Personalizzazione di Microsoft Excel secondo le esigenze dellutente

Se una barra degli strumenti non visualizzata, selezionarla tenendo presente che:
Barra degli strumenti
Standard
Formattazione
Query pivot
Grafico
Disegno
Suggerimenti
Ferma registrazione
Schermo intero
Finestra di dialogo
Visual Basic
Controllo
Gruppo di lavoro
Microsoft

Utilizzo
Operazioni fondamentali della cartella di lavoro
Formattazione di caratteri, numeri e celle
Utilizzo di tabelle pivot e di aggiunte di Microsoft
Query
Creazione e modifica di grafici
Creazione di oggetti grafici
Visualizzazione di suggerimenti durante lutilizzo
di Microsoft Excel
Interruzione di una registrazione di una Macro
Passaggio dalla visualizzazione a schermo intero a
quella normale
Creazione di finestre di dialogo di Visual Basic
Utilizzo di moduli Visual Basic
Individuazione di precedenti, dipendenti ed errori
allinterno di formule
Ricerca, distribuzione ed invio di file
Passaggio ad altre applicazioni Microsoft

Le barre degli strumenti possono essere visualizzate come barre degli strumenti
mobili o lungo i margini della finestra di applicazione; nel primo caso si
comportano come una qualsiasi finestra, per nasconderle, fate clic sulla casella di
chiusura.

Creazione di Barre degli strumenti personalizzate


Se a questo punto la vostra mente si fosse ammalata di eccesso di protagonismo e voleste
creare una barra degli strumenti personalizzata, operate in questo modo:

49
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.2 Personalizzazione di Microsoft Excel secondo le esigenze dellutente

Dal menu Visualizza scegliete Barre degli strumenti. Digitare un nome nella casella
Nome della barra degli strumenti e scegliere il pulsante Nuovo. Vedrete visualizzarsi
una nuova barra degli strumenti vuota con il nome che le avete assegnato e la finestra di
dialogo Personalizza. A questo punto potete trascinare sulla nuova barra degli strumenti
i pulsanti desiderati.

Oppure, dopo Visualizza Barre degli strumenti, cliccate direttamente su


Personalizza e trascinate i pulsanti desiderati su di un qualsiasi punto che non sia una
barra degli strumenti esistente. Verr creata una nuova barra degli che verr denominata
Barra degli strumenti 1. Se creerete altre barre degli strumenti esse prenderanno il nome
di Barra degli strumenti 2, Barra degli strumenti 3 e cos via.
Per ultimo, potete anche personalizzare la vostra barra degli strumenti cliccando su
Personalizza nella finestra di dialogo e posizionare i nuovi pulsanti su quella gi
esistente, andrete cos a personalizzare la Barra degli strumenti Standard.

N.B. Non possibile rinominare una barra degli strumenti


Se volete eliminare una barra degli strumenti, dal menu Visualizza andate su Barre degli
strumenti, selezionate la barra che intendete eliminare e cliccate sul pulsante Elimina.
N.B. Non possibile eliminare le barre degli strumenti incorporate
Aggiunta o eliminazione di un pulsante dalla Barra degli strumenti
Potete anche personalizzare la barra degli strumenti esistente in modo che si visualizzano i
pulsanti disponibili in Excel o qualsiasi pulsante creato da voi.

50
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

4.2 Personalizzazione di Microsoft Excel secondo le esigenze dellutente

Quindi, per aggiungere un pulsante gi esistente ad una barra degli strumenti, scegliete
Personalizza e trascinate il pulsante desiderato direttamente sulla barra degli strumenti.

Per eliminare un pulsante da una barra degli strumenti, scegliete Personalizza e trascinate al di
fuori della barra degli strumenti il pulsante che si desidera eliminare. Fate Attenzione a non
spostarlo su unaltra barra degli strumenti.!!!!

51
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Il decalogo dei suggerimenti

APPENDICI
Il decalogo dei suggerimenti
Il seguente "decalogo " mette in luce le pi comuni trappole che attendono i principianti di Excel.
Seguite sempre questi suggerimenti e diventerete molto pratici di Excel.
1. Se usate Windows, ricordatevi che non ci possono essere spazi nei
nomi file che attribuite alle vostre cartelle di lavoro di Excel e
che questi nomi file non possono contenere pi di otto caratteri.
Excel aggiunge automaticamente l'estensione .XLS al nome file principale attribuito al vostro
documento cartella di lavoro, indicante che il file contiene fogli di lavoro di Excel. Quando
modificate un nome file (invece di sostituirlo), fate attenzione a lasciare intatta l'estensione .XLS.
2. Se introducete uno spazio in un dato numerico altrimenti completo
Excel classifica il dato come testo, e ci indicato dal suo
allineamento sul bordo sinistro della cella. Se introducete quel dato in una
formula, la classificazione di testo altera completamente la risposta, poich in una formula il dato di
testo viene trattato come uno zero (0).
3. Quando inserite le parentesi in una formula accoppiatele in modo
appropriato, in modo da avere nella formula una parentesi chiusa
per ogni parentesi aperta. Se non inserite correttamente le parentesi, Excel visualizza
una casella di avvertimento con il messaggio: Le parentesi non corrispondono quando cercate di
inserire la formula. Quando chiudete questa casella di avvertimento, Excel torna subito alla barra
della formula dove potete inserire la parentesi mancante e premere INVIO per correggere la
condizione sbilanciata. A ogni modo, Excel evidenzia sempre le parentesi appaiate.
4. E possibile reinserire contenuti di cella modificati facendo clic sulla casella Invio sulla barra della
formula oppure premendo TAB o INVIO, ma non possibile utilizzare i tasti freccia. Mentre state
modificando un dato di cella i tasti freccia spostano soltanto il punto di inserimento lungo il dato.
5. Assicuratevi di non premere uno dei tasti freccia per completare un dato di cella all'interno di un
intervallo di celle preselezionato. Dovete invece fare clic sulla casella Invio o premere INVIO.
Premendo un tasto freccia viene deselezionato l'intervallo di celle quando Excel sposta il puntatore
di cella.
6. Il comando Annulla sul menu Modifica cambia a seconda dell'azione che avete appena intrapreso.
Poich il comando Annulla continua a cambiare dopo ogni azione, dovete ricordarvi di battere il
ferro finch caldo: utilizzate la caratteristica Annulla per riportare il foglio di lavoro al suo stato
precedente prima di selezionare un altro comando.
7. Eliminare intere righe e colonne da un foglio di lavoro una faccenda rischiosa, a meno che non
siate sicuri che le righe e colonne non contengono nulla di valore. Ricordate: quando eliminate
unintera riga dal foglio di lavoro, vengono eliminati tutti i dati dalla colonna A alla IV di quella
riga, anche se si possono vedere solo poche colonne della riga. Allo stesso modo, quando eliminate
unintera colonna dal foglio di lavoro, vengono eliminati tutti i dati dalla riga 1 alla 16.384 della
colonna.
8. Fate attenzione con le operazioni di sostituzione globale. Possono davvero portare scompiglio in
un foglio di lavoro se sostituite inavvertitamente valori, parti di formule o caratteri allinterno di
titoli o intestazioni che non volevate toccare. Come precauzione, non avventuratevi mai in
unoperazione di sostituzione globale su un foglio di lavoro non salvato. Se fate un pasticcio,
selezionate il comando Annulla Sostituisci sul men Modifica (CTRL+Z) per ripristinare il
foglio di lavoro. Se non scoprite il problema in tempo per utilizzare Annulla, chiudete il foglio di
lavoro compromesso senza salvare i cambiamenti e aprite la versione precedente alla soluzione che
avete salvato.
52
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Il decalogo dei suggerimenti

9. Fate molta attenzione con la password. Per rendere impossibile rimuovere la protezione da un
foglio di lavoro a meno che non si conosca la password, inserite una password nella cartella di
testo Password (facoltativa) nella finestra di dialogo Proteggi foglio o Proteggi cartella di lavoro
(Strumenti Protezione Proteggi foglio o Proteggi cartella di lavoro). Excel maschera con un
asterisco ogni carattere che digitate in questa cartella di testo. Dopo aver selezionato OK, Excel vi
fa reinserire la password prima di proteggere il foglio di lavoro o la cartella di lavoro. Da quel
momento in poi, possibile eliminare la protezione dal foglio o dalla cartella di lavoro solo se siete
in grado di riprodurre la password esattamente come lavete assegnata incluso il
maiuscolo/minuscolo. Se dimenticate la password non potete modificare alcuna cella bloccata e
non potete pi sbloccare nessuna cella nel foglio di lavoro (o nel caso di una cartella di lavoro,
nessun foglio di lavoro)!
10. Se la selezione non si sposta alla cella selezionata sottostante dopo aver premuto INVIO, dal menu
Strumenti, scegliete Opzioni, Modifica, quindi attivare la casella di controllo Sposta la
selezione dopo Invio.

53
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Scelte rapide da tastiera

Scelte rapide da tastiera


Quando avete bisogno di aiuto

Su un PC premete
F1
MAIUSC+F1

Su un Mac premete
+/
+MAIUSC

Per
Aprire la finestra Guida di Microsoft
Excel
Ottenere la Guida di Microsoft Excel
sensibile al contesto

Quando state modificando il vostro foglio di lavoro


Su un PC premete

INVIO
ESC

Su un Mac premete
INVIO
+. (punto)

F4
CTRL+Z

+T
+Z

CTRL+MAIUSC++(segno
pi)

+I

CANC

CANC

CTRL+-

+K

CTRL+CANC

+B

CTRL+X

+X

CTRL+C

+C

CTRL+V

+V

ALT+=

+MAIUSC+T

F7
CTRL+MAIUSC+T
CTRL+MAIUSC+F12

F7
+F
+P

Per
Eseguire la vostra azione
Annullare un comando o chiudere la
finestra di dialogo visualizza
Ripetere la vostra ultima azione
Annullare il vostro ultimo comando
o azione
Visualizzare la finestra di dialogo
Inserisci per inserire nuove celle,
colonne o righe nel foglio di lavoro
Visualizza la finestra di dialogo
Cancella per cancellare il contenuto
o la formattazione della vostra
selezione di celle
Visualizza la finestra di dialogo
Elimina per eliminare celle, colonne o
righe del foglio di lavoro
Cancellare i dati nella vostra sezione
di celle
Tagliare la selezione per metterla
negli Appunti
Copiare la selezione nel
Visualizzatore degli Appunti
Incollare la selezione nel
Visualizzatore degli Appunti
Creare una formula di Somma
(equivale a fare clic sullo strumento
Somma automatica sulla barra degli
strumenti Standard)
Correggere lortografia
Trovare
Visualizzare la finestra di dialogo
Stampa

54
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

F11

Appendice: Scelte rapide da tastiera

F11

ALT+F1oF12

+MAIUSC+S

MAIUSC+F12

+S
+1

CTRL+F12

+O

Inserire un nuovo foglio nella


cartella di lavoro
Visualizzare la finestra di dialogo
Salva con Nome
Salvare la cartella di lavoro
Visualizzare la finestra di dialogo
Formato delle Celle
Visualizzare la finestra di dialogo
Apri

55
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Strumenti

Strumenti:
Barra degli strumenti Standard
Nuovo File
Apri File
Salva File

Stampa File
Anteprima di stampa
Controllo Ortografia
Taglia la Selezione
Copia la Selezione
Incolla la Selezione
Copia Formato
Annulla ultima operazione
Ripeti lultima azione o comando
Inserisce la funzione somma e propone il relativo intervallo
Autocomposizione funzione inserisce o modifica una funzione
Ordina le righe selezionate in ordine crescente
Ordina le righe selezionate in ordine decrescente
Crea un grafico incorporato o modifica il grafico attivo
Aggiunge del testo od una casella di testo indipendente
Mostra o nasconde la barra degli strumenti di disegno
Cambia lingrandimento del documento visualizzato

56
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Strumenti

Barra degli strumenti di formattazione


Applica il tipo di carattere che si desidera
Applica la dimensione del carattere che si seleziona
Applica il formato grassetto al testo selezionato
Applica il formato corsivo al testo selezionato
Sottolinea il testo selezionato
Allinea il testo a sinistra
Centra il testo
Allinea il testo a destra
Centra il testo nelle celle selezionate
Applica lo stile valuta alle celle selezionate
Applica lo stile percentuale alle celle selezionate
Applica lo stile separatore delle migliaia alle celle
selezionate
Aggiunge un decimale al formato numerico
Rimuove un decimale al formato numerico
Applica i bordi alla selezione
Applica il colore alla selezione
Applica il colore del carattere al testo selezionato

57
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Strumenti

SOMMARIO
INFORMAZIONI PRELIMINARI

Prefazione

1. INTRODUZIONE

Cos Excel
Ma quanto grande?

2
3

2.1 AVVIO DI MICROSOFT EXCEL

Avvio
Per avviare Microsoft Excel:
Modalit Windows
Modalit Macintosh

4
4
4
4

2.2. CREAZIONE, APERTURA E SALVATAGGIO DI FILE

Comando Nuovo
Aspetto dello Schermo
Per attivare unaltra cella:
Per scorrere il foglio di lavoro:

5
5
6
6

Salvataggio di una Cartella di Lavoro


Per salvare un documento:

6
6

Apertura di una Cartella di Lavoro Esistente

Uscita
Per Uscire da Microsoft Excel:

7
7

Gestione di file
Trova File

7
8

2.3. TECNICHE DI IMMISSIONE DI DATI


Immissione di dati in una cella
Immissione di dati in una selezione
Annullamento di unImmissione
Immissione di Numeri
Testo
Selezione e spostamento allinterno di una cartella di lavoro.

2.4. CREAZIONE DI FORMULE

9
9
9
9
10
11
11

14

Immissione di formule
La barra della formula
Somma Automatica
Seguire la gerarchia
Errore nella formula

14
15
16
17
17

Cenni preliminari sui valori di errore


Copia formula

17
18

2.5. MODIFICA DEI DATI DI UN FOGLIO DI LAVORO


Modifica del contenuto di una cella

19
19

58
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Lezioni di Excel

Appendice: Strumenti

Cancellare o eliminare celle, righe o colonne.

19

Eliminazione di celle
Cancellazione di celle
Annullare gli errori

20
20
21

Ripetere lultima operazione

21

Copia e spostamento di celle.


Effetti della copia e dello spostamento delle celle.
Utilizzo dei comandi Copia, Taglia ed Incolla.
Utilizzo dei comandi Copia, Taglia ed Incolla.
Spostamento di celle.
Inserimento di celle tra celle esistenti.
Incollamento di pi copie.
Trascinamento delle celle.
Controllo ortografico e correzione degli errori di digitazione.

21
21
22
22
23
23
23
24
24

3.1 FORMATTAZIONE DEI FOGLI DI LAVORO.

26

Applicazione ai dati del formato desiderato.


Applicazione di formati.
Tipi di carattere.
Numeri.
Allineamento.
Applicazione di Bordi, Ombreggiature e Motivi di sfondo.
Immissione di date o di ore.
Immissione di date o di ore nelle formule.
Formattazione automatica.

3.2. STAMPA.

26
26
26
27
27
28
28
29
29

30

Operazioni preliminari di stampa


Per visualizzare unanteprima della stampa.
Selezione della stampa con il comando: Area di Stampa.
Modifica delle opzioni di stampa
Per centrare i dati del foglio di lavoro sulla pagina:
Per nascondere la griglia durante la stampa:
Per stampare la formattazione del colore in bianco e nero:
Pensare ai margini

30
30
30
31
31
32
33
33

Intestazione e pi di pagina.
Modificazione dellintestazione e del pi di pagina.
Stampa dei Fogli.

33
33
34

I DIECI COMANDAMENTI PER LA STAMPA


3.3. UTILIZZO DEI GRAFICI

35
37

Creazione di un grafico
Che cos un Grafico
Creazione di un grafico
Modifica di un grafico
Modifica del testo

37
37
37
41
42

3.4. CREAZIONE DI DISEGNI

44

Oggetti grafici nei fogli di lavoro e nei grafici


Cenni sulla creazione di forme, linee, figure a mano libera e altri oggetti

59
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

44
44

Lezioni di Excel

Appendice: Strumenti

4.1 QUALCOSA DI PI SULLE FORMULE

46

Riempimento Automatico.

46

Autocomposizione Funzione (solo qualche cenno)

46

4.2 PERSONALIZZAZIONE DI MICROSOFT EXCEL SECONDO LE ESIGENZE


DELLUTENTE
48
Barra degli strumenti
Creazione di Barre degli strumenti personalizzate
Aggiunta o eliminazione di un pulsante dalla Barra degli strumenti

APPENDICI

48
49
50

52

Il decalogo dei suggerimenti

52

Scelte rapide da tastiera

54

Strumenti:
Barra degli strumenti Standard
Barra degli strumenti di Formattazione

56
56
57

60
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)

Evidenziare i divisori di un numero


Vogliamo con questo foglio di excel evidenziare tutti i divisori di un numero.
Curiosamente il lavoro non prevede linserimento di formule e funzioni ma lutilizzo della formattazione
condizionale.
Iniziamo con scrivere i primi 100 numeri naturali in un gruppo di celle.
Inserisci i numeri 1, 2, 11 e 12 nelle celle B5 : C6 come in figura, posiziona il puntatore sullangolo in
basso a destra della cella C6 e, tenendo premuto il pulsante sinistro del mouse trascina verso destra
fino alla cella K6.

Come vedi sono apparsi i primi 20 numeri naturali. Posiziona il puntatore sullangolo in basso a destra
della cella K6 e trascina in basso fino alla cella K14.

Vedrai a questo punto i primi 100 numeri naturali ordinati su dieci righe.
Nella figura sopra le celle contenente i numeri sono pi piccole in lunghezza.
Per farlo, seleziona le intestazioni di colonna (B C D K ), fai clic con il tasto destro del mouse e,
dal menu contestuale, scegli Larghezza colonne, inserisci il valore 6, oppure 5.
Allo stesso modo, seleziona le intestazioni di riga (5 6 7 14), fai clic con il tasto destro mouse,
scegli Altezza righe, inserisci un valore 22 o 25.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Seleziona la tabella con i numeri, fai clic su Formato, dal men a tendina scegli Celle, dalla finestra
Formato celle seleziona la scheda Allineamento e nei campi Allineamento testo Orizzontale: e
Verticale: scegli Al centro, fai clic su OK
Passa alla scheda Bordo e inserisci un bordo su tutte le celle.

Seleziona le celle F3 e G3, fai clic sul pulsante Unisci e centra.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Nella cella E3 scrivi: il numero

nella cella H3 scrivi: divisibile per

quindi allinea il testo della cella E3 a destra, della cella H3 a sinistra.

Seleziona la cella B5, vai su Formato, quindi su Formattazione condizionale.

Dalla relativa finestra scegli per il primo campo: la formula e.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

La finestra presenta ora solo un altro campo nel quale inserirai la formula della figura.
Fai clic sul pulsante Formato sulla destra della finestra.

Appare la finestra Formato celle, seleziona la scheda Motivo, scegli un colore possibilmente chiaro.
Fai Clic su OK.

Si ritorna alla finestra Formattazione condizionale con il campo Anteprima del formato colorato.
Fai clic su OK.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

La cella B5 appare gialla. Perch?


Con la Formula =RESTO($F$3;B5)=0 abbiamo chiesto a Excel di colorare lo sfondo della cella B5 di
giallo solo se e il resto della divisione tra il contenuto della cella F3 e la cella B5 uguale a 0.
La formattazione condizionale deve ora essere estesa a tutte le altre celle contenente i numeri.
Seleziona la cella B5 quindi fai clic sul pulsante Copia formato, seleziona larea con i numeri
trascinando con il mouse partendo dalla cella B5 fino alla cella K14, mentre trascini il puntatore si
trasformer in una pennello.

Sono diventate gialle tutte le celle che soddisfano alla condizione richiesta, proprio quelle che
contengono numeri che sono divisori di 84. Se nella cella F3 cambi il numero cambiano le celle
colorate.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Per rendere il foglio pi gradevole puoi scegliere uno sfondo colorato. Seleziona lintero foglio con un
clic sul rettangolino a sinistra della colonna A e sopra la riga 1, scegli un colore che ti piace.

Colora ora la tabella contenente i numeri. Seleziona da B5 a K14 e scegli anche per queste un colore.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Seleziona la cella unita F3 e scegli Nessun riempimento.

Nella cella F3 puoi inserire un commento per indicare che si pu immettere un numero a caso, ma
non troppo grande! Per farlo vai su Inserisci poi su Commento.

Controlla che la cella F3 sia


selezionata quindi vai su Formato,
fai clic su Celle e dalla finestra
Formato celle scegli la scheda
Protezione, togli il segno di spunta
da Bloccata, clic su OK.
La cella F3 dovr essere lunica di
tutto il foglio in cui sar possibile
inserire dei numeri!

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Ora possiamo proteggere il foglio.


Vai su Strumenti, dal men a discesa scegli Protezione, quindi Proteggi foglio, nella finestra che
appare se lo desideri puoi inserire una password, infine fai clic su OK.

Il nostro lavoro finito!


Come vedi il foglio permette di trovare tutti i divisori dei numeri purch non siano superiori a 100.
Tu, puoi anche estendere la tabella fino a 1000 o pi, ovviamente dovrai cercare di restringere le
celle.

Evidenziare i divisori di un numero - prof. Enzo Mardegan - www.enzomardegan.net

Come Eseguire Dei Semplici


Calcoli E Formattare
Celle E Tabelle In Una Cartella.
a cura del
Progetto di Documentazione OpenOffice.org

retro della copertina

Versione 1

Indice
1 Introduzione agli strumenti disponibili nell'ambiente Calc. .............................................................2
2 Calcoli Iniziali...................................................................................................................................4
2.1 Ancora sui riferimenti................................................................................................................5
3 Formattazione Personalizzata ...........................................................................................................6
4 Stampare il vostro lavoro...................................................................................................................8
5 World Wide Web.............................................................................................................................10
6 Crediti, Ringraziamenti, Licenza.....................................................................................................11
6.1 Crediti......................................................................................................................................11
6.2 Ringraziamenti.........................................................................................................................11
6.3 Licenza.....................................................................................................................................11

23 aprile 2002

Introduzione agli strumenti disponibili nell'ambiente Calc.

Versione 1

1 Introduzione agli strumenti disponibili


nell'ambiente Calc.
Prima di iniziare ad occuparvi di calcoli avanzatissimi che indubbiamente sarete in grado di
fare in un batter d'occhio, analizzate brevemente la struttura dell'ambiente di lavoro per
familiarizzare con gli strumenti che vi sono stati messi a disposizione.

Appena sotto la barra del titolo (quella con la farfalla) scorgerete quattro barre dei simboli di
comando :
Una barra dei Men
Una barra delle Funzioni
Una barra degli Oggetti
Una barra di Calcolo

20 aprile 2002

Introduzione agli strumenti disponibili nell'ambiente Calc.

Versione 1

La barra dei Men contiene i men principali del modulo Calc. La barra delle Funzioni
fornisce all'utente la possibilit di accedere alle icone di funzione come Apri file, Salva
documento, Copia, Taglia, Incolla e altre operazioni comuni in OpenOffice.org. La barra
degli Oggetti include un gruppo di strumenti che sono specifici nel calcolo e nella
formattazione di celle (formato dei numeri, allineamento del testo, bordi). Infine, la barra di
calcolo preposta all'inserimento delle formule necessarie ai vostri calcoli e vi segnala,
inoltre, la posizione del cursore all'interno del foglio elettronico.
NB : Alcuni credono che queste barre non possano essere cambiate, ma non per niente vero.
Infatti, possibile modificare le icone e le funzioni ad esse associate secondo le vostre
necessit, cliccando sulla barra principale o su quella degli Oggetti con il tasto destro del
mouse. Apparir un men contestuale. Da qui, scegliete `Configura' o `Modifica' per
cambiare il contenuto della barra. Potete selezionare anche la voce `Pulsanti Visibili' e
aggiungere o rimuovere i pulsanti a vostra scelta. Dallo stesso men contestuale potete pure
aggiungere una barra extra, chiamata barra delle Opzioni che, normalmente, non visibile.
Questa barra contiene parecchi pulsanti addizionali, che sono utili nel posizionamento o nella
modifica degli strumenti.
A sinistra dello schermo, potete notare la barra degli Strumenti (visibile qui sulla
destra). Questa barra fornisce gli strumenti necessari per lavorare con il vostro foglio
elettronico. Le funzioni basilari della barra sono spiegate in questo `How-to'. Nella parte
inferiore dello schermo, noterete la Barra di Stato. Questa barra fornisce informazioni
essenziali come l'indicazione della tabella sulla quale state lavorando, il modello di
pagina e, in modalit normale, la somma delle celle sulle quali situato il cursore.
NB : Un click con il tasto destro del mouse sul riquadro in cui c' la scritta Somma, vi
dar accesso ad un men contestuale con altre scelte, come ad esempio, massimo,
minimo...
Avrete anche notato che la cartella appena caricata contiene sempre tre tabelle, segnalate
dalla presenza di tre piccole etichette sulla Barra di Stato recanti i nomi : Tabella1,
Tabella2, Tabella3.
Il foglio elettronico rappresentato come una griglia comprendente delle celle, ognuna
distinta da un riferimento univoco. Il riferimento ad una cella dato dalla sua colonna
(riferimento verticale), sotto forma di lettera (p.es. A...Z ecc.), e dalla sua riga
(riferimento orizzontale), sotto forma di numero (p.es. 1...65000 ecc.), Questi riferimenti
appaiono sul foglio elettronico come testate di colonna e di riga a sfondo grigio. Perci,
la prima cella sulla prima riga (quella all'angolo superiore sinistro) ha come riferimento
A1.

23 aprile 2002

Calcoli Iniziali

Versione 1

2 Calcoli Iniziali
Se siete arrivati in questa sezione senza aver letto i paragrafi precedenti, sarebbe comunque una
buona idea tornare indietro e leggerli, perch i termini che saranno usati qui sono stati introdotti
nel capitolo precedente. Tuttavia, se siete troppo impazienti, stanchi, agitati o persino annoiati
per farlo, continuate a leggere e vi illustreremo come eseguire le addizioni con Calc !
Come gi detto innanzi, i riquadri formati dalla griglia sono chiamati celle. In queste celle potete
inserire testo, numeri o formule. Naturalmente, l'intera "ragione d'esistere" di una applicazione
per fogli elettronici, la capacit di eseguire dei calcoli all'interno di queste celle.
Comunque, bando alle chiacchiere, andiamo avanti e proviamo il nostro primo calcolo ! :
Nella cella A1 digitate (senza i doppi apici) "=5"
Poi premete sulla vostra tastiera il tasto `Invio'
Sulla cella vedrete apparire "5", perch il risultato dell'operazione compare
automaticamente.
Il vostro cursore ora dovrebbe trovarsi sulla cella immediatamente sottostante alla cella A1, ma
se cliccate ancora una volta sulla cella A1, vedrete sulla barra di Calcolo l'operazione
matematica che avete appena inserito.
Andiamo avanti : ora digitate 6 nella cella A2 e vogliamo che il risultato dell'addizione da cella
A1 a cella A2 sia visualizzato in cella A3. Ecco come fare :
Posizionate il cursore sulla cella A2, e digitate 6
Confermate questo inserimento premendo il tasto 'Invio', il cursore si sposter alla cella
A3
Digitate (senza i doppi apici) "=A1"
Confermate con `Invio', e vedrete il risultato "11" visualizzato in cella A3
Quest'ultimo calcolo stato eseguito utilizzando i riferimenti di cella e non i valori assoluti.
Andiamo ancora avanti e proviamo a sommare un'intera colonna di celle, cio un intervallo.
Cliccate sull'etichetta Tabella2 per aprire una tabella vuota.
Digitate alcuni numeri a caso nelle celle da A1 a A9
Confermate con `Invio', ed il cursore si sposter alla cella A10
Digitate (senza i doppi apici) "=somma(A1:A9)"
Confermate con `Invio', e vi verr mostrato il risultato sulla cella A10, mentre la formula
sar visibile nella barra di Calcolo.
Digitando il doppio punto [ : ] tra i riferimenti di cella, non avete fatto altro che dire al
programma di sommare i valori dell'intervallo di celle da A1 a A9. L'intervallo evidenziato
sullo schermo da un bordo di colore rosso.
Digitando `somma ()', avete comunicato al programma il tipo di operazione matematica che
volete eseguire sulle relative celle incluse tra parentesi.
NB : Avrete probabilmente notato che quando avete iniziato a digitare `somma', Calc ha
suggerito il completamento della formula. la funzione di Completamento Automatico,
4

20 aprile 2002

Calcoli Iniziali

Versione 1

mediante la quale se siete d'accordo con il suggerimento dato da OpenOffice.org sufficiente


premere `Invio', e il cursore sar posizionato automaticamente tra le parentesi cos che tutto
quello che vi resta da fare di inserire gli estremi dell'intervallo.
Bene, rifacciamolo ancora, solo che questa volta al posto del doppio punto mettiamo un punto e
virgola (;) tra A1 e A9. Noterete che il risultato completamente diverso. In questo caso, avete
solo sommato il contenuto della cella A1 a quello della cella A9 e non l'intero intervallo. Quindi,
per sommare due intervalli di celle, basta digitare "=somma(A1:A9;B1:B9)".
Potete anche selezionare gli intervalli da sommare, usando il mouse. Dopo aver digitato "=
somma(" nella cella di partenza, cliccate sulla prima cella dell'intervallo e tenendo premuto il
tasto del mouse, trascinate la selezione fino all'ultima cella, quindi rilasciate il tasto del mouse, e
vedrete il completamento della formula inserito automaticamente nella barra delle Formule.
NB : Se il numero da visualizzare fosse troppo lungo rispetto alla lunghezza della cella, sar
rimpiazzato da una serie di diesis musicali (###). Per adattare la dimensione della cella, basta
cliccare sulla parte destra del relativo separatore di colonna e trascinare il separatore stesso verso
destra (per allargare) o verso sinistra (per restringere). Si pu ottenere lo stesso risultato
utilizzando il comando Formato - Colonna - Larghezza Ottimale.

2.1 Ancora sui riferimenti


importante avere una certa abilit con i riferimenti se vorrete eseguire dei calcoli sulle celle
contenenti formule.
Un riferimento relativo un intervallo nel quale le relazioni variano se la formula viene
spostata :
p.es.. : se copiate la formula "=somma(A1:A9)" sulla colonna B della stessa riga, diventer
"=somma(B1:B9)"
Un riferimento assoluto utilizzato quando un calcolo deve riferirsi esattamente ad una
determinata cella del foglio elettronico. Per esempio la scritta $A$1 indica il riferimento
assoluto alla colonna A e alla riga 1. Di conseguenza $A1 usato come il riferimento assoluto
alla colonna A e A$1 come riferimento assoluto alla riga 1.
Ora che abbiamo finito di imparare come fare dei semplici calcoli, alleniamo la mente (e le
dita) con alcune sottrazioni, moltiplicazioni e divisioni !

23 aprile 2002

Formattazione Personalizzata

Versione 1

3 Formattazione Personalizzata
Il vostro foglio elettronico contiene tre tabelle, Tabella1,2,3. Daremo un nome ad ogni tabella
(dopo tutto, ci torna utile per ricordarle facilmente !). Cliccate con il tasto destro del mouse
sull'etichetta Tabella1, vi apparir un men contestuale con la scelta `Rinomina'. Cliccate su
questa opzione. Nella finestra successiva, inserite il nome che volete dare alla tabella e cliccate
su `OK', sull'etichetta della tabella sar visibile il nuovo nome.
Avrete di certo notato che questo men contestuale contiene anche le scelte per inserire o
cancellare la tabella cos come quella per spostarlo o per copiarlo. Ogni volta, una finestra di
dialogo vi permetter di specificare la scelta corretta.
Lavoriamo un p con la formattazione di cella. Supponendo che vogliate inserire il titolo del
vostro foglio elettronico su parecchie tabelle, dovrete :
Selezionare tutte le tabelle nelle quali dovr apparire il titolo. Poi con il mouse, cliccate
sulla prima cella del titolo e trascinatelo fino all'ultima .
Dalla barra dei men, selezionate : Formato - Unisci Celle- Definisci
Di solito, si vuole centrare il titolo nelle celle selezionate. Per farlo :
Selezionate la cella del titolo
Dalla barra dei men, selezionate: Formato - Cella
Nella finestra di dialogo che apparir, cliccate sull'etichetta `Allineamento'
Scegliete il tipo di orientamento (orizzontale o verticale)
Cliccate su `In centro' nel relativo elenco a discesa
Se volete, su questa finestra di dialogo, avete a disposizione anche altre opzioni.
Cliccate su `OK'
Se volete inserire un bel bordo attorno alla vostra tabella, selezionate le celle e dalla barra dei
men scegliete Formato - Cella e cliccate sull'etichetta `Bordo'. Scegliete lo spessore del bordo
che fa al caso vostro e cliccate su `OK'.
Avrete notato che la finestra di dialogo `Attributi Cella' comprende un certo numero di etichette
relative alla formattazione di cella (Carattere, Effetto Carattere, Allineamento). Potete
arrivare alla stessa finestra di dialogo anche cliccando con il tasto destro del mouse su una cella e
scegliendo `Formatta celle'. Naturalmente, anche la barra delle funzioni contiene alcune di
queste formattazioni.
Diamo uno sguardo alle ultime tre icone della barra delle funzioni. Queste tre icone
vi permettono di posizionare il testo in alto, al centro e in basso della rispettiva
cella. Davvero pratico !
Un ultima cosa, per fare in modo che le celle contenenti del testo risaltino sulla tabella rispetto a
quelle contenenti numeri e formule, potete utilizzare l'opzione `Evidenzia Valori' :
Dalla barra dei men, scegliete Visualizza - Evidenzia Valori,
Vedrete che tutte le celle di testo saranno visualizzate in nero, quelle dei numeri in blu e
quelle delle formule in verde.

20 aprile 2002

Formattazione Personalizzata

Versione 1

NB : Per formattare direttamente la vostra cella come una contenente testo, inserite un apostrofo
( ` ) prima di digitarne le parole, p.es. : `Prezzo
Finalmente, la nostra tabella comincia a prendere forma !
Guardiamo ora le regolazioni di pagina. Se vi risulta pi semplice lavorare con uno stile di
pagina orizzontale, fate cos :
Dalla barra dei men, scegliete Formato - Pagina
Cliccate sull'etichetta `Pagina'
Alla sezione 'Allineamento', cliccate sul pulsante di opzione `Orizzontale'
Confermate con `OK'
Per essere sicuri che la vostra tabella stata salvata nel formato orizzontale, cliccate su File Vista Pagina nella barra dei men.
Analizzando ancora per un attimo la finestra modello di pagina, noterete la possibilit di
aggiungere la riga di intestazione, il pi di pagina e naturalmente la numerazione delle pagine.
Vediamo questo aspetto pi in dettaglio :
Dalla barra dei men, scegliete Formato - Pagina
Cliccate sull'etichetta `Pi di pagina'
Nella finestra che vi apparir, cliccate sulla casella di selezione `Attiva pi di pagina'
Il pulsante `Extra...' vi permette di aggiungere un bordo o uno sfondo al pi di pagina
Cliccate sul pulsante `Modifica...'
Nella finestra che vi apparir, vedrete tre finestre pi piccole e una serie di icone. Le finestre pi
piccole corrispondono alle tabulazioni inserite nel pi di pagina e le icone ai comandi di campo.
Quella che ci interessa distinguibile da un simbolo musicale di diesis (#) .
Posizionate il cursore su una delle finestre pi piccole a vostra scelta
Cliccate sull'icona `Pagina' (contraddistinta da un singolo #) e vedrete il numero di
pagina evidenziato sulla finestra da voi selezionata
Cliccate su `OK' per ritornare alla finestra `Modello di Pagina'.
Cliccate su `OK' per chiudere questa finestra.
NB : Ovviamente potete inserire qualsiasi testo desideriate sulla riga di intestazione o sul pi di
pagina e allo stesso modo, il logo della vostra compagnia o del vostro gruppo.

23 aprile 2002

Stampare il vostro lavoro

Versione 1

4 Stampare il vostro lavoro


Pu essere che vogliate stampare solo una parte del vostro foglio elettronico, o una sola tabella,
oppure addirittura, l'intera cartella di lavoro.
Per stampare solo una determinata area della tabella procedete come segue :
Selezionate con il mouse o con la tastiera la zona che desiderate stampare
Scegliete Formato - Aree di stampa dalla barra dei men.
Cliccate su `Definisci'
Vedrete che l'area di stampa selezionata apparir sulla tabella contornata da sottili linee di colore
grigio. Potete accertarvi sulla corretta selezione dell'area da stampare guardando l'anteprima su vista
pagina.
NB : Sul men a discesa sotto la voce Formato - Aree di stampa, potete aggiungere anche altre
aree da stampare del vostro documento. Selezionate l'area e cliccate su Aggiungi. Questa seconda
area di stampa verr stampata su un secondo foglio (anche se sullo schermo una parte della
stessa tabella).
Per stampare una singola tabella della vostra cartella di lavoro:
cliccate su File - Stampa sulla barra dei men
Nella finestra di dialogo che apparir, sotto il gruppo `Aree di stampa', cliccate sul pulsante
di selezione `Pagine' e inserite il numero di pagina che desiderate stampare.
Cliccate su `OK' per iniziare la stampa
Nello stesso gruppo Aree di stampa della finestra di dialogo, potrete indicare per esempio (2,3) per
stampare la pagina 2 e la pagina 3 oppure (2-5) per stampare da pagina 2 a pagina 5 comprese .
Un metodo pi veloce selezionare le tabella da stampare e poi cliccare sull'icona stampa file
direttamente nella barra delle funzioni. Si procede in questo modo :
Cliccate sull'etichetta di tabella nella parte inferiore della tabella stessa e selezionate quelle
che desiderate stampare tenendo premuto il tasto CTRL sulla vostra tastiera. In questo
modo, fate una selezione multipla delle tabelle.
Cliccate sull'icona `Stampa file direttamente' nella barra delle funzioni. Funziona !
Per annullare la selezione, cliccate ancora una volta sull'etichetta di tabella tenendo premuto
il tasto CTRL .

20 aprile 2002

Stampare il vostro lavoro

Versione 1

Per stampare solo determinate colonne o righe della vostra tabella :


Selezionate le righe o le colonne da stampare
Selezionate `File - Stampa' dalla barra dei men
Sulla finestra di dialogo che appare, cliccate sulla casella `Scelta' nel gruppo `Aree di
stampa'
Cliccate su `OK'

23 aprile 2002

World Wide Web

Versione 1

5 World Wide Web


OpenOffice.org :
http://www.openoffice.org
il sito della comunit italiana OpenOffice.org :
http://lang.openoffice.org/it
la mailing list della comunit italiana OpenOffice.org :
discuss_it-subscribe@lang.openoffice.org

10

20 aprile 2002

Crediti, Ringraziamenti, Licenza

Versione 1

6 Crediti, Ringraziamenti, Licenza

6.1 Crediti
Autrice : Sophie Gautier
Integrazioni : Gianluca Turconi
Traduzione dal Francese all'Inglese : Alex Thurgood
Traduzione dall'Inglese all'Italiano : Giuseppe Celant

6.2 Ringraziamenti
A Alex Thurgood per il suo prezioso aiuto

6.3 Licenza
garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i
termini della GNU Free Documentation License, Versione 1.1 o ogni versione successiva
pubblicata dalla Free Software Foundation; senza Sezioni non Modificabili, nessun Testo
Copertina, nessun Testo di Retro-copertina. Una copia della licenza pu essere ottenuta presso
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
Copyright 2002 Sophie Gautier, Gianluca Turconi, Alex Thurgood, Giuseppe Celant

23 aprile 2002

11

file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%20-%20ITA]%20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html

Funzioni di Excel 2000


Funzioni finanziarie.
Ammortamento.
Supponiamo di aver acquistato un appartamento per utilizzarlo come ufficio per la nostra azienda,si tratta di una voce che possiamo
comprendere nel nostro bilancio come immobilizzazione materiale.Vogliamo ammortizzare il costo storico di questo immobile per un
periodo di vita utile del bene pari a 10 anni.Vediamo come impostare l'ammortamento,per prima cosa scriviamo nella cella A1 la parola
Bene,in B1 costo,in C1 vita utile,in D1 quota ammortamento.Adesso scrivete sotto ad A1 appartamento,in B2 1000,in C1 10.Ora
posizionatevi nella cella D2 e dal menu Inserisci scegliete funzione.Ora andate su ammortamento,adesso nella casella costo dovete
inserire il costo sostenuto.Il valore residuo sarebbe la differenza fra il costo sostenuto e la serie d'ammortamenti gi praticati(fondo
d'ammortamento),scrivete 500,in vita utile dovete inserire per quanti anni volete ammortizzare,scrivete 10,mentre in periodo dovete
stabilire se l'ammortamento avvenga su base semestrale o annuale o altro,scrivete uno,vi dar come risultato 200.
Interesse.rata
Con questa funzione possiamo calcolare il tasso d'interesse praticato in un prestito a tasso fisso,supponiamo di aver contratto un prestito
pari a 1000 euro per cinque anni e di voler sapere a quanto ammontano gli interessi sul prestito scegliendo per esempio un tasso fisso del
5%.Bene scegliete la funzione interesse.rata,in alto in tasso_int inserite il tasso,mettete 5%,in periodo mettete la durata del prestito cio 5,
poi dovete stabilire il tipo di capitalizzazione,cio se volete che gli interessi vengano calcolati annualmente o anche pi volte in un anno,
mettete uno che corrisponde a quello annuale,poi in val_attuale mettete 1000,ed avrete come risultato 200.
NUm.rate
Questa funzione pu essere utile per sapere quali sono i periodi di maturazione degli interessi su un prestito che abbiamo contratto.
Supponiamo un prestito come sopra,scegliamo la funzione,poi inseriamo nella prima casella cinque,poi inseriamo il pagamento effettuato
in ciascun periodo,mettiamo -200 come abbiamo visto prima,poi mettete 1000 che sarebbe il prestito,e le altre due non sono obbligatorie
ma potete inserire nell'ultima uno cio gli interessi sono anticipati,avrete un risultato negativo,ma tutto ok,quello il tipo di
capitalizzazione,nel nostro caso sarebbe sei .
Rata
Se vogliamo sapere quale la rata da pagare per un mutuo a tasso costante e per un periodo costante,allora scegliamo Rata come funzione,
poi in alto inserite un tasso,5%,poi inserite cinque come pagamenti totali,quindi supponiamo che siano annuali per cinque anni,poi mettete
il valore del prestito,1000,avrete come rata(quota capitale+interessi)pari a 219 etc..
Tasso
Questa funzione ci permette di trovare il tasso praticato su di un prestito a tasso fisso.Mettiamo che il prestito duri cinque anni e che i
pagamenti siano semestrali dovete inserire in periodi 2*5,quindi 10,poi sotto mettete -200,cio pagate 200 euro,e come valore attuale
mettete 8000(quindi 8000 euro il prestito).Avrete come risultato all'incirca 20%.
VA
Se volete conoscere il valore di un prestito sapendo gli altri dati scegliete questa funzione.Per esempio abbiamo acquistato una macchina
per la quale paghiamo 200 euro d'interessi il mese,per un periodo di cinque anni,allora inseriamo in alto un tasso 20%/12(perch i mesi
sono 12)in periodi inserite 12*5(cio 60 mesi)e in pagamenti inserite -200,avrete 7548 euro come risultato.
Funzioni Date e ora
Adesso
Questa funzione ci permette di sapere la data e l'ora di sistema corrente,posizionatevi in qualunque cella e scegliete la funzione,vedrete
comparire la data e l'ora corrente.
Anno
Stessa cosa ma serve a sapere l'anno,dovete inserire una data del tipo gg/ms/aa ed avrete il suo numero seriale(excel memorizza le date in
numeri seriali per farne anche delle differenze).
Data
Qui ottenete il numero in codice excel che corrisponde ad una data.
Data.valore
Questa funzione ci restituisce il numero seriale di una data che noi scriviamo in forma estesa,la sintassi =data.valore(anno;mese;giorno)
oppure inseritela dove vi viene richiesta se scegliete la funzione dal menu Inserisci,dovete inserirla del tipo "10/04/1975"tra virgolette,
mentre nell'altro caso seguite le indicazioni date.
Data.diff
Questa funzione utile quando vogliamo fare un calcolo sulle date memorizzate nelle celle,ricordate che excel memorizza le date come
numeri seriali,se volete sapere il numero seriale della vostra data di nascita usate la funzione data.valore che abbiamo spiegato,per
esempio nella cella a1 scrivete =data.valore("vostra data")e nella cella adiacente scrivete =data.valore("altra data")poi in una cella
qualsiasi scrivete =data.diff("data iniziale";"data finale";"metodo")non dimenticate le virgolette,il metodo consiste in cosa volete sapere se
la differenza fra giorni("g")anni("aa")o mesi("mm"),quindi la funzione ci permette di sapere la differenza fra date.
Matematiche e statistiche
Come prima funzione matematica possiamo usare la funzione Combinazione,si rivela molto utile quando vogliamo per esempio sapere le
combinazioni possibili con un certo insieme di numeri e presi secondo un certo ordine.Per esempio supponiamo di voler giocare tre
numeri al lotto sia come terno secco su una ruota ma anche come ambo sulla stessa ruota.Ora sappiamo che con tre numeri si pu giocare
solo un terno,ma vogliamo sapere quanti ambi si possono giocare,allora scegliamo la funzione e scriviamo nella prima casella il valore tre
file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%2...20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html (1 di 3)23/11/2007 16.37.22

file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%20-%20ITA]%20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html

che corrisponde ai numeri da giocare,poi sotto scriviamo due perch i numeri verranno presi a due a due,proprio per formare un ambo,
avrete come risultato 3.
INt
Se volete arrotondare un numero decimale ad un intero pi vicino per difetto usate questa funzione,per esempio scrivete in una cella
126.7859 poi in una cella usate la funzione Int e nella casella dove inserire il valore scegliete la cella che contiene il numero ed avrete 126.
In excel se volete elevare un numero ad una potenza potete scrivere =n^p cio =10^2 ossia 100,ma potete usare anche la funzione Potenza,
nella cella num scrivete la base e sotto inserite la potenza.Per calcolare la radice quadra vi basta scegliere la funzione Radq e scrivere il
numero di cui trovare la radice.Scrivete quattro numeri in una colonna uno sotto l'altro e lo stesso fate in una colonna adiacente,poi in una
cella scegliete la funzione Somma.diff.q,nella prima casella selezionate la prima colonna e nella seconda invece selezionate la seconda
colonna avrete cos la somma delle differenze fra le colonne elevate al quadrato.Se volete troncare delle cifre in un numero,per esempio
vogliamo troncare dalla terza cifra decimale in poi nel numero 856,122222222,quindi ottenere 856,122 allora usiamo la funzione tronca,e
scriviamo il numero nella prima casella,mentre sotto inseriamo quante cifre troncare,nel nostro caso 3.
Frequenza
Se volete sapere quante volte un valore si presenta in un intervallo di celle allora usate questa funzione,scrivete in una colonna una serie di
numeri ripetendone almeno uno,cio un numero fatelo comparire due volte,poi nella colonna accanto scrivete i numeri che volete
ricercare,per esempio scrivete in una cella proprio quello che avete ripetuto,poi scegliete la funzione frequenza e nella prima casella
selezionate i numeri che avete scritto nella prima colonna,mentre nella seconda cella selezionate i numeri della seconda colonna ed tutto.
Grande
Questa funzione statistica serve a rilevare il K-esimo valore pi grande di un insieme di dati,scrivete per esempio in una cella Reddito e
poi sotto inserite un insieme di redditi,possibilmente crescenti di un valore d'incremento pari a 1000,cio 1000,2000,3000 e cos via.Poi
dovete posizionarvi in una cella e scegliere la funzione Grande,adesso nella casella matrice dovete selezionare l'intervallo di numeri e
sotto in k inserite tre,cos vi verr resituito il terzo valore pi grande dell'insieme.
Max
Per sapere il valore massimo di un insieme di valori dovete selezionare la funzione max,e nella casella num inserite l'insieme di valori e vi
verr dato il pi grande.
Media
Supponiamo di voler sapere quanto sono gli stipendi pagati in media da una azienda,allora scriveteli in una colonna,poi scegliete la
funzione media,e nella casella num1 inserite l'intervallo di valori e vi sar data la media.
Media troncata
Supponiamo di voler praticare la media solo su una parte di un insieme,per esempio sul 50% di una serie di valori,in sostanza immaginate
una sequenza di valori 1,2,3,4,5,6......e vogliamo fare la media ma togliendo il 10% dei valori a sinistra e a destra della distribuzione,
quindi se abbiamo 10 valori facciamo la media su otto,perch togliamo uno a sinistra e a destra.Allora scegliamo la funzione,nella prima
casella inseriamo la serie di valori,poi sotto in Percento scegliamo la percentuale,per esempio scrivete 10% ed avrete la media.
Media geometrica
La media geometrica utile se vogliamo sapere in media la percentuale di variazione di un valore della distribuzione,per esempio
l'incremento del reddito negli ultimi tre anni.Allora scriviamo una serie di numeri in una colonna ad indicare i nostri redditi,poi scegliamo
la funzione,ed inseriamo nella casella num la serie di redditi.
Mediana
La mediana serve a calcolare il valore centrale di una distribuzione,scrivete una serie di numeri in una colonna,poi scegliete la funzione,ed
inserite la serie.
MOda
La moda strettamente legata alla frequenza,infatti mentre la frequenza ci indica quante volte un valore di una distribuzione si presenta,la
moda indica il valore che presenta la frequenza pi alta.Scegliete la funzione e poi inserite in num1 la prima serie,e in num2 la seconda
serie,ed avrete il risultato.
Db.Somma
Questa funzione utile se vogliamo fare la somma su un database,scrivete il database come segue

adesso in una cella qualunque eseguite il calcolo scegliendo la funzione,nella prima casella dovete selezionare l'intero elenco ma solo
questo intervallo A1:b11 come vedete in figura.Poi nella casella campo dovete scegliere la cella in base alla quale avverr il confronto,per
esempio la cella reddito,poi nei criteri selezionate l'intervallo G1:h3,cosi ci dar la somma dei redditi relativi al nome sds,dovrebbe essere
13000.Allo stesso modo potete usare la funzione db.prodotto,che vi d il prodotto e non la somma,mentre db.min vi d il min valore di un
elenco,poi avete max.Credo che queste siano le funzioni pi interessanti,in ogni caso ho pubblicato altri tutorial in precedenza che potete
file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%2...20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html (2 di 3)23/11/2007 16.37.22

file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%20-%20ITA]%20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html

trovare sul sito


Grazie per l'attenzione e auguri.
Per contatti e-mail:scrivimi

file:///M|/Manuali/Prodotti%20Office/Excel/[Ebook%2...20Guida%20Alle%20Funzioni%20Di%20Excel/funzioni.html (3 di 3)23/11/2007 16.37.22

BATTAGLIA NAVALE
Hai la passibilit di giocare a battaglia navale in aula informatica? Con questo laboratorio imparerai
a costruire un campo di battaglia su un foglio di Excel inserendo funzioni logiche e usando la
formattazione condizionale.
Apri Microsoft Excel e salva subito con nome, crea due fogli: Attacco e Difesa.
In ciascuno dei due fogli ridimensiona le colonne da A a J e allarga le righe in modo che le celle
siano quadrate. Per farlo usa il menu Formato / Colonne (Righe) / Larghezza e imposta valore che
ti sembra opportuno. Cambia i bordi e lo sfondo in modo che larea di gioco risulti nel foglio. Usa il
menu Formato / Celle e imposta un motivo colorato, un bordo visibile e un Carattere grassetto.

Userai due fogli.


Fai doppia clic e scrivi sul primo
Difesa sul secondo Attacco

Nel foglio Difesa predisponi le navi che indicherai con la lettera X. Devi metterti daccordo con
lavversario per un numero massimo di navi (nellesempio sono 15).

Battaglia navale - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

In una cella accanto al campo da gioco (es. L2) inserisci una formula per valutare quanto della tua
flotta ancora galleggia: =CONTA.SE(A1:J10;x).
Quando il conteggio scender a zero vorr dire che hai perso.

Dovrai ora inserire una formula che faccia comparire la scritta HAI PERSO quando in L2 c 0.
Puoi attribuire un nome alla cella L2, ad esempio PUNTI. Per farlo basta selezionare la cella L2 e
scrivere il nome che vuoi attribuirgli nella casella bianca in alto a sinistra.
Ora inserisci laltra formula nella cella sottostante (L3): =SE(PUNTI=0;HAI PERSO;)
Significa: Se sulla casella denominata PUNTI c il valore 0 compare la scritta HAI PERSO, se
invece nella casella non c lo 0 non vediamo niente.

Battaglia navale - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Per evidenziare le tue navi che sono state colpite usa la Formattazione condizionale.
Seleziona tutte le celle del campo di gioco, quindi vai su Formato / Formattazione condizionale,
vedrai comparire la relativa finestra. Nel terzo campo delle condizioni qui ho scelto il simbolo
punto. Fai clic sul pulsante Formato, dalla scheda Motivo scegli un colore (es. rosso).

Quando il tuo compagno di gioco


chiama una casella dove c una tua
nave dovrai inserire un puntino,
quella cella diventer rossa!

Puoi anche indicare i colpi effettuati


sul tuo campo falliti!
Nellesempio ho scelto il simbolo 0
(zero).

Battaglia navale - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Passa ora al foglio Attacco. Inizialmente il campo di gioco vuoto, via via si riempir delle tue
chiamate. Qui ho scelto il simbolo o.

Speriamo che qualche chiamata vada a colpire una nave nemica.


Ancora un volta con la formattazione condizionale farai in modo che il lobbiettivo colpito sia ben
visibile.
Nellesempio ho usato la lettera c per indicare la nave colpita. Per rendere pi evidente, la cella
con la lettera c diventer gialla. Per fare questo devi usare ancora la formattazione condizionale.

Battaglia navale - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Sempre nello stesso foglio Attacco in una cella accanto al campo da gioco (es. L2) inserisci l
formula per valutare dellandamento dei tuoi attacchi: =CONTA.SE(A1:J10;c).
Come per il foglio Difesa attribuisci un nome alla cella L2, nellesempio ho scelto il nome Colpite
Nella cella L3 inserisci ora la formula : =SE(Colpite=15;"HAI VINTO!";"").

Battaglia navale - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

COSTRUIRE UN CRUCIVERBA CON EXCEL


In questo laboratorio imparerai a costruire un simpatico cruciverba. Sfruttando le potenzialit di Excel
non ti limiterai a creare lo schema di caselle bianche e nere, ma vedrai come inserire dei commenti
contenenti le definizioni, e soprattutto come predisporre il controllo delle lettere inserite, per vedere se
sono giuste o meno.
Apri Microsoft Excel e inizia a lavorare su un documento vuoto, dopo averlo salvato, per esempio, con
il nome "Cruciverba.xls". Comincia a predisporre lo scherma del cruciverba: in particolare, occorre fare
in modo che le celle siano quadrate e non rettangolari.
Poni che il cruciverba abbia 10 righe e 10 colonne. Seleziona quindi tutte le celle comprese
nell'intervallo tra A1 e J10: basta premere il tasto SHIFT (MAIUSC) e trascinare il mouse fino all'ultima
cella in basso a destra.

Una volta selezionate le celle, vedrai come modificarne le dimensioni. Vai in Formato Colonna e, nel
menu che appare, fai clic su "Larghezza". Nella finestra successiva inserisci il valore 5. A questo punto
vai in Formato Riga Altezza e inserisci il valore 27. A questo punto, le celle selezionate sono di forma
quadrata.

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Sempre con le celle selezionate, ora vedrai come disegnare i bordi delle celle. Utilizzando la barra
degli strumenti Formattazione, seleziona l'icona che permette di disegnare i bordi, come mostrato
in figura. Nel menu a tendina che appare, scegli l'opzione "Tutti i bordi". Grazie poi all'icona "Bordo
casella spesso", puoi fare in modo che il perimetro del cruciverba sia evidenziato con un tratto pi
marcato.

Seleziona tutte come visto in


precedenza, quindi vai in Formato
Celle. Nella finestra "Formato celle",
spostati sulla scheda Allineamento e,
grazie ai menu a tendina, imposta sia
"Orizzontale", sia "Verticale"
sull'opzione "Al centro".
Prova a inserire una lettera in una delle
caselle, e verifica che sia esattamente al
centro dello spazio disponibile.

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

arrivato il momento di iniziare a compilare il cruciverba, vale a dire inserire le parole, lettera per
lettera, e i quadrati neri. Per questi sufficiente utilizzare il menu a tendina "Colore riempimento":
basta scegliere il colore nero, dopo aver selezionato le cella da annerire.

Una volta compilato tutto il cruciverba, occorre pensare alle definizioni. Farai in modo che,
selezionando una cella, apparir la definizione. Occorre quindi utilizzare lo strumento "Commenti".
Posizionati su un cella che contiene l'inizio di una parola, quindi vai in Inserisci Commento.

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Nella casella gialla che appare, inserisci la definizione. Puoi modificare il font, la grandezza, il colore
e le altre caratteristiche del commento, utilizzando la barra di formattazione di Excel. Nel caso in
cui la lettera scelta sia l'iniziale sia di una parola orizzontale, sia di una parola verticale, inserisci
entrambe le definizioni, come mostrato in figura. Fai clic in un'altra cella per memorizzare il commento.
Come puoi vedere, all'interno della cella con la definizione, apparir un triangolino rosso, in alto a
destra. Completa l'inserimento di tutte le definizioni.

Per modificare o eliminare, un commento gi inserito, fai clic con il tasto destro sulla cella che lo
contiene e, nel menu che appare, seleziona Modifica commento.
Occorre ora cancellare le
soluzioni.
Prima, per, copia il
cruciverba compilato in
un'altra zona del foglio di
lavoro.
Selezionalo interamente,
quindi vai in Modifica Copia.
Spostati in basso e seleziona,
per esempio, la cella A35. Vai
poi in Modifica Incolla.
In tal modo il nuovo
cruciverba impegner l'area
compresa tra A35 e J44.
Durante la copia, perderai la
formattazione della dimensione
delle celle, quindi ripristina i
valori visti in precedenza.

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Torna ora al primo cruciverba e cancella tutte le lettere all'interno delle celle, in modo che appaiano
solo celle bianche e celle nere, oltre ai triangoli rossi dei commenti. Per cancellare tutte le lettere velocemente, basta selezionare l'intero cruciverba e premere il tasto CANC.
Ora non resta che impostare il controllo delle lettere inserite, ovvero verificare se il giocatore ha scritto
la lettera giusta al posto giusto. In pratica, farai in modo che le lettere inserite in una cella del primo
cruciverba corrispondano a quelle presenti nella medesima posizione del cruciverba di controllo.
Posizionati sulla prima cella, e vai in Formato Formattazione condizionale. Nella finestra che appare,
lascia invariata la prima opzione "II valore della cella ". Nel secondo menu a tendina, scegli l'opzione
"Uguale a", e nella terza immetti il riferimento di cella del secondo cruciverba. Essendo A35, inserisci la
seguente stringa =A35, se fai clic sulla cella A35 excel trasforma in "=$A$35", togli quindi i simboli $.
Ora occorre stabilire cosa accade se la lettera immessa quella giusta: fai clic sul pulsante Formato.

Nella finestra che appare, imposta il formato che assumer l'eventuale risposta giusta. Per esempio, la
lettera potrebbe essere evidenziata con uno stile grassetto, e il colore rosso.

Prova a immettere nella cella un valore sbagliato, poi quello giusto: nel secondo caso, la lettera diverr
rossa, con stile grassetto.
Si tratta ora di copiare la formattazione condizionata anche su tutte le altre celle bianche (non nere)
del cruciverba.

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Schiaccia il pulsante rappresentato da un pennello sulla barra degli strumenti standard e seleziona
un piccolo gruppo di celle vicine ad A1 come in figura,

Continua allo stesso modo


copiando la formattazione
anche su tutte le altre celle
bianche.

Per evitare che il giocatore trovi la soluzione direttamente sul secondo cruciverba, bene rendere
invisibile il contenuto delle loro celle.
Seleziona tutto il secondo cruciverba, vai su Formato Celle scheda: Numero Personalizzato,
inserisci tre punti e virgola ;;; nel campo: Tipo. Fai clic su OK.
Il contenuto di tutte le celle diventer invisibile.

Buon divertimento!

cruciverba - prof. Enzo Mardegan - http://digilander.libero.it/enzomrd

Potrebbero piacerti anche