Quello che ti propongo è una via di mezzo dall'elenco che già hai e continuerai ad usare e una semplificazione attraverso qualche riga di codice del Vba dal foglio dei dati premi ALT + F11 ti troverai in ambiente Vba
incolla l'intero codice qui riportato
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Then
UR = Range("A" & Rows.Count).End(xlUp).Row
For R = 2 To UR
If Range("C1").Value = Mid(Range("A" & R).Value, 1, Len(Range("C1"))) Then
Range("C1").Value = Range("A" & R).Value
Range("C2").Select
GoTo esci
End If
Next R
End If
esci:
End Sub
Ho considerato in C1 il risultato dell'elenco (convalida) semmai inserirai la cella da te utilizzata al posto di "C1" o "$C$1"
e sostituisci la colonna "A" nel caso non fosse questa la colonna interessata al listino
inoltre nella convalida togli la spunta al tab "Messaggi di errore"
Ti invio il file come test e se ti piace adotti la soluzione
http://rapidshare.com/files/351071825/ConvalidaSemplificata.xls.htmlUtilizzo:
in C1 digiti parte della descrizione (es. ff ) e premi invio
la macro troverà nella colonna A1 la prima voce che inizia con il codice parziale (fff), potrebbe non essere la voce da te voluta in quanto avrai più voci che iniziano con quella piccola stringa e a questo punto userai l'elenco a discesa convalidato che ti darà tutte le voci a partire da quella selezionata in poi, chiaramente funziona se il listino è in ordine alfabetico.
Ciao