Microsoft 365 Recherche rapide

rubis54

XLDnaute Occasionnel
Bonsoir tout le monde,

En pièce jointe, un tableau qui sert comme base de données. J'aimerai mettre en cellule "H2" une combobox dans laquelle je taperai les premières lettres de l'article recherché et une fois valider avec la touche "entrée" je voudrai qu'il recherche l'article dans la base de données à gauche colonne "B" et qu'il l'affiche en première ligne ou de façon à pouvoir le voir dans les premières lignes du tableau.

Auriez vous une proposition ?

Merci d'avance

Cdt Rubis54
 

Pièces jointes

  • CHAUFFAGE1.xlsm
    23 KB · Affichages: 4
Solution
Re,

C'est certainement que vous avez initialisez la propriétés ListFillRange, fournissant des données. :
Mettez également la propriété 'MatchEntry' à 2 - fnMatchEntryNone

1632996002074.png


Cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici une proposition, avec un tableau structuré nommé "Tableau1"
Pour que la ligne d'entête et la combobox restent en ligne 1 j'ai figé cette dernière.

Cordialement
 

Pièces jointes

  • CHAUFFAGE1.xlsm
    38.5 KB · Affichages: 5

rubis54

XLDnaute Occasionnel
Bonjour,

Voici une proposition, avec un tableau structuré nommé "Tableau1"
Pour que la ligne d'entête et la combobox restent en ligne 1 j'ai figé cette dernière.

Cordialement
Bonjour Hasco,

Merci pour ta proposition, je l'ai mise en place et lorsque je selectione avec le bouton du combobox il m'affiche les produits de mon stock je peux alors en choisir un et il s'affiche en haut comme chez toi. Mais si je fais une recherche avec les premières lettres il m'affiche "erreur ! Permission refusée"
je te fais une copie des codes dans ma feuille stock ci-dessous.
Merci pour me dire ce qui va pas.
A+

"Private Sub Worksheet_Activate()
If [Tableau2].ListObject.AutoFilter Is Nothing Then
[Tableau2].AutoFilter
End If
End Sub

Option Explicit
Dim Valeurs

Sub initValeurs()
Valeurs = Application.Transpose(Range("Tableau2[Désignation]"))
End Sub

Private Sub ComboBox1_Change()
Dim idx As Variant
If Me.ComboBox1 <> "" Then
Valeurs = Application.Transpose(Range("Tableau2[Désignation]"))
idx = Application.Match(Me.ComboBox1, Valeurs, 0)
If IsError(idx) Then
Me.ComboBox1.List = Filter(Valeurs, Me.ComboBox1.Text, True, vbTextCompare)
Me.ComboBox1.DropDown
Else
Application.Goto Range("Tableau2").Rows(idx), True
End If
End If

End Sub"
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

C'est certainement que vous avez initialisez la propriétés ListFillRange, fournissant des données. :
Mettez également la propriété 'MatchEntry' à 2 - fnMatchEntryNone

1632996002074.png


Cordialement
 
Dernière édition:

Discussions similaires

Réponses
10
Affichages
505
Réponses
13
Affichages
565

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260