Esempi di sviluppo automazioni 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").

Cognolato Studio © 2004