ComboBox VBA - Come creare e utilizzare ComboBox in 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 utilizzata per fornire un menu a discesa in qualsiasi modulo utente, ma se vogliamo utilizzare una casella combinata in Excel, possiamo accedendovi anche dalla sezione sviluppatore da lì possiamo creare combo box 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 utilizziamo spesso come strumento per il modulo utente è "ComboBox".

I 2 modi principali per creare un ComboBox 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 in 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 "Controlli Active X", scegli "Casella combinata".

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 della macro VBA.

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

Dall'elenco a discesa, scegli "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 in essa contenuti.

# 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 modulo utente, possiamo vedere "Casella degli strumenti" da questa casella degli strumenti, possiamo inserire "Casella combinata".

Now the combo box is embedded in the user form. In this method, to open the properties option, select the combo box and press the F4 key to open the properties window.

Scroll down the properties tab and choose “Row Source.”

For this “Row Source,” enter the name that we had given to department name cells.

Now this combo box holds the reference of the name “Department.”

Now run the user form by using the run button.

Now we can see a list of department names in the combo box on the user form.

Practically user form is associated with a combo box, text box, and many other tools. We will create a simple data entry user form with a text box & combo box.

Create a user form like the below.

Create two Command Buttons.

Double click on the “SUBMIT” button it will open up below macro.

Inside this macro, add the below code.

Code:

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

Ora fai doppio clic sul pulsante "CANCELLA" e aggiungi il codice sottostante.

Ora nel foglio di lavoro, crea un modello come il seguente.

Ora esegui il modulo utente e si aprirà in questo modo.

Immettere il nome del dipendente e selezionare il nome del reparto dall'elenco combinato.

Fare clic sul pulsante INVIA e vedere la magia.

Abbiamo ottenuto i valori inseriti nel formato tabella che abbiamo creato.

Cose da ricordare

  • Anche COMBO BOX ha le sue proprietà.
  • L'aggiunta di valori all'elenco avviene in due modi. Uno è un modo di codifica e un altro è un riferimento al nome dell'intervallo.
  • COMBO BOX fa solitamente parte del modulo utente.

Articoli interessanti...