[Résolu] Userform pour filtre de recherche

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 !

Bonsoir,

Avec 10 comboboxs

Code:
Dim f, bd, TabBD(), ColCombo()
Private Sub UserForm_Initialize()
Set f = Sheets("bd")
B_tout_Click
Set bd = f.Range("A2:Z" & f.[A65000].End(xlUp).Row)  ' BD  (A adapter)
TabBD = bd.Value
ColCombo = Array(5, 6, 7, 8, 9, 10, 11, 12, 13, 14)  ' Colonnes comboBox (1 à 10 / A adapter)
For c = 1 To UBound(ColCombo) + 1: ListeCol c: Next c
For i = UBound(ColCombo) + 2 To 10: Me("combobox" & i).Visible = False: Me("label" & i).Visible = False: Next i
For i = 1 To UBound(ColCombo) + 1: Me("label" & i) = f.Cells(1, ColCombo(i - 1)): Next i
End Sub

Sub ListeCol(noCol)
  Set MonDico = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(TabBD)
  ok = True
  For Cb = 0 To UBound(ColCombo)
  ColBD = ColCombo(Cb)
  If Cb + 1 <> noCol Then
  If Not TabBD(i, ColBD) Like Me("comboBox" & Cb + 1) Then ok = False
  End If
  Next Cb
  If ok Then
  tmp = TabBD(i, ColCombo(noCol - 1))
  MonDico(tmp) = ""
  End If
  Next i
  MonDico("*") = ""
  temp = MonDico.keys
  Tri temp, LBound(temp), UBound(temp)
  'If noCol = 9 Then For i = LBound(temp) To UBound(temp): temp(i) = Format(temp(i), "dd/mm/yyyy"): Next
  Me("ComboBox" & noCol).List = temp
End Sub

Private Sub B_tout_Click()
  For i = 1 To 10: Me("combobox" & i) = "*": Next i
  On Error Resume Next
  ActiveSheet.ShowAllData
End Sub

JB
 

Pièces jointes

Dernière édition:
Bonjour.
Une version qui masque les lignes, puis démasque celles en correspondance avec les choix.
Mais on pourrait faire d'autres choses aussi. Les afficher dans une ListBox, par exemple. Si une seule ligne est recherchée en fin de compte, le plus classique c'est d'afficher dans des Label les infos en correspondance avec celle déjà affichées dans les ComboBox. Encore plus classique: les afficher dans des TextBox et permettre la modification, création et suppression de ligne.
 

Pièces jointes

Bonjour tout le monde,

@ChTi160 : Bonne remarque ! Merci
@BOISGONTIER : Merci beaucoup pour la solution proposée. Je l'ai testée et ça répondait à mon besoin.
@Dranreb : Je vais adopté ta solution qui me semble complète. Est-ce que ça fonctionnerait sur un tableau partagé ?
Egalement, je veux l'utiliser sur un autre tableau, qu'est-ce que je dois modifier dans la macro pour qu'elle fonctionne ? Je sais que l'userform doit être adapté tels que les titres...
 
Bonjour.
Je ne vois pas à priori pourquoi ça ne fonctionnerait pas dans un classeur partagé, mais sait-on jamais, il y a tellement de limitation inattendues sur de tels classeurs…
La plage de données à traiter n'est précisée qu'à un seul endroit: elle est spécifiée à la méthode Plage de l'objet ComboBoxLiées. Elle est ensuite connue partout comme sa propriété PlgTablo.
Note: Si seule la 1ère ligne est précisée, il en déduit du contexte l'ensemble.
 
Bonjour Dranreb,

J'aimerais si possible que le bouton "Valider" soit ajouté au userform de telle sorte que ça permet de garder le résultat affiché.

Le problème rencontré c'est que dès que je ferme le userform le résultat disparaît.



Merci pour ton aide.
 
Bonjour Dranreb,

En effet ton approche est intéressante. Mais dans mon cas ça me chamboule tout car le tableur est divisé par firme d'évaluation, et chaque firme a une formule précise qui calcule le résultat d'éval.

La solution serait de faire la même chose que le fichier exemple (Classeur (Archives)-test.xls si possible.

Je te remercie beaucoup pour ton aide.
 

Pièces jointes

Pourquoi ne pas afficher les lignes dans une ListBox ?
Sinon dans ma 1ère proposition, pour laisser les lignes masquées à la fermeture du UserForm il suffit d'inactiver la UserForm_QueryClose. Mais j'ai eu des problème à sa réouverture quand il y a des lignes masquées à la fin. Il faudrait faire un .Rows.Hidden = False au début, avant le CL.Actualiser. Mais sur toute la feuille car CL.PlgTablo n'est alors encore pas défini.
 
- 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

  • Question Question
XL 2019 User Form
Réponses
9
Affichages
314
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Réponses
16
Affichages
946
Réponses
2
Affichages
310
Réponses
30
Affichages
681
Retour