fbpx
.st0{fill:#FFFFFF;}

Excel Esperto, Macro e VBA

ComboBox Excel VBA: uso casella combinata

 Maggio 19, 2020

By  Damiano Causale

  • Home
  • ComboBox Excel VBA: uso casella combinata

In questo articolo voglio mostrarti come aggiungere una ComboBox Excel VBA in una UserForm Excel.

Una ComboBox Excel è una casella combinata che potrai aggiungere a una maschera utente (in inglese UserForm) di inserimento dati.

In altri termini si tratta di un menu a tendina da cui potrai selezionare dei valori.

In questo articolo imparerai quattro semplici modi per aggiungere valori a una ComboBox Excel con il VBA.

combobox excel vba

Come aggiungere una ComboBox Excel VBA

Come aggiungere una ComboBox Excel VBA

Inserire una ComboBox in una UserForm Excel è semplicissimo. È sufficiente selezionare la Casella combinata dalla Casella degli strumenti e trascinarla sulla UserForm.

Passiamo all'aspetto più importante: l’inserimento dei dati in una ComboBox.

Dobbiamo fare in modo di popolare di elementi la ComboBox in modo che sia possibile selezionarne uno quando viene attivata.

Aggiungere valori a una ComboBox

Esistono modi differenti per aggiungere elementi a una ComboBox. In particolare vedremo quattro metodi: uno che non richiede l’utilizzo delle macro Excel e tre attraverso l’utilizzo del codice VBA.

Inserire valori a una ComboBox senza il VBA

La prima modalità non richiede l’utilizzo del linguaggio delle macro.

Vediamo come procedere.

Innanzitutto, creiamo un elenco di valori all'interno di un intervallo di celle Excel. Ad esempio, l’intervallo di celle A2:A11.

Aggiungere valori a una ComboBox

Ora ritorniamo sull'Editor VB di Excel.

Aggiungere valori a una ComboBox VBA Excel

Fai un clic sulla UserForm, quindi seleziona la ComboBox.

Dalla finestra Proprietà (in basso a sinistra) scorri verso il basso fino a RowSource. Qualora la finestra Proprietà non fosse visibile, premi il tasto funzione F4.

A questo punto, inserisci riferimento all'intervallo di dati.

Ti suggerisco di aggiungere anche il riferimento al foglio di lavoro prima del riferimento all'intervallo. Se omesso, Excel suppone che l'intervallo sia quello del foglio di lavoro attivo ovvero quello in cui ti trovi quando avvii la UserForm.

Aggiungere valori a una ComboBox

Se non vuoi che l'utente sia in grado di visualizzare o modificare questo elenco, potrai inserirlo in un foglio di lavoro nascosto.

Come vedi, questo è un modo molto semplice per aggiungere valori a una ComboBox Excel. Non è necessario utilizzare alcuna istruzione VBA.


Inserire valori a una ComboBox con il VBA

Ora vediamo due metodi per aggiungere valori ad una ComboBox Excel che necessitano dell’utilizzo della codifica VBA.

Vai alla finestra dell’Editor VB e fai un clic con il tasto destro del mouse sulla UserForm.

Successivamente fai clic su Visualizza codice dal menu contestuale.

Inserire valori a una ComboBox con il VBA Excel

In alternativa, puoi scegliere di premere il tasto destro sulla UserForm dalla finestra Progetto. Il risultato sarà identico.

Excel VBA ComboBox | Inserire valori a una ComboBox

A prescindere dalla modalità utilizzata, ti troverai davanti una finestra simile.

Evento UserForm VBA Excel

L’evento associato alla UserForm potrebbe essere UserForm_Click. Ciò significa che il codice che inserirai al suo interno sarà eseguito ogni volta che fai un clic sulla UserForm. Nello specifico, i valori nella ComboBox saranno aggiunti ad ogni clic.

Questo evento non fa al caso nostro. Pertanto seleziona l’evento Initialize dal menu a tendina Routine sulla destra.

Evento UserForm Excel

Ora tra le due righe di codice andremo ad inserire le istruzioni necessarie.

Il codice VBA verrà eseguito all'avvio o all'apertura della UserForm.

Pertanto i valori saranno aggiunti alla ComboBox quando si apre la UserForm.

Aggiungere valori a una ComboBox: metodo AddItem

La prima opzione che ti mostrerò per aggiungere valori a una ComboBox è con l’utilizzo del codice VBA attraverso il metodo AddItem.

Aggiungere valori a una ComboBox: metodo AddItem

Il codice VBA da utilizzare sarà il seguente:

Aggiungere valori a una ComboBox: metodo AddItem

Questo metodo ti consente di aggiungere tutti i valori che inserisci tra le doppie virgolette.

Per semplificare la lettura e favorire la comprensione del codice VBA ti suggerisco di utilizzare l'istruzione With … End With.

Il metodo AddItem è probabilmente il più intuitivo e facile da capire. È sicuramente utile per elenchi di piccole dimensioni. Se al contrario disponi di un elenco ampio questo metodo NON è adatto.

Aggiungere valori a una ComboBox: proprietà List

Stavolta, in questa nuova opzione, faremo ricorso alla proprietà List della ComboBox.

Aggiungere valori a una ComboBox: proprietà List

Questa opzione non è difficile da capire anche se non si presta a grandi elenchi. Segui la sintassi dell'esempio indicato sotto.

Aggiungere valori a una ComboBox: proprietà List

La proprietà List aggiunge gli elementi presenti nell'Array (detto anche vettore o matrice). Array è la funzione utilizzata per creare un array dagli elementi per l'elenco.

Aggiungere valori a una ComboBox: proprietà RowSource

Quest’ultima opzione è esattamente identica alla prima mostrata in questo articolo ma con l’utilizzo del VBA.

L’utilizzo della proprietà RowSource ti consente di specificare il riferimento al foglio di lavoro e all'intervallo di celle.

Aggiungere valori a una ComboBox: proprietà RowSource

Il codice VBA è il seguente:

Aggiungere valori a una ComboBox: proprietà RowSource

Indipendentemente dall'opzione utilizzata, il risultato finale sarà il seguente:

ComboBox Excel VBA

Come vedi, ci sono modi differenti per aggiungere valori a una ComboBox Excel VBA. Potrai scegliere quello che per te funziona meglio!

Spero l’articolo ti sia utile.

Buon lavoro!

Vuoi saperne di più sul linguaggio VBA Excel?

Allora potrebbero interessarti i seguenti articoli:

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

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