Taula de continguts
Depenent de les circumstàncies, és possible que hàgiu de seleccionar diversos valors dins d'una llista desplegable. En aquest tutorial, us mostrarem com fer una selecció múltiple en una llista desplegable. Per a aquesta sessió, estem utilitzant Excel 2019, no dubteu a utilitzar la vostra versió preferida.
Abans d'aprofundir en la sessió, coneixem el conjunt de dades que és la base dels nostres exemples.
Aquí tenim diversos elements de papereria, amb aquests crearem una llista desplegable i hi seleccionarem diversos elements.
Tingueu en compte que és un conjunt de dades senzill per mantenir les coses senzilles. . En un escenari pràctic, és possible que us trobeu amb un conjunt de dades molt més gran i complex.
Quadern de pràctiques
Podeu descarregar el quadern de pràctiques des de l'enllaç següent.
Fer una selecció múltiple des de la llista desplegable.xlsm
Selecció múltiple en una llista desplegable
Primer de tot, hem de crear una llista desplegable sobre la base de les nostres papereries. Creem-lo ràpidament. No dubteu a visitar l'article sobre l'elaboració d'una llista desplegable.
Al quadre de diàleg Validació de dades seleccioneu el tipus de dades LIST i introduïu el rang de cel·les dels elements.
B4:B11 és l'interval que conté els elements de papereria. Ara trobareu la llista desplegable.
Més informació: Llista desplegable d'Excel segons la selecció
1. SeleccioneuElements múltiples (permet la selecció duplicada)
Una llista desplegable convencional sempre selecciona un únic element. Aquí podeu veure, hem seleccionat Bolígraf de la llista (imatge a continuació).
Ara, si seleccionem un altre element, diguem que Llapis
a continuació, substituirà el valor anterior. Només romandrà seleccionat llapis .
Per seleccionar diversos elements, hem d'utilitzar el codi VBA . Obriu la finestra Microsoft Visual Basic for Applications (preme ALT + F11 per obrir-la).
Ara feu doble clic al nom o al número del full de treball on voleu seleccionar diversos elements dins de la llista desplegable. Trobareu la finestra de codi per a aquest full en concret.
Aquí teniu la finestra de codi per a Full2 al nostre llibre de treball (tenim el desplegable llista en aquest full).
Un cop oberta la finestra del codi, inseriu-hi el codi següent
3761
Deseu el codi i ara intenteu seleccionar valors a la llista desplegable.
Un cop seleccionat Llapis , seleccionarem un altre element Quadern . I podeu veure, hem trobat els dos elements (imatge a continuació).
Aquest codi ens permetrà repetir la selecció. Suposem que si tornem a seleccionar Llapis ,
trobarem l'element de nou al quadre de selecció.
Codi Explicació
Hem declarat dues cadenes Oldvalue i Nou valor .
Podeu veure que hem creat la llista desplegable a la cel·la D4 , per això la nostra adreça objectiu és D4 . I, a més, hem tornat a comprovar si la cel·la utilitza la validació de dades o no utilitza Target.SpecialCells .
Un cop seleccionat un valor, hem desactivat els esdeveniments ( Application.EnableEvents = False
) de manera que els canvis no no tornar a activar l'esdeveniment. A continuació, s'ha emmagatzemat l'element seleccionat al Nou valor .
Després de desfer el canvi, hem establert el valor al Valor antic . A continuació, comproveu si el Oldvalue està buit o no. Si està buit (significa que només s'ha seleccionat un valor), retorneu el Nou valor . En cas contrari, concateneu el Oldvalue i el Newvalue .
Abans d'acabar el restabliment de l'esdeveniment, de manera que puguem canviar si cal.
Més informació: Llista desplegable de dependents múltiples Excel VBA
2. Seleccioneu diversos elements de la llista desplegable (només selecció única)
A la secció anterior , hem vist les múltiples seleccions on es permetia la repetició. Si no ho voleu, seguiu aquesta secció.
Per comoditat, hem utilitzat un full a part per a aquesta demostració. Aquesta vegada estem a Sheet3. Escriviu el codi següent a la finestra de codi d'aquest full.
4501
Hi ha alguna diferència en comparació amb el codi anterior! Fes una ullada més de prop, podràs detectar la lleugera diferència.
Aquí hem utilitzat una funció VBA anomenada INSTR . La funció INSTR retorna la posició de la primera ocurrència d'una subcadena en una cadena. Visiteu aquest article d'INSTR per obtenir més informació.
Usant aquesta operació lògica amb InStr(1, Oldvalue, Newvalue) = 0, hem comprovat si els valors es troben o no. Si l'operació lògica retorna TRUE (no trobat anteriorment), llavors permet seleccionar l'element i concatenar amb el valor anterior.
Desa el codi i ara prova de seleccionar un element que ja té. s'ha seleccionat.
Aquí ja hem seleccionat Llapis , si ho volem tornar a seleccionar, no podem. No permet valors duplicats.
Llegiu més: Com crear una llista desplegable des d'un altre full a Excel
3. Seleccioneu Elements a Newline
Fins ara, hem trobat que els elements estan separats per una coma. En aquesta secció, organitzarem els elements seleccionats en noves línies.
Per simplificar, estem fusionant algunes cel·les amb la cel·la D4 . Per fer-ho, seleccioneu les cel·les que voleu combinar i feu clic a Combina & Centre des de la secció Alineació de la pestanya Inici .
La cel·la guanyarà més alçada.
Ara, mirem el codi per separar elements mitjançant una nova línia. Utilitzeu el codi següent
7204
L'única diferència amb el codi anterior és que aquesta vegada hem utilitzat vbNewLine entre OldValue i NewValue .
vbNewLine proporciona una nova línia entre els elements.
Ara seleccioneu els elements.
Seleccionem un element Bolígraf que es mostra a la imatge de dalt. Ara seleccioneu un altre element.
Trobareu que els dos elements estan en línies diferents.
Aquí tenim dos valors, que estan en dues línies diferents. Si seleccioneu un altre valor, l'afegirà a una altra línia. Cada valor estarà en una línia nova.
Tingueu en compte que si voleu un altre delimitador per separar els elements, utilitzeu-lo entre cometes dobles en lloc de vbNewline .
Conclusió
Això és tot per avui. Hem enumerat diversos enfocaments per fer seleccions múltiples en una llista desplegable. Espero que això us sigui útil. No dubteu a comentar si alguna cosa sembla difícil d'entendre. Feu-nos saber qualsevol altre mètode que hem perdut aquí.