Esempi di automazione con interfaccia utente 2

    
    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").