Visualizzazione dato scelto in combobox



  • 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