Esempio 20
La biblioteca desidera possedere un archivio che memorizzi le informazioni relative a Titolo, Autore e Casa Editrice di tutti i libri posseduti. Inoltre si vuole gestire l'inserimento, la cancellazione e la ricerca dei dati tramite un' interfaccia utente personalizzata.
Realizziamo un foglio Excel come descritto in figura. Inoltre creiamo una nuova UserForm con quattro pulsanti, quattro caselle di testo, una barra di scorrimento(ScrollBar) ed un pulsante di selezione(SpinButton).
Definiamo le proprietą degli oggetti appena creati come riportato in tabella:
Name
Caption
FrmLista
Gestione Libri
CmdInserisci
Inserisci
CmdCancella
Cancella
CmdCerca
Cerca X Titolo
CmdChiudi
Chiudi
TxtTitolo
 
TxtAutore
 
TxtEditore
 
SpnNum
 
ScrNum
 
TxtNum
 
Di seguito sono riportate le routine da inserire nel modulo di codice associato alla UserForm "FrmLista".
	Private Sub CmdCancella_Click()
	    Numriga = ActiveCell.Row
	    Rows(Numriga & ":" & Numriga).Select
	    Selection.Delete Shift:=xlUp
	    ScrNum.Max = ActiveSheet.UsedRange.Rows.Count
	End Sub	
	
	Private Sub CmdCerca_Click()
	    On Error GoTo 10
	    Cells.Find(what:=TxtTitolo.Text, After:=ActiveCell, _ 
	    LookAt:=xlPart, SearchOrder:=xlByRows, _ 
	    searchdirection:=xlNext).Activate
	    x = ActiveCell.Column
	    TxtTitolo.Text = ActiveCell.Text
	    TxtEditore.Text = ActiveCell.Offset(columnoffset:=x).Text
	    TxtAutore.Text = ActiveCell.Offset(columnoffset:=x + 1).Text
	    ValScr = ActiveCell.Row
	    ScrNum.Value = ValScr
	    TxtNum.Text = ValScr
	    Exit Sub
	10:     MsgBox "Record non trovato"
	End Sub
	
	Private Sub CmdEsci_Click()
	    Unload Me
	End Sub
	
	Private Sub CmdInserisci_Click()
	    ValScr = ActiveSheet.UsedRange.Rows.Count + 1
	    TmpTitolo = TxtTitolo.Text
	    TmpEditore = TxtEditore.Text
	    TmpAutore = TxtAutore.Text
	    ScrNum.Max = ValScr
	    ScrNum.Value = ValScr
	    Range("A" & ValScr) = TmpTitolo
	    Range("B" & ValScr) = TmpEditore
	    Range("C" & ValScr) = TmpAutore
	    TxtNum.Text = ValScr
	End Sub
	
	Private Sub ScrNum_Change()
	    ValScr = ScrNum.Value
	    Range("A" & ValScr & ":" & "C" & ValScr).Select
	    TxtTitolo.Text = Range("A" & ValScr)
	    TxtEditore.Text = Range("B" & ValScr)
	    TxtAutore.Text = Range("C" & ValScr)
	    TxtNum.Text = ValScr
	End Sub
	
	Private Sub SpnNum_SpinDown()
	    ScrNum.Value = 2
	    ScrNum_Change
	End Sub
	
	Private Sub SpnNum_SpinUp()
	    ValScr = ActiveSheet.UsedRange.Rows.Count
	    ScrNum.Max = ValScr
	    ScrNum.Value = ValScr
	    ScrNum_Change
	End Sub
	
	Private Sub UserForm_Activate()
	    ScrNum.Max = ActiveSheet.UsedRange.Rows.Count
	    ScrNum.Min = 2
	End Sub
	
Nel foglio di lavoro inseriamo un pulsante che attivi la Userform "FrmLista" (vedi paragrafo "Generatore di Macro").

Cognolato Studio © 2004