Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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
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
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
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
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.
xlPasteSpecialOperationNone
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
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
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
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
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
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.
http://www.vbitalia.it/
Pagina 19
15/02/2003
http://www.vbitalia.it/
Pagina 20
15/02/2003
dove naturalmente quello visualizzato Foglio2 e le celle incollate vanno ben oltre l'immagine che stata
tagliata per questioni di spazio.
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
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
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
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
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
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
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
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.
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:
Pagina 34
15/02/2003
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
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
VbOLESizeStretch
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
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
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
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:
=
=
=
=
=
=
=
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
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.
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
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
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
Informazioni preliminari
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.
10
11
12
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.
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.
15
NOTA: importante porre molta attenzione nelle azioni che registreremo, poich
anche la pi piccola variazione pu creare ripercussioni assolutamente
imprevedibili.
16
Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e
cliccare sulla voce Registra nuova macro .
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.
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
18
19
20
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.
22
interrompere
la
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.
24
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.
26
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.
Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro
quartiere generale Personal.xls.
28
DESCRIZIONE
O altra unit disco
O similare
DESCRIZIONE
O altra unit disco
Il nome dellutente
29
30
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.
31
32
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.
33
34
35
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.
36
37
38
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.
39
Nota: Nei controlli ove si imposta un valore massimo non possibile superare 30.000.
40
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.
Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione
Euroconvert.
41
Moneta
Franco
Lira
Fiorino
Marco
Peseta
CodiceISO
frf
itl
nlg
dem
esp
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.
Intervallo dati
Riga
=INDICE(Moneta;G5)
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.
43
Calcolare lEuro
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.
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.
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 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!
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.
47
48
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.
49
50
Ancora pi evidente la presenza della finestra del Codice con del codice
allinterno.
51
52
Seleziono le celle da A3 a F3
La selezione deve essere grassettata? Vero.
Seleziono la cella A2 per deselezionare.
53
ActiveCell.Offset(2, 0).
("A1:F1").Select
Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).
Range("A1").Select
54
Con listruzione
Sheets(Foglio2).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
55
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.
56
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.
57
sul
58
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
6 significa giallo
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
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
61
OPERATORI di CONFRONTO
MAGGIORE
MINORE
UGUALE
>
<
=
DIVERSO
MAGGIORE O UGUALE
MINORE O UGUALE
<>
>=
<=
62
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.
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
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.
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
Do Until Loop
Sub Colorare()
Do Until ActiveCell = ""
65
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 .
66
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
Logico
2 byte
True o False
Data
4 byte
Object
Oggetto
4 byte
Variant
Universale 16 b. + 1 b. x carat.
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
69
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#
70
71
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])
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
Nota: Il contenuto di questa pagina tratto dalla guida del VBA di Excel.
73
74
75
Nota: La variabile Contenitore stata dichiarata come tipo Variant, non sapendo a
priori che tipo di dati potrebbero essere digitati.
76
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
77
Nellimmagine visibile il
tentativo fallito, di immettere del
testo.
Significato
Una formula
Un numero
16
64
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)
78
79
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
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.
82
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.
Fermare la registrazione.
Attivare lEditor di VB.
84
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.
85
Find
lookin:=xlValues
Sub TrovaComune()
Cells.Find("almese").Activate
End Sub
86
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
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
88
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
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
90
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.
92
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.
94
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.
96
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.
98
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.
99
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.
101
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.
102
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.
103
104
105
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
107
"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.
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
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.
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
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
111
112
If Sheets(ordfog).Name >
Sheets(ordfog + 1).Name Then
Sheets(ordfog).Move after :
=Sheets(ordfog + 1)
End If
Next ordfog
Next ordina
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.
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.
114
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.
115
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%)
117
Function CompensoNetto(Lordo,
Ritenuta, CTR)
CompensoNetto =
Round(CompensoNetto, 0)
End Function
118
119
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
120
Sub Trasporta()
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste
End Sub
121
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:
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
124
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
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
126
127
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.
128
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".
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.
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.
131
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
133
134
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
136
bbb = GetSystemMetrics(risy)
Application.WindowState =
xlMaximized
Application.Left = 78
Application.Top = 63
Application.Width = 605
Application.Height = 437
Imposta un MsgBox.
Else
Altrimenti
Imposta un MsgBox
137
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.
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.
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
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.
Sommario
1.
AVVIO DI EXCEL..........................................................................................................4
1.1
1.3
1.4
1.5
2.
UN PICCOLO ASSAGGIO............................................................................................4
1.2
PRIMA INTERAZIONE................................................................................................. 14
2.1
UN PASSO AVANTI................................................................................................. 17
2.3
3.
2.2
QUALCOSA DI SOLIDO.............................................................................................. 26
3.1
3.2
3.3
3.5
3.6
3.7
3.8
3.9
3.10
4.
LE ALTRE FORMULE............................................................................................... 27
3.4
ORGANIZZIAMOCI MEGLIO........................................................................................ 35
4.1
4.2
5.
4.3
5.2
5.3
5.4
5.6
6.
5.5
FUNZIONI................................................................................................................... 51
6.1
6.2
6.3
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.
6.10
6.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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
=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.
=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.
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.
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.
=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.
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)
Viaggio (B2)
Dipendente (B3)
Data (B5:F5)
Totali (G5:G17)
Biglietti A (B6:F6)
Auto/Km (B7:F7)
Auto/Rimborso (B8:F8)
Biglietti R (B9:F9)
Taxi (B10:F10)
Pedaggi (B11:F11)
Pedaggi autostradali
Albergo (B12:F12)
Pasti (B13:F13)
Varie (B14:F14)
Rimborso Richiesto
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.
(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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Descrizione
Assi
Dato numerico
Serie di dati
Legenda
Indicatore
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.
Formula di serie
Testo
Segno
graduazione
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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).
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.
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
MIN
MAX
MEDIA
CERCA.VERT e CERCA.ORIZZ
RATA
ADESSO
OGGI
CONCATENA
SINISTRA e DESTRA
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.
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.
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.
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.
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.
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
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.
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.
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.
1.1
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.
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.
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.
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
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.
Campo
Descrizione
Linea
Prodotto
Regione
Data
Unit
Vendite
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.
Pulsante
Effetto
Annulla
Indietro
Avanti
Fine
Opzione
Tipo di dati
Elenco o database
Microsoft Excel
Origine dati esterna File o tabella creati in altri programmi, quali Paradox, dBase,
Access o SQL Server.
Intervalli di
consolidamento
multipli
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).
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.
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.
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.
Figura 8 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile determinare la disposizione della tabella
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.
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
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.
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
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
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
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.
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
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
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.
Figura 11 - La stessa tabella pivot dopo avere aggiunto il campo pagina Prodotto Beta dall'elenco
1.9
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.
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.
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.
Cella
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.
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.
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.
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.
2.1
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
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.
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
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
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.
2.2
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.
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
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
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.
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
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.
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.
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.
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.
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
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
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
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.
2.2.8
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.
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.
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.
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
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
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
Somma
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.
Conta
Media
Max
Min
Prodotto
Conta numeri
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
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.
Tipo di calcolo
Discordanza da
% di
% discordanza da
Esegui totale in
% di riga
% di colonna
% dei totale
Indice
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.
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
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.
Figura 35 - La finestra di dialogo Inserisci campi calcolati permette di aggiungere campi personalizzati alla
propria tabella 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
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
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.
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.
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
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.
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.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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
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
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
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.
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
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
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.
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.
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.
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
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.
Min
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.
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.
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
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.
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.
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.
Opzione
Effetto
Tempo massimo
Iterazioni
Approssimazione
Tolleranza
Convergenza
Stima
Derivate
Cerca
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.
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.
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.
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
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.
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
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
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.
6.1
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
nella casella Oggetti grafico sulla barra degli strumenti Grafico, fare clic sulla freccia
e selezionare il nome dell'oggetto nellelenco;
2. Per aprire la finestra di dialogo Formato relativa agli elementi selezionati potete:
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).
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.
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
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
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
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
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.
6.5.2
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
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
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.
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.
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.
1.1
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.
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.
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.
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
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.
Campo
Descrizione
Linea
Prodotto
Regione
Data
Unit
Vendite
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.
Pulsante
Effetto
Annulla
Indietro
Avanti
Fine
Opzione
Tipo di dati
Elenco o database
Microsoft Excel
Origine dati esterna File o tabella creati in altri programmi, quali Paradox, dBase,
Access o SQL Server.
Intervalli di
consolidamento
multipli
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).
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.
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.
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.
Figura 8 - La finestra di dialogo layout della procedura guidata Autocomposizione Tabella pivot, da cui
possibile determinare la disposizione della tabella
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.
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
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.
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
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
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
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.
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
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
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.
Figura 11 - La stessa tabella pivot dopo avere aggiunto il campo pagina Prodotto Beta dall'elenco
1.9
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.
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.
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.
Cella
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.
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.
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.
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.
2.1
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
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.
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
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
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.
2.2
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.
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
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
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.
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
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.
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.
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.
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.
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
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
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
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.
2.2.8
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.
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.
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.
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
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
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
Somma
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.
Conta
Media
Max
Min
Prodotto
Conta numeri
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
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.
Tipo di calcolo
Discordanza da
% di
% discordanza da
Esegui totale in
% di riga
% di colonna
% dei totale
Indice
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.
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
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.
Figura 35 - La finestra di dialogo Inserisci campi calcolati permette di aggiungere campi personalizzati alla
propria tabella 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
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
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.
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.
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
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.
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.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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
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
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
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.
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
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
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.
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.
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.
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
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.
Min
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.
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.
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
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.
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.
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.
Opzione
Effetto
Tempo massimo
Iterazioni
Approssimazione
Tolleranza
Convergenza
Stima
Derivate
Cerca
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.
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.
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.
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
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.
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
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
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.
6.1
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
nella casella Oggetti grafico sulla barra degli strumenti Grafico, fare clic sulla freccia
e selezionare il nome dell'oggetto nellelenco;
2. Per aprire la finestra di dialogo Formato relativa agli elementi selezionati potete:
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).
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.
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
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
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
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
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.
6.5.2
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
1.6 RAGGRUPPAMENTO
DEI
FOGLI
PER
LA
MODIFICA,
LA
FORMATTAZIONE
LA
RIORGANIZZAZIONE
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.
=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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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).
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Rettangolo
Ovale
Casella di testo
Inserisci WordArt
Inserisci ClipArt
Colore riempimento
selezionato.
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.
Colore carattere
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
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.
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.
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.
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.
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
SOMMA.SE
SE
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.
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.
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.
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
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:
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
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
Sub prova()
Dim Dato As Single
Dim Area As Single
'introduzione dati
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
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
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
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.
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
corso di Excel
pag. 10
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"
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"
corso di Excel
pag. 12
'converte le unit
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.
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
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
corso di Excel
pag. 17
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.
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
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.
corso di Excel
pag. 23
corso di Excel
pag. 24
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.
Un secondo archivio necessario quello con i dati dei clienti. Utilizzeremo quindi un foglio di lavoro con il
nome clienti.
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.
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.
corso di Excel
pag. 28
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))
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.
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
corso di Excel
pag. 36
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
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)
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
Valore
blu
0
255
0
255
0
255
0
255
Viaggio attraverso la
conoscenza del pi diffuso
linguaggio di creazione macro
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
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
Informazioni preliminari
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.
10
11
12
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.
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.
15
NOTA: importante porre molta attenzione nelle azioni che registreremo, poich
anche la pi piccola variazione pu creare ripercussioni assolutamente
imprevedibili.
16
Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e
cliccare sulla voce Registra nuova macro .
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.
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
18
19
20
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.
22
interrompere
la
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.
24
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.
26
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.
Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro
quartiere generale Personal.xls.
28
DESCRIZIONE
O altra unit disco
O similare
DESCRIZIONE
O altra unit disco
Il nome dellutente
29
30
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.
31
32
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.
33
34
35
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.
36
37
38
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.
39
Nota: Nei controlli ove si imposta un valore massimo non possibile superare 30.000.
40
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.
Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione
Euroconvert.
41
Moneta
Franco
Lira
Fiorino
Marco
Peseta
CodiceISO
frf
itl
nlg
dem
esp
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.
Intervallo dati
Riga
=INDICE(Moneta;G5)
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.
43
Calcolare lEuro
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.
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.
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 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!
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.
47
48
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.
49
50
Ancora pi evidente la presenza della finestra del Codice con del codice
allinterno.
51
52
Seleziono le celle da A3 a F3
La selezione deve essere grassettata? Vero.
Seleziono la cella A2 per deselezionare.
53
ActiveCell.Offset(2, 0).
("A1:F1").Select
Selection.Font.Bold = True
ActiveCell.Offset(-1, 0).
Range("A1").Select
54
Con listruzione
Sheets(Foglio2).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
55
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.
56
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.
57
sul
58
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
6 significa giallo
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
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
61
OPERATORI di CONFRONTO
MAGGIORE
MINORE
UGUALE
>
<
=
DIVERSO
MAGGIORE O UGUALE
MINORE O UGUALE
<>
>=
<=
62
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.
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
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.
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
Do Until Loop
Sub Colorare()
Do Until ActiveCell = ""
65
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 .
66
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
Logico
2 byte
True o False
Data
4 byte
Object
Oggetto
4 byte
Variant
Universale 16 b. + 1 b. x carat.
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
69
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#
70
71
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])
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
Nota: Il contenuto di questa pagina tratto dalla guida del VBA di Excel.
73
74
75
Nota: La variabile Contenitore stata dichiarata come tipo Variant, non sapendo a
priori che tipo di dati potrebbero essere digitati.
76
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
77
Nellimmagine visibile il
tentativo fallito, di immettere del
testo.
Significato
Una formula
Un numero
16
64
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)
78
79
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
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.
82
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.
Fermare la registrazione.
Attivare lEditor di VB.
84
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.
85
Find
lookin:=xlValues
Sub TrovaComune()
Cells.Find("almese").Activate
End Sub
86
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
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
88
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
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
90
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.
92
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.
94
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.
96
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.
98
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.
99
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.
101
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.
102
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.
103
104
105
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
107
"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.
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
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.
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
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
111
112
If Sheets(ordfog).Name >
Sheets(ordfog + 1).Name Then
Sheets(ordfog).Move after :
=Sheets(ordfog + 1)
End If
Next ordfog
Next ordina
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.
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.
114
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.
115
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%)
117
Function CompensoNetto(Lordo,
Ritenuta, CTR)
CompensoNetto =
Round(CompensoNetto, 0)
End Function
118
119
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
120
Sub Trasporta()
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Range("A5").Select
ActiveSheet.Paste
End Sub
121
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:
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
124
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
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
126
127
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.
128
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".
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.
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.
131
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
133
134
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
136
bbb = GetSystemMetrics(risy)
Application.WindowState =
xlMaximized
Application.Left = 78
Application.Top = 63
Application.Width = 605
Application.Height = 437
Imposta un MsgBox.
Else
Altrimenti
Imposta un MsgBox
137
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.
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.
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
EnricoCannoni-Manuali.NetTuttiidirittiriservati
Sommario
Sommario......................................................................................................................................4
Presentazione................................................................................................................................9
Informazioni preliminari.............................................................................................................10
Euroconvert..............................................................................................................................41
Predisporre la casella combinata.................................................................................................42
La funzione Indice.....................................................................................................................43
Calcolare lEuro........................................................................................................................44
Vincolare la quantit..................................................................................................................44
EnricoCannoni-Manuali.NetTuttiidirittiriservati
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
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
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
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
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
Descrizione
Debug
SaltaErrore
CTRL+C
Nota: Non fate
EnricoCannoni-Manuali.NetTuttiidirittiriservati
10
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
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
Usando InputBox e MsgBox creare una procedura che agisce secondo le decisioni prese
dallutente.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
12
Esaminare una procedura durante lesecuzione passo passo per verificarne il funzionamento.
LEZIONEXXIForms
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
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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
16
Iniziamo a registrare
Dal menu Strumenti scegliere Macro per espandere una ulteriore tendina e cliccare sulla
voce Registra nuova 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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
18
EnricoCannoni-Manuali.NetTuttiidirittiriservati
19
con
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
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.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
24
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
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
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.
di
Nota: I macro virus che affliggano Excel hanno la consuetudine di eleggere a loro quartiere generale
Personal.xls.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
DESCRIZIONE
O altra unit disco
O similare
28
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
Nota: E interessante osservare che la macro Standard a differenza delle altre preceduta da
EnricoCannoni-Manuali.NetTuttiidirittiriservati
30
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.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
31
Apparir una nuova barra degli strumenti, priva di ogni pulsante che, salvo
diversa scelta, si chiamer Personalizzata1.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
32
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.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
34
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
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.
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
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.
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.
Fare clic in corrispondenza della cella C9, sar automaticamente generata una
Casella di controllo.
Casella di selezione
il
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
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.
Il risultato 0,52
Nota: Nella guida di Excel troverete tutti i ragguagli relativi alla funzione Euroconvert.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
41
Francia
Italia
Paesi Bassi
Germania
Spagna
Moneta
Franco
Lira
Fiorino
Marco
Peseta
CodiceISO
frf
itl
nlg
dem
esp
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
Intervallo dati
Riga
=INDICE(Moneta;G5)
Nota: La sintassi della funzione Indice ben pi articolata di quella rappresentata nei paragrafi precedenti,
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
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.
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
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
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
le
EnricoCannoni-Manuali.NetTuttiidirittiriservati
51
tipo
Nota: LEditor di Visual Basic sicuramente ben pi complesso di quello che pu apparire dalla nostra
EnricoCannoni-Manuali.NetTuttiidirittiriservati
52
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.
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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
55
Con listruzione
Sheets(Foglio2).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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
56
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
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.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
58
Interrompere la registrazione
Interrompi registrazione.
cliccando
EnricoCannoni-Manuali.NetTuttiidirittiriservati
sul
pulsante
59
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
6 significa 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
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 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
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
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
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
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 = ""
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
67
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.
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
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
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
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#
EnricoCannoni-Manuali.NetTuttiidirittiriservati
71
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"
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.
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.
EnricoCannoni-Manuali.NetTuttiidirittiriservati
74
EnricoCannoni-Manuali.NetTuttiidirittiriservati
75
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
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
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
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.
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
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
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
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
su
Nota: I nomi, dei moduli menzionati potrebbero non corrispondere esattamente a quelli creati sul vostro PC.
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
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
lookin:=xlValues
EnricoCannoni-Manuali.NetTuttiidirittiriservati
86
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
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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
88
EnricoCannoni-Manuali.NetTuttiidirittiriservati
la
89
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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
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.
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
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
95
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
suo
97
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.
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
99
Dialogo
che
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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%)
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
CompensoNetto = Round(CompensoNetto, 0)
End Function
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
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.
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
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 & _
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
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
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
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.
ActiveWorkbook.Save
ActiveWorkbook.Saved = True
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
Application.ScreenUpdating = False
Workbooks.Open FileName:="C:\Documenti\Comuni.xls"
EnricoCannoni-Manuali.NetTuttiidirittiriservati
126
E importante in chiusura, ripristinare gli elementi di Excel che sono stati modificati o eliminati
in fase di apertura.
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
EnricoCannoni-Manuali.NetTuttiidirittiriservati
127
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
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
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
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
)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
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)
,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
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.
F
topolino
G
archimede
/D IXQ]LRQ
,1',5(77
LJUDILFL
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.
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.
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.
3
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
4
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
Barra della
Formula
Casella di
scorrimento
Barra di
scorrimento
verticale
5
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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;
6
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
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
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
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
Immissione di Numeri
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
#########
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
Testo
Barra di Scorriment o
Vertical e
Barra di Scorrimento
Orizzontal e
Foglio Att ivo
Schede
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
12
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
Cartella di destinazione
13
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
14
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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:
16
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
17
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
#NUM!
#RIF!
#VALORE!
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
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.
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
Eliminazione di celle
Selezionate le celle che si desidera eliminare. Ad esempio da A1 a D5
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.
20
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
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.
21
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
Incolla
22
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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)
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
24
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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.
26
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
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
Aumentare il numero di
decimali
del
formato
numerico
Ridurre il numero di decimali
del formato numerico
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
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
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
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
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
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.
Lezioni di Excel
3.2 Stampa
31
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
3.2 Stampa
32
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
3.2 Stampa
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
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
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
37
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
38
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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).
39
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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.
41
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
42
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
Disegno
Pulsanti Rettangolo,
Ellisse Arco e
Disegno a mano
libera Pieno
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
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
44
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
46
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
47
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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.
49
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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.
50
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
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
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
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
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
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
F11
ALT+F1oF12
+MAIUSC+S
MAIUSC+F12
+S
+1
CTRL+F12
+O
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
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
Avvio
Per avviare Microsoft Excel:
Modalit Windows
Modalit Macintosh
4
4
4
4
Comando Nuovo
Aspetto dello Schermo
Per attivare unaltra cella:
Per scorrere il foglio di lavoro:
5
5
6
6
6
6
Uscita
Per Uscire da Microsoft Excel:
7
7
Gestione di file
Trova File
7
8
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
17
18
19
19
58
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
Lezioni di Excel
Appendice: Strumenti
19
Eliminazione di celle
Cancellazione di celle
Annullare gli errori
20
20
21
21
21
21
22
22
23
23
23
24
24
26
3.2. STAMPA.
26
26
26
27
27
28
28
29
29
30
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
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
44
59
a cura di Massimilano Casolino ( casolinom@tiscalinet.it ) e Daniele D'Andreti (gmsgfx@mac.com)
44
44
Lezioni di Excel
Appendice: Strumenti
46
Riempimento Automatico.
46
46
APPENDICI
48
49
50
52
52
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)
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.
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.
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.
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.
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.
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.
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
Versione 1
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
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
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
Versione 1
20 aprile 2002
Versione 1
23 aprile 2002
Versione 1
10
20 aprile 2002
Versione 1
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
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
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.
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).
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.
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).
Passa ora al foglio Attacco. Inizialmente il campo di gioco vuoto, via via si riempir delle tue
chiamate. Qui ho scelto il simbolo o.
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!";"").
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.
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.
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.
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.
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.
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,
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!