Amélioration de ma liste déroulante avec saisie semi-automatique

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 391
Appréciations reçues : 91
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 11 juin 2019, 21:39

Bonsoir,,

>il ne prend en compte que les premiers caractères du premier mot inscrit dans la base de donnée


Il suffit de remplacer tmp = UCase(Me.ComboBox1) & "*" par tmp = "*"& UCase(Me.ComboBox1) & "*"

On peut avoir une recherche intuitive multi-mots:


http://boisgontierjacques.free.fr/fichiers/Formulaire/Liste_deroulante_intuitive_multi_criteresV2.xls
Dim Choix1()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B6:B25], Target) Is Nothing And Target.Count = 1 Then
    Set f = Sheets("bd")
    Set Rng = f.Range("A2:A" & f.[A65000].End(xlUp).Row)
    Choix1 = Application.Transpose(Rng)
    Me.ComboBox1.List = Choix1
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Target.Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
  Else
    Me.ComboBox1.Visible = False
  End If
End Sub

Private Sub ComboBox1_Change()
 If Me.ComboBox1 <> "" Then
     mots = Split(Trim(Me.ComboBox1), " ")
     Tbl = Choix1
     For i = LBound(mots) To UBound(mots)
       Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
     Next i
     Me.ComboBox1.List = Tbl
     Me.ComboBox1.DropDown
 End If
End Sub

Private Sub ComboBox1_click()
   ActiveCell.Value = Me.ComboBox1
End Sub
Boisgontier
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message