Allora…
Per cominciare, lavorando sul foglio Lunedi, eliminiamo tutti i combobox e sostituiamoli con uno solo
Useremo cioe' un (1) solo Combobox, e lo posizioneremo di volta in volta accanto alla cella che dobbiamo riempire.
In pratica devi lasciare solo Combobox1 e cancellare tutti gli altri. Valuta anche la possibilita' di usare il ListBox, che e' piu' simile all'elenco di convalida.
Di ComboBox1 impostane le proprieta' come meglio ti servono (dimensione, colore di sfondo, font e dimensione dei caratteri, NUMERO di righe da visualizzare, …)
Come "linkedcell" inserisci E5, e come "ListFillRange" inserisci <b><i>'N° Badge'!C3:D55</i></b> (o l'area di origine reale)
Sulle celle E5:E24 applica una convalida da elenco usando la stessa origine dati; togli pero' la spunta alla voce "Elenco nella cella"; come messaggio di Errore della Convalida inserisci "Scegli tramite Combobox"
Poi fai tasto dx sul tab del foglio Lunedi, e scegli Visualizza codice
Cancella il codice attuale riferito alla combobox e inserisci
- Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
mytarg = "E5:E23" '<<< L'area dove caricare i dati tramite ComboBox
If Application.Intersect(Target, Range(mytarg)) Is Nothing Or _
Target.Count > 1 Then
ComboBox1.Visible = False '***
Else
ComboBox1.Left = Target.Offset(0, 1).Left
ComboBox1.Top = Target.Top
ComboBox1.LinkedCell = Target.Address
ComboBox1.Visible = True
End If
End Sub
La riga marcata <<< va personalizzata come da commento
Se hai optato per il ListBox allora le istruzioni sono le stesse, devi solo nella macro sostituire ListBox1 a ComboBox1.
A questo punto, se selezioni una delle celle impostate come MYTARG il combobox si posizionera' accanto alla cella e ti aiutera' a selezionare la voce che serve.
Fatto questo non ho capito quale e' il prossimo passo che hai in mente
Ciao