XL 2010 Aide sur recherche dans un formulaire vba

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

doriandtel

XLDnaute Nouveau
Bonjour,

Je vous explique mon problème,

j'ai en ce moment un formulaire qui fonctionne très bien.
j'ai crée un 2em Userform qui va me servir de recherche.
J'ai déjà un code, mais il ne fonctionne pas parfaitement

Ce que j'aimerais c'est avoir une liste déroulante avec les termes suivant pour ma recherche.(ComboBox1)

c'est valeur suivante pourront être en douche en triples, même en 10 fois:
mais il faut qu'il sois afficher qu'une seul fois dans ma combobox1

DEVIS A FAIRE
A FAIRE REPARATION
ATTENTE REPONSE
ATTENTE PIECE
A VENIR CHERCHER
TERMINE / SORTIE

Exemple si je clique sur devis a faire, le résultat qui doit s'afficher dans ma lisbox1 sont les colonnes, AK - AM - B et AN, de toutes les lignes de la feuille.
Comme sa je sais les devis que j'ai a faire... et tous le reste.

Voila voila. sa fais 1 semaine que je cherche :/

voici mon code actuel:


Code:
Dim f As Worksheet, TblBd, Tb(), d, i As Long, c
Private Sub UserForm_Initialize()
 
Set f = Sheets("DTEL")
  Set d = CreateObject("Scripting.Dictionary")
  TblBd = f.Range("A5:AN" & f.Range("A" & f.Rows.Count).End(xlUp).Row)
  ReDim Tb(1 To UBound(TblBd, 1))
  For i = 1 To UBound(Tb, 1)
    Tb(i) = TblBd(i, 39)
  Next i
  
  For i = 1 To UBound(Tb)
    For Each c In Tb: d(c) = "": Next c
  Next i
  Me.ComboBox1.List = d.keys
 
 ' Me.ComboBox1 = ActiveSheet.[A1]

End Sub

Private Sub ComboBox1_click()
 ListBox1.Clear
 j = 0
 For i = LBound(TblBd) To UBound(TblBd)
   If (InStr(TblBd(i, 39), ComboBox1) > 0 And TblBd(i, 5) Like ComboBox2) _
     Or (Me.ComboBox1 = "*" And TblBd(i, 5) Like ComboBox2) Then
      ListBox1.AddItem
      ListBox1.List(j, 0) = TblBd(i, 2)
      ListBox1.List(j, 1) = TblBd(i, 9)
      ListBox1.List(j, 2) = TblBd(i, 40)
      ListBox1.List(j, 3) = TblBd(i, 37)
      j = j + 1
   End If
  Next i
End Sub
 
- 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
40
Affichages
2 K
Réponses
10
Affichages
760
Réponses
3
Affichages
600
Réponses
3
Affichages
464
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
504
Retour