Su una richiesta analoga, tempo fa suggerii l' uso di un"ComboBox" o Casella combinata, la versione disponibile nella barra degli Strumenti di controllo.
Sul "controllo" vanno impostate le seguenti proprieta':
-Linked cell: la cella in cui sara' rilasciato il valore (probabilmente quella dove ora c' e' la convalida)
-ListFillRange: le celle che contengono l' elenco delle voci tra cui scegliere
-volendo si puo' aumentare ListRows, es da 8 a 20, per avere visibile una parte piu' lunga dell' elenco
-MatchEntry: suggerisco 1, MatchEntryComplete
-MatchRequired: True
-Style: 2, StyleDropDownList
Per queste operazioni devi essere in modalita' "Progettazione" e poi visualizzare le "proprietà" del controllo.
Chiudi la modalita' progettazione e verifica l' effetto, che dovrebbe essere:
-si clicca nel combobox o nella freccina di selezione; si apre l' elenco completo; digitando una o piu' lettere l' elenco si posiziona sulle voci che iniziano con quanto digitato; si completa la digitazione oppure si seleziona dall' elenco.
Volendo affinare, si puo' inserire una macro di SelectionChange che, se viene selezionata la cella dove va inserita la voce, rende "visibile" il controllo; es.
- Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$E$1" Then ComboBox1.Visible = True
End Sub
Questo rende visibile il combobox quando si seleziona E1; adatta per le tue coordinate
Ovviamente serve anche il codice per farlo scomparire; es.
- Codice: Seleziona tutto
Private Sub ComboBox1_LostFocus()
ComboBox1.Visible = False
End Sub
Il combobox scompare quando si seleziona una cella (non E1)
Queste ultime parti sono ovviamente opzionali; il codice va inserito tutto sul "Modulo codice" del Foglio su cui si lavora.
Prova, e se serve aiuto ulteriore siamo qua.
Ciao.