Lista dropdown cù multi-selezzione

A lista classica in un fogliu Excel hè grande, ma permette solu di selezziunà una opzione da u settore presentatu. A volte questu hè esattamente ciò chì vulete, ma ci sò situazioni induve l'utilizatore deve esse capace di sceglie certi elementi da a lista.

Fighjemu parechje implementazioni tipiche di una lista multi-selezzione.

Opzione 1. Horizontale

L'utilizatori selezziunà l'articuli da u listinu drop-down unu à unu, è appariscenu à a diritta di a cellula chì hè cambiata, automaticamente esse listata orizzontalmente:

Listi drop-down in cells C2: C5 in questu esempiu sò creati in modu standard, ie

  1. selezziunà e cellule C2: C5
  2. scheda o menu Dati sceglie una squadra Validazione di i Dati
  3. in a finestra chì apre, selezziunate una opzione List è specificate cum'è una gamma surghjente cellule cù dati fonte per a lista A1: A8

Allora avete bisognu di aghjunghje una macro à u modulu di foglia, chì farà tuttu u travagliu principale, vale à dì aghjunghje i valori selezziunati à a diritta di e cellule verdi. Per fà questu, fate un clic drittu nantu à a tabulazione di u fogliu cù liste drop-down è selezziunate u cumandamentu Codice fonte. Incolla u codice seguente in a finestra di l'editore Visual Basic chì si apre:

Private Sub Worksheet_Change (ByVal Target As Range) On Error Resume Next If Not Intersect (Target, Range ("C2: C5")) Ùn hè nunda è Target.Cells.Count = 1 Allora Application.EnableEvents = False If Len (Target.Offset) (0, 1)) = 0 Allora Target.Offset (0, 1) = Target Else Target.End (xlToRight).Offset (0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

In casu di necessariu, rimpiazzà a gamma sensitiva di e liste drop-down C2: C5 in a seconda linea di stu codice cù u vostru propiu.

Opzione 2. Verticale

U listessu cum'è in a versione precedente, ma i novi valori selezziunati ùn sò micca aghjuntu à a diritta, ma à u fondu:

Hè fattu esattamente in u listessu modu, ma u codice macro di gestore cambia ligeramente:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range ("C2:F2")) Ùn hè nunda è Target.Cells.Count = 1 Allora Application.EnableEvents = False If Len (Target.Offset) (1, 0)) = 0 Allora Target.Offset (1, 0) = Target Else Target.End (xlDown).Offset (1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

In novu, se ne necessariu, rimpiazzà a gamma sensitiva di u C2: F2 liste drop-down cù u vostru propiu in a seconda linea di stu codice.

Opzione 3. Cù accumulazione in a listessa cellula

In questa opzione, l'accumulazione si trova in a listessa cellula induve si trova a lista drop-down. L'elementi selezziunati sò siparati da un caratteru datu (per esempiu, una virgola):

Listi drop-down in cellula verdi sò creati in modu cumpletamente standard, cum'è in i metudi previ. Tuttu u travagliu hè fattu, di novu, da una macro in u modulu di foglia:

Private Sub Worksheet_Change (ByVal Target As Range) On Error Resume Next If Not Intersect (Target, Range ("C2: C5")) Ùn hè nunda è Target.Cells.Count = 1 Allora Application.EnableEvents = False newVal = Target Application.Undo oldval = Target If Len (oldval) <> 0 And oldval <> newVal Allora Target = Target & "," & newVal Else Target = newVal End If If Len (newVal) = 0 Allora Target.ClearContents Application.EnableEvents = True End If End Sub  

Se vulete, pudete rimpiazzà u caratteru di separatore (virgola) in a 9a linea di codice cù u vostru propiu (per esempiu, un spaziu o un puntu e virgola).

  • Cume creà una lista simplice di drop-down in una cellula di fogliu excel
  • Lista dropdown cù cuntenutu
  • Lista a discesa cù opzioni mancanti aghjunte
  • Chì sò i macros, cumu si usanu, induve inserisce u codice macro in Visual Basic

Lascia un Audiolibro