Esempi di automazione con interfaccia utente
Esempio 18 |
|
Una Biblioteca vuole catalogare tutti i libri in esposizione ed eseguire alcune
statistiche sui libri con lo stesso editore, categoria e numero copie possedute.
|
|
Lesempio filtra i record del foglio per casa editrice, categoria , copie possedute o tutti e tre i
campi contemporaneamente. Al termine della ricerca visualizza solo le righe che soddisfano la condizione.
|
|
Realizziamo un foglio Excel come rappresentato in figura. Inoltre creiamo una UserForm con sei
pulsanti e tre caselle di testo.
|
|
 |
|
Definiamo le proprietà degli oggetti appena creati come riportato in tabella: |
|
|
Name |
Caption |
FrmCerca |
Ricerca Articoli |
CmdEditore |
Editore |
CmdCategoria |
Categoria |
CmdQuantita |
Quantità |
TxtEditore |
|
TxtCategoria |
|
TxtQuantita |
|
CmdCerca |
Cerca |
CmdRipristina |
Ripristina |
CmdChiudi |
Chiudi |
|
|
Di seguito sono riportate le routine da inserire nel modulo di codice associato
alla UserForm "FrmCerca".
|
|
Private Sub CmdCerca_Click()
CmdEditore_Click
CmdCategoria_Click
CmdQuantita_Click
End Sub
|
Private Sub CmdChiudi_Click()
FrmCerca.Hide
End Sub
|
Private Sub CmdEditore_Click()
If TxtEditore.Text = "" Then
MsgBox "Inserire dati per la ricerca!"
Exit Sub
End If
ActiveSheet.UsedRange.Select
riga = Worksheets(1).UsedRange.Rows.Count
For indi = 2 To riga
If Range("B" & indi) <> TxtEditore.Text Then
Range("B" & indi).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub
|
Private Sub CmdCategoria_Click()
If TxtCategoria.Text = "" Then
MsgBox "Inserire dati per la ricerca!"
Exit Sub
End If
ActiveSheet.UsedRange.Select
riga = Worksheets(1).UsedRange.Rows.Count
For indi = 2 To riga
If Range("C" & indi) <> TxtCategoria.Text Then
Range("C" & indi).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub
|
Private Sub CmdQuantita_Click()
If TxtQuantita.Text = "" Then
MsgBox "Inserire dati per la ricerca!"
Exit Sub
End If
ActiveSheet.UsedRange.Select
riga = Worksheets(1).UsedRange.Rows.Count
For indi = 2 To riga
If Range("D" & indi) <> TxtQuantita.Text Then
Range("D" & indi).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub
|
Private Sub CmdRipristina_Click()
ActiveSheet.UsedRange.Select
Selection.EntireRow.Hidden = False
End Sub
|
|
Nel foglio di lavoro inseriamo un pulsante che attivi
la Userform "FrmCerca" (vedi paragrafo "Generatore di Macro").
|
|
|