Visualizzazione dato scelto in combobox
Hai un problema con Excel? 
Visualizzazione dato scelto in combobox
di salvewa (utente non iscritto) data: 08/10/2013 16:42:57
Ciao a tutti
Di seguito il mio problema di cui allego file con dati non sensibili.
Premetto, per correttezza, che tutto il codice è opera del gentilissimo HarryBosch che saluto e ringrazio tanto.
Necessiterei, se possibile, di modificare parte di una macro che riporto giù.
La macro in questione garantisce l'univocità dei dati nelle combobox dopo aver scelto un qualsiasi valore sempre in combo.
Allo stato attuale, scelto un valore da combo questo viene subito ripulito e quindi non rimane visibile nella combobox.
La parte da modificare è proprio questa, cioè: scelto il valore nella combo questo deve normalmente rimanere visibile fino alla successiva scelta di un altro valore.
Ho provato a cancellare:
Me.Controls("Combobox" & i).Clear
ottenendo si la visualizzazione del valore scelto nella combo ma perdendo, cosa assolutamente essenziale per questo applicativo, l'univocità dei dati dopo la scelta del valore dalla combo.
Quindi, come modificare il codice giù in modo tale da visualizzare normalmente i valori scelti nelle combo senza alterare l'univocità dei dati nelle combo dopo una qualunque scelta di un dato valore?
Spero di essere stato chiaro.
Attendo vostre possibili soluzioni.
Grazie anticipatamente
salvewa
Sub popola_combo()
Dim i As Long, cUnici As Collection, vEle As Variant, t As Byte
For i = 1 To 37
Set cUnici = New Collection
On Error Resume Next
For Each vEle In mydata.Columns(i).Offset(1).Cells
If vEle <> "" Then cUnici.Add vEle, CStr(vEle)
Next
aggiorna = False
Me.Controls("Combobox" & i).Clear
aggiorna = True
For Each vEle In cUnici
Me.Controls("Combobox" & i).AddItem vEle
Next
Set cUnici = Nothing
Next
End Sub |
di salvewa (utente non iscritto) data: 09/10/2013 08:22:40
Ciao ragazzi
nessuna soluzione possibile
Ciao
salvewa
di Vecchio Frac data: 09/10/2013 14:15:02
Ti propongo questa prima soluzione.
Fa quello che chiedi ma ha l'inconveniente che conserva soltanto l'ultimo filtro impostato (se scegli successivamente dalle combobox più valori per raffinare la ricerca, rimane valorizzata solo l'ultima combobox che ha ricevuto il filtro).
Si può studiare una soluzione diversa ma per intanto questa funziona.
Ti indico le routine che devi modificare (popola_combo e filtro) e come devi modificarle.
'popolo le 10 combobox in base al Range "mydata"
Sub popola_combo(Optional col As Byte) '<<<<<<<<<<<<<<<<<< modifica qui
...
aggiorna = False
If i <> col Then Me.Controls("Combobox" & i).Clear '<<<<<<<<<<<<<<<<<< modifica qui
aggiorna = True
...
End Sub
Sub filtro(col As Byte, S As String)
...
popola_combo col '<<<<<<<<<<<<<<<<<< modifica qui
....
End Sub |
di salvewa (utente non iscritto) data: 09/10/2013 15:37:13
Ciao Vecchio Frac
GRAZIE infinite per la tua risposta.
Già ottima soluzione quella che mi proponi.
Avrei necessità, se pensi si possa realizzare, di vedere visibili contemporaneamente tutte le combo dopo aver fatto le varie scelte dati.
La motivazione di questa mia richiesta sta nel fatto di sviluppare successivamente, grazie a tutti i dati visibili nelle combo, raffronti statistici di incremento/decremento tra i dati scelti.
Penso, per es., di inviare, tramite un cmdbutt, una prima selezione di dati es anno 2010, poi scegliere es l'anno 2011 e inviare nello stesso foglio i dati visibili di combo + text ottenendo così, automaticamente, raffronti % di incr o decr.
Questa è il motivo per il quale ti chiedo, cortesemente, la contemporanea visibilità dei dati scelti nelle combo.
Ringraziandoti tantissimo per la tua attenzione al mio problema attendo tue ulteriori soluzioni o consigli.
Un grande GRAZIE
salvewa
Vuoi Approfondire?