menù a tendina e cerca nel testo

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Agro Giò
00lunedì 26 settembre 2016 17:42
Ciao!

avrei bisogno di cercare dei dati in un elenco di nomi convalidati.
nell'elenco sono presenti molti nomi che iniziano con una parte di nome comune, quindi non vorrei una combox che cerca dalla prima lettera, ma qualcosa per cercare dentro al testo.

Ho provato ad allegare un esempio,
grazie mille in anticipo!

alfrimpa
00lunedì 26 settembre 2016 17:54
Ciao Agro Giò

Con la Convalida Dati Elenco non si può fare quello che chiedi.

Con una casella combinata nel momento in cui inizi a digitare delle lettere la casella si posiziona sul primo elemento che inizia per le lettere inserite.

Prova a spiegare meglio quello che vuoi fare.
Agro Giò
00martedì 27 settembre 2016 08:50
Ciao Alfredo,

avrei bisogno che digitando nella cella fosse possibile cercare nei dati convalidati esattamente come se fosse un filtro, cioè, in un elenco di dati "a-ab-b-ba-c", se cerco "b" vorrei che si vedesse un elenco ristretto con "ab-b-ba".

altrimenti potrebbe andarmi bene l'idea di inserire delle righe e nasconderle, ma non riesco a capire se posso mettere dei filtri di excel uno sotto l'altro (non all'inizio della colonna, ma su una riga intermedia).

spero di essere stata chiara, intanto grazie!
alfrimpa
00martedì 27 settembre 2016 11:07
Ciao Giò

Come ti dicevo ieri quello che hai chiesto non si può fare con una Convalida Dati Elenco ma si riesce quello che vuoi mediante ricorso ad una userform (in sostanza una maschera) ed al VBA.

Quella che ti propongo è probabilmente una soluzione un po' "complicata" (ma solo dal punto di vista della sua comprensione ma molto facile da usare. Ovviamente è solo un primo approccio che andrà adattato al tuo caso reale che non credo sia semplice come l'esempio che hai allegato.

Ti spiego come funziona il tutto.

1) Quando sul foglio1 ti posizioni su una delle celle gialle dell'intervallo G9:G15 ti si apre una maschera
2) All'interno di questa maschera (userform) ci sono una casella di testo (textbox) e ed una casella di riepilogo (listbox) una sull'altra
3) Inizialmente nella casella di riepilogo vedrai tutte le voci ma quando inizierai a digitare delle lettere nella casella di testo (quella superiore) vedrai che nella casella di riepilogo via via compariranno le sole voci che contengono le lettere digitate
4) Quando avrai "isolato" nella casella di riepilogo (quella inferiore) la voce che ti interessa basta che ci clicchi con il mouse ed automaticamente tale voce verrà riportata nella cella attiva (ossia quella selezionata inizialmente) la voce prescelta.

Solo per pura curiosità ti riporto il codice VBA che gestisce tutto questo

vb
Option Compare Text

Private sh As Worksheet

Private Sub ListBox1_Click()
ActiveCell.Value = UserForm1.ListBox1.Value
UserForm1.TextBox1.Value = ""
UserForm1.Hide
End Sub

Private Sub TextBox1_Change()
Call mCaricaListBox("FiltraDati")
End Sub

Private Sub UserForm_Initialize()
    Set sh = ThisWorkbook.Worksheets("Foglio1")
    Call mCaricaListBox("CaricaDati")
End Sub


Private Sub mCaricaListBox(ByVal s As String)

    Dim lRiga As Long
    Dim lng As Long
    
    With sh
        lRiga = .Range("b" & .Rows.Count).End(xlUp).Row
    End With
    
    With Me.ListBox1
        If s = "CaricaDati" Then
            For lng = 4 To lRiga
                .AddItem (sh.Range("b" & lng).Value)
            Next
        ElseIf s = "FiltraDati" Then
            .Clear
            For lng = 4 To lRiga
                If InStr(sh.Range("b" & lng).Value, Me.TextBox1.Text) Then
                    .AddItem sh.Range("b" & lng).Value
                End If
            Next
        End If
    End With
    
End Sub


Private Sub UserForm_Terminate()
    Set sh = Nothing
End Sub


Spero di essere stato chiaro e se hai domande chiedi pure.
Agro Giò
00martedì 27 settembre 2016 11:25
è perfetto, grazie mille!

ora devo solo capire come fare per attivarlo nel file che mi serve (argh!)

;-)
alfrimpa
00martedì 27 settembre 2016 11:30
Ciao Giò

Potresti allegare un file di esempio (senza dati sensibili) ma che sia strutturalmente uguale al tuo originale.

Io ti inserirò il tutto (modificando il codice se necessario) e tu dovrai solo sostituire i dati di fantasia con quelli reali.
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 03:26.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com