fbpx
.st0{fill:#FFFFFF;}

Excel Esperto, Macro e VBA

Maschere Excel: UserForm e pulsanti

 Febbraio 14, 2020

By  Damiano Causale

  • Home
  • Maschere Excel: UserForm e pulsanti

In questo articolo voglio mostrarti come creare maschere Excel per l’immissione dati. Scopri come creare maschera di interfaccia Excel.

Per semplificare l’inserimento dei dati in una cartella di lavoro da parte degli utenti, è possibile creare un form inserimento dati Excel ovvero una maschera di interfaccia (la cosiddetta UserForm in inglese).

Utilizzerò un semplice esempio per spiegarti il funzionamento di una maschera di input in Excel.

Di cosa abbiamo bisogno?

Per creare una UserForm è necessario conoscere il linguaggio VBA. Ma non ti preoccupare, commenterò passo dopo passo ciascun passaggio in modo da renderti agevole la comprensione del linguaggio utilizzato.

La versione di Excel utilizzata per la creazione della UserForm è la 2019. Potrai eseguire gli stessi passaggi anche se possiedi una versione differente.

È importante ricordare di salvare il file come Cartella di lavoro con attivazione macro di Excel. Nel caso contrario, rischi che tutto il tuo lavoro vada perso.

Creare maschere Excel: preparare il foglio di lavoro

Immaginiamo di voler inserire dei dati all’interno di un foglio di lavoro attraverso una maschera Excel.

Iniziamo a predisporre il nostro foglio di lavoro.

Inseriamo nell’intervallo di celle A1:D1, le seguenti intestazioni: Cognome, Nome, Indirizzo, Città. Così come mostrato nella seguente immagine.

maschere excel | maschera inserimento dati excel

Come creare una maschera inserimento dati Excel

Per creare una maschera in Excel è necessario utilizzare l’Editor VB.

Innanzitutto, apriamo l’Editor.

Per aprire l’Editor di Visual Basic in modo rapido puoi utilizzare la seguente combinazione di tasti:

Aprire editor VB | Come creare una maschera inserimento dati Excel

Questa è la scorciatoia che utilizzo più spesso.

In alternativa, porta il puntatore del mouse sull’etichetta di uno dei qualsiasi fogli di lavoro presenti all’interno del file di Excel e premi il tasto destro del mouse. Successivamente fai un clic sulla voce Visualizza codice presente nel menu contestuale.

Aprire editor VB | Come creare una maschera inserimento dati Excel

Ora, fai un clic sul menu Inserisci presente nella barra dei menu e seleziona la voce UserForm.

Userform esempi excel | maschere excel | Come creare una maschera inserimento dati Excel

Viene visualizzata una UserForm vuota. Dovresti notare anche la presenza della Casella degli strumenti.

Userform esempi excel | maschere excel | Come creare una maschera inserimento dati Excel

Qualora questa non fosse visibile, fai un clic sul menu Visualizza e successivamente sulla voce Casella degli strumenti.

maschere excel | casella degli strumenti

Maschere Excel: inserire pulsanti nella UserForm

Dopo aver inserito una UserForm vuota, aggiungiamo le caselle di testo, le etichette e i pulsanti.

Prima di procedere, qualora lo desiderassi, potrai modificare il nome assegnato di default alla tua UserForm.

Per far questo, fai un clic sulla UserForm per selezionarla e poi apri la finestra Proprietà (in alternativa premi il tasto funzione F4).

All’interno della finestra Proprietà, fai doppio clic su (Name), digita il nome che preferisci e premi il tasto Invio (nell’esempio ho inserito il nome MascheraExcel).

Maschere Excel | inserire pulsanti nella UserForm

Noterai che il nuovo nome apparirà nell’area Gestione progetti, ma la UserForm mostra ancora il nome UserForm1 nella barra del titolo. Per modificare questo nome fai doppio clic sulla voce Caption presente nella finestra Proprietà. Infine, premi il tasto Invio. A questo punto nella barra del titolo sarà presente il nuovo nome.

Ora procediamo con l’aggiunta delle caselle di testo, delle etichette e dei comandi.

Questi oggetti sono chiamati controlli.

Inserire le caselle di testo nelle maschere Excel

Per prima cosa andiamo ad aggiungere le caselle di testo.

Inserire le caselle di testo nelle maschere Excel

Le caselle di testo consento agli utenti di inserire i dati. Esse vengono identificate con il nome TextBox seguito da un numero.

Inserire le etichette nelle maschere Excel

A fianco delle caselle di testo aggiungiamo le etichette.

Inserire le etichette nelle maschere Excel

Lo scopo delle etichette è descrivere ciò che gli utenti devono inserire nelle caselle di testo. Per questo motivo vengono aggiunte accanto ad esse.

Le etichette vengono identificate con il nome Label seguito da un numero.

Selezioniamo la prima etichetta: Label1. Facciamo doppio clic sulla proprietà Caption presente nella finestra Proprietà. Digitiamo il nome Cognome e premiamo il tasto Invio.

Inserire le etichette nelle maschere Excel

Procediamo allo stesso modo per le altre etichette aggiungendo Nome, Indirizzo, Città.

Userform esempi excel | Inserire le etichette nelle maschere Excel

Come allineare i controlli

Se lo desideri, puoi ridimensionare sia le etichette che le caselle di testo per adattarle al testo.

Inoltre, qualora i controlli non fossero allineati, potrai utilizzare gli appositi comandi per sistemarli.

Fai clic sulla prima casella di testo e tenendo premuto il tasto CTRL fai clic sulle caselle di testo rimanenti.

Dal menu Formato fai clic su Allinea e seleziona la voce A sinistra.

Userform esempi excel | maschere excel | Come allineare i controlli

Successivamente, sempre dal menu Formato fai clic su Spaziatura verticale e seleziona la voce Rendi uguale.

Userform esempi excel | maschere excel | come allineare i controlli

Ripeti la stessa procedura anche per le etichette.

Maschere Excel: inserire i pulsanti nella UserForm

Ora vediamo come aggiungere i pulsanti. Lo scopo dei pulsanti è di consentire agli utenti di eseguire delle azioni.

Nella nostra UserForm inseriremo due pulsanti: un pulsante per inserire i dati e un pulsante per rimuovere il contenuto delle caselle di testo.

Maschere Excel | inserire i pulsanti nella UserForm

I pulsanti vengono identificati con il nome CommandButton seguito da un numero.

Per inserire un pulsante, fare clic sul pulsante CommandButton nella Casella degli strumenti.

Se desideri inserire un pulsante di dimensioni standard, trascina il pulsante dalla Casella degli strumenti verso la tua UserForm.

Con il CommandButton1 selezionato, fai doppio clic sulla proprietà Caption presente nella finestra Proprietà, digita Inserisci e premi il tasto Invio.

Ripeti gli stessi passaggi per aggiungere un nuovo CommandButton che conterrà la scritta Cancella.

Il risultato sarà simile alla seguente immagine.

Maschere Excel | inserire i pulsanti nella UserForm

Aggiungere il codice VBA ai pulsanti

Arriviamo ora alla parte cruciale: l’inserimento del codice VBA.

Per fare in modo che i pulsanti eseguano un’azione, occorre specificare il tipo di comando da eseguire ogni volta che si fa un clic.

Partiamo dal pulsante Inserisci.

Seleziona il pulsante Inserisci, premi il tasto destro del mouse e seleziona la voce Visualizza codice.

In alternativa, puoi fare doppio clic direttamente sul pulsante per visualizzare la schermata per inserire il codice.

Il risultato sarà il seguente.

Userform esempi excel | maschere excel | Aggiungere il codice VBA ai pulsanti

A questo punto, se hai letto il mio articolo relativo alla scrittura delle macro, sai che il codice va inserito tra le parole chiave Sub ed End Sub.

Il punto il cui il cursore lampeggia, è il punto in cui va inserito il codice.

Cerchiamo di capire dove va a finire il testo inserito nelle caselle di testo.

Sulla base della nostra tabella sappiamo che il primo dato andrà a finire nella cella A2, in corrispondenza del Cognome, e tutti gli altri nelle rispettive celle della stessa riga.

Userform esempi excel | maschere excel

L’inserimento del primo utente non sarà difficile. La difficoltà nasce quando dobbiamo inserire i dati successivi. Dobbiamo fare in modo che Excel possa individuare la riga vuota successiva ai dati relativi all’ultimo utente inserito.

Per questo utilizziamo il seguente codice:

Userform esempi excel | maschere excel | codice VBA

Questa istruzione ci consente di individuare l’ultima riga, successiva a quella contenente dati, a partire dalla cella A1.

Se l’intervallo non contiene alcun dato, il codice ci restituisce un errore. Per evitare questo utilizziamo un’istruzione condizionale: l’istruzione If.

Attraverso l’istruzione Dim, ho prima dichiarato il nome e il tipo di variabile ad Excel. Ovvero ho chiesto all’applicazione (Excel) di creare uno spazio all’interno della sua memoria per contenere una variabile di tipo numerico.

Userform esempi excel | maschere excel

Ecco il codice completo.

Userform esempi excel | maschere excel | istruzioni vba | macro vba

 L’intero codice viene tradotto nel modo seguente:

Se la cella A2 è vuota, inserisci il contenuto della TextBox1 (Cognome) nella cella A2, il contenuto della TextBox2 (Nome) nella cella B2, il contenuto della TextBox3 (Indirizzo) nella cella C2 e il contenuto della TextBox4 (Città) nella cella D2. Nel caso contrario, inserisci il contenuto di ciascuna TextBox nella cella vuota successiva.”.

Passiamo ora all’inserimento del codice del pulsante Cancella.

Seleziona il pulsante Cancella, premi il tasto destro del mouse e seleziona la voce Visualizza codice.

Il compito di questo pulsante sarà quello di pulire le caselle di testo dai dati.

Userform esempi excel | maschere excel | istruzioni vba | macro vba

Verificare il funzionamento della UserForm

Infine, passiamo al test della nostra interfaccia per verificare il funzionamento.

Innanzitutto, apriamo l’Editor VB.

Dopo aver selezionato UserForm dalla finestra Gestione progetti, è necessario fare un clic sul comando Esegui.

menu editor VB | Verificare il funzionamento della UserForm

In alternativa, è possibile andare nel menu Esegui e scegliere il comando Esegui Sub / UserForm.

menu editor VB | Verificare il funzionamento della UserForm

La modalità di esecuzione che preferisco è quella attraverso il tasto funzione F5.

Userform esempi excel | maschere excel | Come creare una maschera inserimento dati Excel

Ora, inseriamo il primo dato nella casella di testo Cognome.

Passiamo alla casella di testo successiva premendo il tasto TAB.

Dopo aver inserito i dati in tutte le caselle di testo, fai clic sul pulsante Inserisci.

A questo punto dovresti ritrovare i dati all’interno del foglio di lavoro.

Creare un pulsante per aprire la UserForm

Per facilitare agli utenti l’apertura della UserForm, è possibile aggiungere un pulsante all’interno del foglio di lavoro.

Il codice da utilizzare è semplice. Posizioneremo l’istruzione all’interno di un modulo di codice standard.

Pertanto inseriamo un modulo. Diamo il nome alla macro (ApriUserForm). Infine, digitiamo il seguente codice:

Creare un pulsante per aprire la UserForm | macro VBA

Il risultato sarà il seguente:

Creare un pulsante per aprire la UserForm

Ora, inserisci la forma che desideri all’interno del foglio e aggiungi del testo.

Creare un pulsante per aprire la UserForm | Macro excel

Dopo averla inserita assegna la macro alla forma.

Fai clic con il pulsante destro del mouse e scegli la voce Assegna macro.

Creare un pulsante per aprire la UserForm | assegnare una macro a un pulsante

A questo punto la tua maschera Excel è pronta: non ti resta che procedere con l’inserimento dei dati e … buon lavoro.

Damiano Causale


Mi chiamo Damiano Causale, istruttore Microsoft certificato, per lavoro aiuto aziende e privati nell'utilizzo di Excel.

Damiano Causale

Your email address will not be published. Required fields are marked

  1. Buongiorno, tutto chiaro ho provato a creare una userform seguendo le vostre istruzioni e mi e' riuscito benissimo. Ho avuto un problema con l'inserimento della data su una textbox me la riporta sul foglio excel in inglese, digito 10/05/2020 e mi restituisce 05/10/2020. Dove sbaglio?

    1. Salve Marino, ti suggerisco di provare il seguente codice:
      CDate(TextBox1.Value)
      Ad esempio, se al clic di un pulsante presente nella UserForm vuoi che venga inserita la data, presente nella TextBox1, all'interno della cella attiva utilizza il seguente codice:
      ActiveCell.Value = CDate(TextBox1.Value)
      Spero il suggerimento ti sia utile:)
      Fammi sapere se funziona;)

  2. Buonasera.

    grazie per questo tutorial mi è stato molto utile.
    Avrei solo una domanda.

    se voglio fare in modo che i dati siano inseriti in una tabella presente nel foglio di lavoro " foglio2"

    ( la tabella è identica a quella riportata nel suo esempio, ma è in un foglio diverso) che sintassi è necessario usare?

    la ringrazio.

    1. Salve Vincenzo, ecco il codice modificato che potrai utilizzare per inserire nel Foglio2:
      '==========================================================================================
      Private Sub CommandButton1_Click()
      Dim UltimaRiga As Long

      If Foglio2.Range("A2").Value = "" Then
      Foglio2.Cells(2, 1).Value = TextBox1.Value
      Foglio2.Cells(2, 2).Value = TextBox2.Value
      Foglio2.Cells(2, 3).Value = TextBox3.Value
      Foglio2.Cells(2, 4).Value = TextBox4.Value
      Else
      'Individua la prima riga vuota
      UltimaRiga = Foglio2.Range("A1").End(xlDown).Row + 1

      Foglio2.Cells(UltimaRiga, 1).Value = TextBox1.Value
      Foglio2.Cells(UltimaRiga, 2).Value = TextBox2.Value
      Foglio2.Cells(UltimaRiga, 3).Value = TextBox3.Value
      Foglio2.Cells(UltimaRiga, 4).Value = TextBox4.Value
      End If

      End Sub
      '==========================================================================================

  3. buon giorno, ottimo tutorial, vorrei che solo la maschera di inserimento si aprisse al doppio click del file piuttosto che inserire il pulsante "apriform" e inserire anche un pulsante "CERCA" nella maschera è una cosa possibile?

    1. Salve Cosimo,
      innanzitutto, grazie:)
      Per mostrare la UserForm all'apertura del file è necessario utilizzare il seguente codice:

      '*********************************
      Private Sub Workbook_Open()
      UserForm1.Show
      End Sub
      '*********************************
      Si tratta di un evento che deve essere inserito nell'oggetto Questa_cartella_di_lavoro all'interno dell'Editor VB (ALT + F11)

  4. Buonasera Damiano,
    complimenti per la tua spiegazione: sei asciutto e vai subito all'aspetto operativo senza fronzoli e spiegazioni varie che distolgono e disorientano chi, come me, ha sempre usato excel per fare elenchi e somme.

    Una domanda: a quando una UserForm di lettura dati semmai con la possibilità di fare una cernita all'interno del record secondo un criterio di campo (colonna) (>, <, =, eccetera) con successiva stampa ? Chiedo troppo ?

    Un caro saluto.
    Emilio

    P.S.: Completerei questo esempio che hai fatto aggiungendo:
    1) come uscire dalla maschera
    2) come posizionarla fissa sullo schermo.

    1. Grazie Emilio;)
      nel limite del possibile cerco sempre di dare una risposta a tutti.
      In questo caso non sarebbe semplice esporre il tutto attraverso la sezione dei commenti senza la possibilità di aggiungere immagini.
      Ti ringrazio comunque per i tuoi suggerimenti, sono graditissimi;)

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}