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.
    L’esempio 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").