In questo articolo, impareremo come creare una casella di riepilogo in cui possiamo selezionare più nomi e possiamo ottenere i dati richiesti dai dati principali.

Comprendiamo con il semplice esercizio: – Abbiamo preso i dati in cui abbiamo i dettagli dell’ID email per ogni dipendente.

Data

Seguire i passaggi indicati di seguito per creare la casella di riepilogo che fornisce l’opzione di selezione di più scelte utilizzando il codice VBA: –

Per inserire la casella di riepilogo sul foglio Excel, vai alla scheda Sviluppatore> fai clic su Inserisci> e quindi fai clic sul pulsante della casella di riepilogo sotto controllo ActiveX

ArrowInsertingListBox

Nella scheda Sviluppatore, fare clic su Modalità di progettazione per attivare il progetto, quindi fare clic su Proprietà nella scheda Sviluppatore, apparirà la finestra di dialogo Proprietà.

Seleziona la casella Elenco, quindi vai alla finestra di dialogo Proprietà. Fare clic sulla scheda Classificato. Sotto l’intestazione Varie, vai alla proprietà ListFillRange e assegna l’intervallo che contiene i valori per la casella di riepilogo.

Sotto l’intestazione Behavior, cambia la proprietà Multiselect in 1-fmMultiSelectMulti

ArrowPropertiesDialogBox

ArrowPropertiesDialogBox-2

Ora, inserisci due pulsanti di comando sul foglio Excel, vai alla scheda Sviluppatore> fai clic su Inserisci> e quindi fai clic sull’icona del pulsante sotto Controllo modulo

ArrowCommandButton

Fare clic con il pulsante destro del mouse e selezionare la proprietà Modifica testo e rinominare i due pulsanti in “Deseleziona nomi” e “Invia”.

Premere il tasto Alt + F11 per aprire Visual Basic Editor Aggiungi nuovo modulo e inserisci il codice seguente nel modulo.

“Coding Il codice sopra contiene due procedure GettingSelectedItems e UnselectedItems. Assegnare la procedura GettingSelectedItems to Submit button e la procedura UnselectedItems to Unselect Names button.

ArrowAssigningMacro

AssigningMacro

Dopo aver assegnato la procedura, disabilitare la modalità di progettazione facendo clic sul pulsante della modalità di progettazione nella scheda Sviluppatore.

Spiegazione logica

In questo esempio, il nostro obiettivo è recuperare l’ID email del nome selezionato dall’utente nella colonna L casella di riepilogo.

L’utente può selezionare più nomi nella casella di riepilogo. Dopo aver selezionato i nomi, l’utente premerà il pulsante di invio e l’ID e-mail corrispondente al nome selezionato nella casella di riepilogo apparirà nella colonna L del foglio Excel.

Se l’utente desidera deselezionare tutti i nomi selezionati nella casella di riepilogo, può fare clic sul pulsante “Deseleziona nomi”.

Per raggiungere l’obiettivo di cui sopra, abbiamo utilizzato la formula e la procedura Excel.

La procedura GettingSelectedItems è scritta per ottenere il nome selezionato dalla casella di riepilogo nell’intervallo da K10 a K23.

Per ottenere l’ID e-mail per il nome selezionato, abbiamo utilizzato la seguente formula di Excel: – = SE.ERRORE (CERCA.VERT (K10, $ A $ 10: $ B $ 23,2,0), “”)

Inserisci la formula sopra nella cella L10 e copia e incolla questa formula nell’intervallo da L10 a L23.

Questa formula fornirà l’ID e-mail cercando il nome selezionato nell’intervallo da A10 a B23.

Abbiamo nascosto i valori nell’intervallo da K10 a K23 utilizzando lo stesso colore per il carattere e lo sfondo della cella.

Segui sotto per il codice

Option Explicit

Sub GettingSelectedItems()

'Getting selected items in ListBox1

Application.ScreenUpdating = False

'Declaring varialbes

Dim ValueSelected As String, i, r As Integer

'deleting selected values

Range("K10:K23").Select

Selection.ClearContents

'Defining listbox1 of sheet TestDialog

With Sheets("TestDialog").ListBox1

r = 0



'Using For loop for looping through all the items in List Box

For i = 0 To .ListCount - 1

'Using .selected for selecting only those value which is selected by user in listbox

If .Selected(i) Then

'Assigning selected value of List Box to Column K on the sheet

Cells(r + 10, 11).Value = .List(i)

r = r + 1

End If

Next i

End With

Range("L10").Select

End Sub

Sub UnselectedItems()

'Unselecting all the items in the list box

Application.ScreenUpdating = False

'Declaring varialbes

Dim ValueSelected As String, i As Integer

'Defining listbox1 of sheet TestDialog

With Sheets("TestDialog").ListBox1

'Using For loop for looping through all the items in List Box

For i = 0 To .ListCount - 1

'Unselecting all the items in the list

.Selected(i) = False

Next i

End With

'Deleting data from range K10 to K23

Range("K10:K23").Select

Selection.ClearContents

Range("L10").Select

End Sub

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]