XL 2016 Cellule recherche avec listbox dynamique

  • Initiateur de la discussion Initiateur de la discussion angeck
  • 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 !

angeck

XLDnaute Nouveau
Bonjour,

Je cherche depuis hier soir mais je n'arrive pas à le faire, je me permets donc de vous demander votre aide.

Je souhaite lorsque que je clique sur ma cellule A8 et commence à taper un mot une listbox s'ouvre et les résultats qui se trouvent dans les cellules A10 à A"je ne sais pas combien" apparaissent. Quand j'ai fini (sélectionné la ligne de la listbox ou validé le mot entrée dans A8) je souhaite que la listbox disparaisse.

Est-ce faisable finalement ?

Merci pour votre aide.
 
Merci pour cette réponse. J'ai déjà créé une liste déroulante dans ma cellule A8 mais j'ai 800 lignes différentes avec des noms qui sont des fois très proches donc je cherche plus à faire ceci avec la listbox qui s'enlève.
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.

Cordialement,
 
Re-bonjour,

J'ai réussi à activer un code dans mon fichier mais il ne fonctionne pas correctement.

Quand je tape des lettres rien ne se passe ou ça m'envoie directement à la ligne en dessous alors que je n'ai même pas tapé de lettre lui appartenant.

Ci-dessous le code utilisé avec mes modifications de ligne, fichier et classeur :

Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A8:A8], Target) Is Nothing And Target.Count = 1 Then
a = Sheets("Liste Enseigne").Range("Enseigne").Value
Me.ComboBox1.List = a
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
'If Target <> "" Then SendKeys "{esc}"
'Me.ComboBox1.DropDown ' ouverture automatique au clic dans la cellule (optionel)
Else
Me.ComboBox1.Visible = False
End If
End Sub

Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" Then
Set d1 = CreateObject("Scripting.Dictionary")
tmp = UCase(Me.ComboBox1) & "*"
For Each c In a
If UCase(c) Like tmp Then d1(c) = ""
Next c
Me.ComboBox1.List = d1.keys
Me.ComboBox1.DropDown
End If
ActiveCell.Value = Me.ComboBox1
End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.ComboBox1.List = a
Me.ComboBox1.Activate
Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub

Hier j'ai demandé de l'aide pour un code qui est aussi sur cette cellule et donc également le code donné par Robert (https://www.excel-downloads.com/threads/macro-selectionner-resultat-recherchev.20010761/)

Peut-il y avoir un court-circuit ? Merci de votre aide.

Cordialement,
 
Après différents tests la macro de Boisgontier fonctionne et celle de Robert aussi mais les 2 ne fonctionnent pas en même temps.

Si quelqu'un sait comment conbiner la macro ci-dessus et celle ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range
Rows("10:1000").Select
Selection.Rows.AutoFit

If Target.Address <> "$A$8" Then Exit Sub
If Target.Value = "" Then Exit Sub
Rows("8:8").Select
Selection.Rows.AutoFit

Set R = Columns(1).Find(Target.Value, Range("A8"), xlValues, xlWhole)
If Not R Is Nothing And R.Address <> "$A$8" Then ActiveWindow.ScrollRow = R.Row
R.Select
End Sub

Je vous en remercie.
 
- 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

Réponses
8
Affichages
2 K
Retour