ComboBox VBA

ComboBox VBA di Excel

ComboBox è la funzionalità del modulo utente in VBA , sono diverse dalle caselle di testo poiché le caselle di testo vengono utilizzate per contenere solo testo e consentiamo all'utente di inserire qualsiasi tipo di dati, ma utilizzando le caselle combinate limitiamo l'utente per il tipo di risposte che desideriamo quindi i dati sono in modo ordinato, è simile alla convalida dei dati dell'elenco in Excel.

ComboBox può essere paragonato a un elenco a discesa in Excel, nei fogli di lavoro abbiamo utilizzato la convalida dei dati per fornire un menu a discesa, ma in VBA è presente una funzionalità modulo utente in cui viene utilizzato per fornire un menu a discesa in qualsiasi modulo utente, ma se vogliamo utilizzare una casella combinata in Excel possiamo anche accedervi dalla sezione sviluppatore da lì possiamo creare caselle combinate per celle singole o multiple.

La casella combinata è molto simile all'elenco a discesa che abbiamo in un foglio di lavoro Excel, con la casella combinata possiamo memorizzare valori predeterminati, in modo che gli utenti rendano disponibile la selezione dall'elenco dalla casella combinata. La casella combinata viene generalmente utilizzata insieme ai moduli utente come parte per ottenere l'input dagli utenti.

I moduli utente sono utili ma avere altri strumenti nel modulo utente è ciò che rende il modulo utente così speciale. Uno degli strumenti che spesso utilizziamo come strumento per il modulo utente è "ComboBox".

I 2 modi principali per creare un ComboBox VBA

Puoi scaricare questo modello Excel per casella combinata VBA qui - Modello Excel per casella combinata VBA

# 1 - Utilizzo della codifica diretta

Innanzitutto, vedremo come utilizzare la casella combinata con il foglio di lavoro. Apri uno qualsiasi dei fogli di lavoro nella cartella di lavoro di Excel, vai alla scheda Sviluppatore e sotto questa scheda abbiamo uno strumento chiamato "Inserisci". Fai clic su questo e sotto questo abbiamo due opzioni Active X Controls & Form Controls in Excel.

Da "Active X Controls" scegliere "Combo Box".

Ora puoi disegnare questo oggetto su uno qualsiasi dei fogli di lavoro.

Fare clic con il pulsante destro del mouse sulla casella combinata e scegliere l'opzione "Proprietà".

Quando scegli le proprietà, si aprirà un enorme elenco di proprietà di una casella combinata.

Per questa casella combinata, forniremo un elenco di nomi di reparto, quindi cambia la proprietà name della casella combinata in  "DeptComboBox" .

Ora questa casella combinata verrà indicata con il nome "DeptComboBox" . Dobbiamo fornire nomi di dipartimento predeterminati, quindi qui ho un elenco di nomi di dipartimento.

Ora dobbiamo aggiungere questi valori all'elenco della casella combinata, possiamo farlo in due modi, tramite la codifica o tramite il gestore dei nomi.

Fai doppio clic su Combobox e ti porterà alla procedura macro VBA.

Ma abbiamo bisogno di vedere i nomi di questi reparti quando la cartella di lavoro si apre, quindi fai doppio clic su "ThisWorkbook".

Dall'elenco a discesa scegliere "Cartella di lavoro".

Dalle opzioni scegli "Apri".

Ora creerà uno spazio vuoto come quello sotto.

All'interno di questa macro inserisci il codice sottostante.

Codice:

 Private Sub Workbook_Open () With Worksheets ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operations" .AddItem "Audit" .AddItem "Client Servicing" End With End Sub 

Ok, ora salva e chiudi la cartella di lavoro, quando riapri la cartella di lavoro potremmo vedere i nomi dei dipartimenti al suo interno.

# 2 - Utilizzo di UserForm

Un altro modo per aggiungere valori al ComboBox è utilizzare il modulo utente. Innanzitutto, dai un nome alle celle come "Reparto".

Vai a Visual Basic Editor e inserisci il modulo utente dall'opzione INSERT.

Ora viene creato il nuovo modulo utente.

Accanto al form utente, possiamo vedere "Toolbox" da questo toolbox possiamo inserire "Combo Box".

Ora la casella combinata è incorporata nel modulo utente, in questo metodo per aprire l'opzione delle proprietà selezionare la casella combinata e premere il tasto F4 per aprire la finestra delle proprietà.

Scorri verso il basso la scheda delle proprietà e scegli "Row Source".

Per questa "Origine riga", immettere il nome che abbiamo assegnato alle celle del nome del reparto.

Ora questa casella combinata contiene il riferimento del nome "Dipartimento" .

Ora esegui il modulo utente utilizzando il pulsante Esegui.

Ora possiamo vedere un elenco di nomi di reparto nella casella combinata del modulo utente.

Praticamente modulo utente associato a una casella combinata, una casella di testo e molti altri strumenti. Creeremo un semplice modulo utente per l'inserimento dei dati con una casella di testo e una casella combinata.

Crea un modulo utente come il seguente.

Crea due pulsanti di comando.

Fare doppio clic sul pulsante "INVIA" ​​si aprirà sotto la macro.

All'interno di questa macro aggiungi il codice sottostante.

Codice:

 Private Sub CommandButton1_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = TextBox1.Value Cells(LR, 2).Value = ComboBox1.Value End Sub 

Now double click on the “CANCEL” button and add the below code.

Now in the worksheet create a template like the below.

Now run the user form and it will open up like this.

Enter the employee name and pick the department name from the combo list.

Click on the SUBMIT button and see the magic.

We got the values entered in the table format we have created.

Things to Remember

  • COMBO BOX has its own properties as well.
  • Adding values to list comes in two ways one is a coding way and another one is range name reference.
  • COMBO BOX is usually part of the user form.