Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche intuitive infructueuse

  • Initiateur de la discussion Initiateur de la discussion erics83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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

Dernière édition:
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…