Affichage dans textbox après filtre automatique par listbox

akibodo

XLDnaute Junior
Bonjour à tous,

Je cherche un moyen de récupérer une plage de données résultant d'un filtre automatique pour la placée dans une listbox.

Voici le code que j'utilise actuellement mais il me donne les premières même filtré et lorsque j'essaye d'appliquer la méthode xlCellTypeVisible j'ai des erreurs dans tous les sens.

Private Sub ComboBox1_Change()
Dim DerCri
Dim pl
Dim Cell As Range, Plage As Range
DerCri = 0
Worksheets("datas1").Range("A1").AutoFilter Field:=1, Criteria1:=ComboBox1.Value

Me.Controls("ComboBox2").Clear
Set mondico = CreateObject("Scripting.Dictionary")
With Sheets("datas1")
DerLig = .[A65000].End(xlUp).Row
For Each Cell In .Range(.Cells(2, 2), .Cells(DerLig, 2)).SpecialCells(xlCellTypeVisible)
If Not mondico.Exists(Cell.Value) Then mondico.Add Cell.Value, Cell.Value
DerCri = DerCri + 1
Next Cell
End With

temp = mondico.Items
Controls("ComboBox2").List = temp

Controls("ComboBox2").Enabled = True

With Sheets("datas1")
DerCri1 = .[A65000].End(xlUp).Row
If DerCri > 1 Then
Set pl = .Range("A2:E" & DerCri + 1)
pl.Name = "resultat"
Me.ListBox1.RowSource = "resultat"
Me.Label1 = "Il y a : " & DerCri & " résultat(s)"
Else
Me.Label1 = "Pas de données correspondantes"
End If
End With
End Sub

Merci d'avance pour vos lumières.
 

pierrejean

XLDnaute Barbatruc
Re : Affichage dans textbox après filtre automatique par listbox

bonjour akibodo

Je me suis un peu battu avec le dictionary ...............
puis je me suis rabattu sur la collection

Vois si tu peux t'inspirer de ceci
 

Pièces jointes

  • akibodo5.zip
    12.5 KB · Affichages: 260

akibodo

XLDnaute Junior
Re : Affichage dans textbox après filtre automatique par listbox

Re le forum, Pierrejean,

En faite j'ai pas vraiment tout compris dans ton code. Et surtout je ne voix pas trop comment l'intégrer au code que j'ai fais jusqu'à maintenant.

Comme un exemple concret vos mieux qu'un long discour je met en pièce jointe le fichier sur lequel je travail. J'espère qu'il vous perméttra de mieux voir se vers quoi j'essaye d'arriver à faire.

Une suggestion, et surtout une question que je pose c'est si il est possible de faire que toutes les combobox soit remplies dès le début et que je puisse faire un choix dans le désordre, voir même ne pas être obligé de renseigner une combobox.

J'espère que ça vous aidera, merci d'avance.
 

Pièces jointes

  • Classeur1.zip
    30 KB · Affichages: 144
  • Classeur1.zip
    30 KB · Affichages: 148
  • Classeur1.zip
    30 KB · Affichages: 146

Bebere

XLDnaute Barbatruc
Re : Affichage dans textbox après filtre automatique par listbox

bonjour Akibodo,Pierre-Jean
essai pour alimenter les 4 combobox
une partie de solution combobox1 et listbox
rowsource doit être dans une feuille(voir feuil1)
questions
alimenter chaque combobox avec liste sans doublons de chaque colonne
pour la suite tu veux alimenter la listbox à partir de chaque combobox
ou explique
à bientôt
 

Pièces jointes

  • akibodo.zip
    22.1 KB · Affichages: 151

akibodo

XLDnaute Junior
Re : Affichage dans textbox après filtre automatique par listbox

Re le forum, Pierrejean, Bebere,

En faite je voulais éviter le copier/coller sur une nouvelle feuille pour augmenter la rapidité en vu du faite que le nombre de Références peut être de l'odre de 600+ .

Je suis pas sûr d'avoir compris le sens de ta question mais je vais essayé d'y répondre au mieux.

Le principe serais le suivant, à l'initialisation de la Userform, toutes les ComboBox sont alimentées par les données de leurs colonnes respectivent. (ListBox1 = colonne B etc ...)

Là l'utilisateur peut choisir de faire un tri sur (par exemple) la combobox 2, se qui fais le tri par rapport à ce critère et à ce moment là réactualise toutes les combobox restantes ainsi que le nombres de résultats. Puis l'utilisateur choisi un deuxième critères et là les combobox qui reste s'actualisent de nouveau.

Le but est d'arrivé à avoir plus qu'une référence mais laisse quand même la possibilitée d'en avoir plusieurs si l'utilisateur n'est pas sûr d'un critère. (à ce moment là il ne le renseigne pas et voit dans la listbox les différents choix qu'il lui reste).

Une petite subtilitée qui me bloque aussi c'est de pouvoir choisir par exemple dans la combobox1 le critère A , puis finalement le changé pour C et que celà s'actualise (dans les autres combobox ainsi que dans la listbox), également sur le même principe, choisir dans la combobox1 le critère A puis en combobox2 le critère D puis finalement (changement d'avis, sont pénible ces utilisateurs ...) changer la combobox2 changer pour C (réactualisation) mais ne pas pouvoir en combobox1 avoir un autre choix que A puisque filtré par le combobox2 ( En B il n'y a pas de correspondance avec le critère C).
Au passage, avoir les combobox vide au démarrage m'arrangerais.


Je suis pas sûr d'être très clair donc je vais arrété là pour les explications ...

Mes pistes sont les suivantes,
remplir toutes les combobox en Private Sub UserForm_Initialize(),
utilisé une procédure Sub pour l'actualisation appelé à chaque changement d'une combobox.

Voilà en espérant répondre aux questions,

Merci d'avance pour vos lumières.
 

Bebere

XLDnaute Barbatruc
Re : Affichage dans textbox après filtre automatique par listbox

re Akibodo,Pierre-Jean
une version sans filtre
si la sélection d'une combobox change,refaire sélection(s) dans les suivante(s)
à bientôt
 

Pièces jointes

  • akibodoV1.zip
    26 KB · Affichages: 115

akibodo

XLDnaute Junior
Re : Affichage dans textbox après filtre automatique par listbox

Re le forum, Pierrejean, Bebere,

Merci pour cette réponse Bebere,

J'arrive à peu près à suivre le cheminement mais il y a encore des trucs que je comprend pas.

Pour commencer j'ai rendu actif ce bout de code :

Code:
IniCbx1
    ComboBox1.ListIndex = [COLOR="Red"]-1[/COLOR]
    Search1 = ComboBox1
Avec "-1" au lieu de "0" pour que la 1ère listbox soit vide au démarrage.

Mais sinon est-il possible que la listbox se remplisse dès le 1er critère choisi et s'actualise à chaque nouveau critère sélectionné ?

Egalement, je ne comprend pas pourquoi les combobox 2 et 3 s'actualise bien dans le sens où elles proposent que les choix possible par rapport au critères mis dans les combobox en amont alors que la 4ème n'a pas l'air de réagir de la même façon puisqu'elle peut proposer des résultats non existant ?
 

Bebere

XLDnaute Barbatruc
Re : Affichage dans textbox après filtre automatique par listbox

bonjour Akibodo,Pierre-Jean,le forum
une autre version
à bientôt
 

Pièces jointes

  • akibodoV2.zip
    26.8 KB · Affichages: 118
  • akibodoV2.zip
    26.8 KB · Affichages: 115
  • akibodoV2.zip
    26.8 KB · Affichages: 110

akibodo

XLDnaute Junior
Re : Affichage dans textbox après filtre automatique par listbox

Re le forum, Pierrejean, Bebere,

Merci pour ce nouveau code.

Dans Private Sub ComboBox1_Change() j'ai rajouter ça :
Code:
With ComboBox3
    .Clear
End With
With ComboBox4
    .Clear
End With

et dans Private Sub ComboBox2_Change() ça :
Code:
With ComboBox4
    .Clear
End With

Ainsi si je change la combobox2 la 3 et 4 se remètte à zéro et ne garde pas une valeur "impossible" et idem si je change la combobox1.

Est-il possible de récupérer le Nbre de résultats pour l'afficher en Label1 ?

Au départ j'été parti sur les filtres automatique pour pouvoir sélectionné les critères dans le désordre (c'est à dire que les combobox soient toutes remplies dès le début et ce "vide"/"s'actualise" en fonction des critères sélectionnés dans les différentes combobox) là je suis obligé de passé par la 1ère puis la 2ème etc. Est-il possible d'y remédier ?

@ bientôt
 

Bebere

XLDnaute Barbatruc
Re : Affichage dans textbox après filtre automatique par listbox

bonjour Akibodo,le forum
avec clear tu vides ls combobox,fais combobox.value="" ou combobox.listindex=-1
et tu auras la même chose qu'avec le filtre
à bientôt
 

Pièces jointes

  • akibodoV2.zip
    27.5 KB · Affichages: 113
  • akibodoV2.zip
    27.5 KB · Affichages: 112
  • akibodoV2.zip
    27.5 KB · Affichages: 119

akibodo

XLDnaute Junior
Re : Affichage dans textbox après filtre automatique par listbox

Re le forum, Bebere,

Merci pour cette modif et les explications, mais j'ai toujours le souci de ne pas pouvoir faire mon 1er choix dans la combobox 3 ou 4 ou 2 , dans le désordre quoi.

Y a t il un moyen de les remplirent toutes dès le début ?

J'ai essayé mais ça me fais des bugs :/

Merci d'avance,

@ bientôt.
 

Discussions similaires

Réponses
2
Affichages
118

Statistiques des forums

Discussions
312 242
Messages
2 086 528
Membres
103 243
dernier inscrit
SAH