Risultati da 1 a 9 di 9

Discussione: Convalida dati/Elenco ma con ricerca dinamica: possibile?



  1. #1
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33

    Convalida dati/Elenco ma con ricerca dinamica: possibile?

    Ciao, in alcuni fogli ho degli elenchi a tendina creati con Convalida dati/Elenco che sono molto lunghi,
    la selezione della riga corretta diventa altrettanto lunga e difficile, ed è più facile confondere le voci simili differenti magari solo per l'ultimo carattere.

    Mi domandavo se fosse possibile ottenere una ricerca (tipo filtro?) DINAMICA ovvero che quando inizio a battere i primi caratteri tutte le cose che non
    corrispondo spariscano o l'elenco si sposti verso la parte di elenco interessata.

    Si può avere? Con o senza VBA? Come?
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  2. #2
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Aldo;
    VBA dispone di uno strumento per ottenere quello che desideri; ComboBox.
    In realtà sarebbe possibile valutare altre alternative, tipo, ListBox; dipende dal numero di Record che devi gestire.

    Potresti allegare un File, senza dati sensibili, sul quale, assieme, poter ragionare e trovare la soluzione più conveniente per le Tue Esigenze.



    A disposizione.

    Buon Lavoro e buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  3. #3
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33
    Grazie per la pronta risposta, allego il file.
    VBA è l'unica soluzione vero? Lo chiedo perchè non conosco VBA e, nei limiti del possibile, preferisco evitarlo...
    File Allegati File Allegati
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  4. #4
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buon pomeriggio, Aldo.

    Citazione Originariamente Scritto da aldomattana Visualizza Messaggio
    VBA è l'unica soluzione vero? Lo chiedo perchè non conosco VBA e, nei limiti del possibile, preferisco evitarlo...
    Tranquillo, Aldo, VBA ... non morde! :176: :167: :176:

    Scherzi a parte, prova a vdere se il File in allegato, può fare al caso tuo.

    Comepuoi vedere, non ho toccato la Tua impostazione iniziale, ho semplicemente eliminato le "Celle unite"; l'unica cosa, il risultato della selezione viene riportato in Cella "B6"

    Codice: 
    
    Sub CreaCartella()
         
        Dim uRiga As Long     'ultima riga utile
        Dim aPath As String     'attuale percorso
        Dim nCart As String     'nome cartella da creare
        Dim pCart As String     'percorso finale con la cartella
        Dim a As Long           'contatore di riga
        Dim i As Long           'contatore cartelle create
        Dim j As Long           'contatore cartelle già esistenti
        
        aPath = ThisWorkbook.Path                       'rilevo l'attuale path del file aperto
        uRiga = Range("A" & Rows.Count).End(xlUp).Row   'trovo l'ultima riga disponibile in colonna B
        For a = 2 To uRiga
            If Range("A" & a).Value <> "" Then          'verifico se contiene un nome cartella
                nCart = Range("A" & a).Value            'ricavo il nome cartella da creare
                pCart = aPath & "\" & nCart             'creo il nome del percorso finale
                If Dir(pCart, vbDirectory) = "" Then    'verifico se la cartella già esiste
                    MkDir pCart                         'altrimenti la creo
                    i = i + 1
                Else
                    j = j + 1
                End If
            End If
        Next
        pCart = ""
        MsgBox ("Create " & i & " nuove cartelle" & vbLf & "Risultavano già presenti " & j & " cartelle"), vbInformation
    
    
    End Sub


    A disposizione.

    Buona serata.

    Giuseppe
    File Allegati File Allegati
    Ultima modifica fatta da:Gerardo Zuccalà; 26/02/16 alle 22:01 Motivo: Mancava dice VBA
    Windows XP Excel 2000 - Windows 10 Excel 2013

  5. I seguenti 3 utenti hanno dato un "Like" a GiuseppeMN per questo post:


  6. #5
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186
    Ciao GiuseppeMN,
    molto interessante la tua soluzione. Come si ottiene?

    Grazie
    Gene

  7. #6
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Giuseppe, Ottima soluzione
    Tuttavia ti scrivo 2 righe perchè mi sono permesso di inserire il codice VBA tra i TAG #Code, perchè ultimamente molti hanno perso questa bella abitudine che rende questo forum più interessante sopratutto per coloro che dal telefonino e tablet (che sono in tanti) non riescono ad aprire l'editor VBA e quindi non possono avere il piacere di leggere il codice
    Ciao Giuseppe grazie di tutto!!

  8. #7
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera a Tutti.

    @ G.Bove
    Grazie della Tua Attenzione

    Ho utilizzato il Controllo ActiveX Casella combinata (ComboBox); purtroppo non dispongo di Excel 2007.
    Per Excel 2013 è necessario:
    - Ribbon "Sviluppo"
    - dal Gruppo "Controlli" si sceglie "Inserisci"
    - Controlli ActiveX, quindi, "Casella combinata"
    - nelle Proprietà, inserire:
    - in ListFillRange il Range nel quale sono raggruppati i Record da selezionare
    - in LinkedCell la Cella nella quale inserire il Record selezionato

    volendo essere pignoli:
    - indicare "True" la Proprietà ColumnHeads
    Questo consente di avere l'intestazione dei Record

    Senza dilungarmi oltre, considera che è possibile visualizzare più Campi (Colonne); ma, questo non era il nostro caso.
    Quello che voglio dire, è che settando opportunamente le varie Proprietà, si possono ottenere ottimi risultati.

    @ Gerardo Zuccalà
    Grazie della Tua Attenzione; cerco di essere abbastanza attento nel proporre il Codice VBA, ma, in questo caso il Codice che hai indicato, non appartiene al ComboBox.
    Era inserito in:
    - ThisWorkbook presente nel File originale e, come ho precisato in Risposta #4:

    @ GiuseppeMn, scrive:
    Come puoi vedere, non ho toccato la Tua impostazione iniziale...
    Ad onor del vero un Codice VBA appartiene al Controllo:
    Codice: 
    Option Explicit
    
    Private Sub ComboBox1_GotFocus()
        ComboBox1.Value = ""
    End Sub
    Serve solo ad azzerare il Valore di ComboBox1 quando, ComboBox, viene selezionato, l'ho considerato utile ma non è assoltuamente necessario; ho ritenuto potesse creare più confusione che beneficio.


    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  9. I seguenti 2 utenti hanno dato un "Like" a GiuseppeMN per questo post:


  10. #8
    L'avatar di aldomattana
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Modena
    Età
    46
    Messaggi
    184
    Versione Office
    Office 2007
    Likes ricevuti
    9
    Likes dati
    33
    Ciao GiuseppeMN,

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Tranquillo, Aldo, VBA ... non morde! :176: :167: :176:
    :246:

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Ho utilizzato il Controllo ActiveX Casella combinata (ComboBox); purtroppo non dispongo di Excel 2007.
    Per Excel 2013 è necessario:
    - Ribbon "Sviluppo"
    - dal Gruppo "Controlli" si sceglie "Inserisci"
    - Controlli ActiveX, quindi, "Casella combinata"
    - nelle Proprietà, inserire:
    - in ListFillRange il Range nel quale sono raggruppati i Record da selezionare
    ...quindi in ListFillRange posso mettere solo dei NOMI? Non un elenco di celle vero?
    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    - in LinkedCell la Cella nella quale inserire il Record selezionato
    ...
    Senza dilungarmi oltre, considera che è possibile visualizzare più Campi (Colonne)
    ... ??? cosa significa "è possibile visualizzare più Campi (Colonne)"? Cioè, puoi fare un esempio? Diventa una specie di "cerca.verticale"?

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    @Gerardo Zuccalà
    Grazie della Tua Attenzione; cerco di essere abbastanza attento nel proporre il Codice VBA, ma, in questo caso il Codice che hai indicato, non appartiene al ComboBox.
    Era inserito in:
    - ThisWorkbook presente nel File originale e, come ho precisato in Risposta #4:
    Già, @Gerardo Zuccalà è stato ingannato dalla mia distrazione: NON ho cancellato quel codice che non c'entra nulla prima di mandare il file excel ...
    se è ancora possibile, chiedo a Gerardo se può cancellare il codice inserito perchè potrebbe fare confusione ad altri utenti interessati a questo argomento.
    [/QUOTE]

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Ad onor del vero un Codice VBA appartiene al Controllo:
    Codice: 
    Option Explicit
    
    Private Sub ComboBox1_GotFocus()
        ComboBox1.Value = ""
    End Sub
    Serve solo ad azzerare il Valore di ComboBox1 quando, ComboBox, viene selezionato, l'ho considerato utile ma non è assoltuamente necessario; ho ritenuto potesse creare più confusione che beneficio.
    Anche secondo mè NON ha senso perchè come tocchi la casella ti cancella il contenuto e se tocchi per sbaglio dopo non hai più traccia del contenuto precedente: io ho eliminato subito quel codice :)
    Grazie, Aldo.
    PS: Se la "cosa" ti ha aiutato, mi piace se mi dai un "mi piace" - Se mi hai aiutato tu, ti ringrazio 2 volte ;-)

  11. #9
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Aldo;
    visto che questa è una Discussione alla quale avevo già contribuito, rispondo solo per completezza, poi, non interverrò più in altre nuove Discussioni in questo Forum, con buona pace di Tutti.

    @ aldomattana, chiede:
    ...quindi in ListFillRange posso mettere solo dei NOMI? Non un elenco di celle vero?
    Non è esattamente così, al posto di "Pagamenti", nella Proprietà "ListFillRange" avrei potuto tranquillamente scrivere:
    - H3:H28
    Il vantaggio di utilizzare "Nomi" è semplicemente che, gestendo "Nomi" con la Funzione "Scarto", è possibile implementare il Range H3:H28 aggiungendo nuovi Record dopo la Riga 28; il nuovo Range verrebbe aggiornato automaticamente, ma questo non credo sia il nostro caso.

    @ aldomattana, chiede:
    ...... ??? cosa significa "è possibile visualizzare più Campi (Colonne)"? Cioè, puoi fare un esempio? Diventa una specie di "cerca.verticale"?
    Non esattamente, avresti a disposizione un elenco che, oltre al Campo "Pagamenti previsti", potrebbe visualizzare anche i valori contenuti nei Campi:
    - 30gg
    - 60gg
    - 90gg
    - 120gg
    - 150gg
    - 180gg
    - 210gg
    - 240gg
    Nel File in allegato riporto l'esempio di quanto sopra; la gestione di ComboBox non necessita di Codici VBA.



    Rimango a disposizione nell'ambito di questa Discussione.

    Buon Lavoro e buona serata e un Caro Saluto a Tutti gli Amici.

    Giuseppe
    File Allegati File Allegati
    Ultima modifica fatta da:GiuseppeMN; 29/02/16 alle 13:11 Motivo: Errore nel Caricamento dell'allegato; riprovo.
    Windows XP Excel 2000 - Windows 10 Excel 2013

  12. I seguenti utenti hanno dato un "Like"


Discussioni Simili

  1. [Risolto] Indicizzare elenco in cella convalida dati
    Di Tonyvox nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 16/03/17, 23:01
  2. Cella con all'interno sia una formula che una convalida dati elenco
    Di Alessandro nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 16/09/16, 17:32
  3. Elenco Convalida Dati
    Di Cirino nel forum Domande su Excel in generale
    Risposte: 10
    Ultimo Messaggio: 02/03/16, 09:20
  4. Convalida dati da elenco per dati univoci dinamica
    Di tsunami1978 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 27/08/15, 00:52
  5. Convalida Dati e celle vuote in mezzo ad elenco
    Di Mudir nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 24/07/15, 10:08

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •