recherche intuitive infructueuse

erics83

XLDnaute Impliqué
Bonjour,

Grace aux tutos de JB, j'ai "repris" un code qui permet de faire une recherche intuitive : dans mon cas, un textbox12 où j'écris le nom, une listbox (rechercheactions) qui se met à jour en fonction des lettres que je tape, une "Liste" qui comprend les éléments déjà enregistrés.

Mais.....(et je pense que c'est tout simple, mais malgré plusieurs essais, pas trouvé.....)

comment faire disparaitre (Me.Rechercheactions.Visible = false) si les lettres que je tape ne sont pas dans ma "Liste".......et donc que je crée une nouvelle action...?

En clair, quand je tape dans Textbox12 un nom et que la recherche est infructueuse, comment faire pour "retenir" le nom tapé et enlever la listbox Rechercheactions......

Code:
Me.Rechercheactions.Clear
   Me.Rechercheactions.Visible = True


   For i = LBound(Liste) To UBound(Liste)

     If UCase(Liste(i)) Like "*" & UCase(Me.TextBox12) & "*" Then
   
        On Error Resume Next
        Me.Rechercheactions.AddItem Liste(i)
        On Error GoTo 0
             
     End If
       
   Next i

Merci pour votre aide,
 
Dernière édition:

erics83

XLDnaute Impliqué
Bonjour JB,

Effectivement, c'est plus pratique avec un fichier test.....excusez moi....

Donc mon "problème" est lorsque je tape "Action 10" (par exemple, ou "Eric"), comme il n'est pas dans ma "Liste", je souhaiterai que la listbox Rechercheactions disparaisse.....

Merci pour votre aide,
Eric
 

Pièces jointes

  • Fichier test.xlsm
    20.3 KB · Affichages: 19
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Code:
Dim a()
Sub UserForm_Initialize()
  Set f = Sheets("feuil1")
  b = Application.Transpose(f.Range("L2:L" & [L65000].End(xlUp).Row))
  Set d = CreateObject("scripting.dictionary")
  For Each c In b:   d(c) = "":  Next c   ' élimination des doublons
  a = d.keys
  Me.ListBox1.List = a
End Sub

Private Sub Textbox1_Change()
  choix = Filter(a, Me.TextBox1.Text, True, vbTextCompare)
  If UBound(choix) > -1 Then
    Me.ListBox1.List = choix
    Me.ListBox1.Visible = True
  Else
    Me.ListBox1.Visible = False
  End If
End Sub

Boisgontier
 

Pièces jointes

  • Copie de Fichier test-1.xlsm
    24.3 KB · Affichages: 20
Dernière édition:

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
296

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16