remplir une listbox en fonction de plusieurs critèresde tri

supercrapaud

XLDnaute Occasionnel
Bonjour,

Je reviens vers vous car je n'arrive pas à faire ce que je souhaite. J'aimerais créer une listbox qui se remplisse en fonction de "critères" de tri. Je vous joins un fichier pour voir.

Voilà ce que je voudrais que ma listbox affiche : uniquement des informations en fonction de plusieurs critères. La formule serait
Pour chaque données contenues dans la liste de a2 jusqu'à la fin de la colonne a
- si a2 décalé de 2 = x2 alors
- si a2 décalé de 7 = "A" alors
la listbox contient les donnnées de a2 jusqu'à k2
prochaine ligne. Etc en boucle...
avec la listbox donc les titres de colonnes correspondent à ceux du tableau. J'ai essayé par tous les moyens mais pas moyens de trouver, même sur le forum. Si les pros pouvaient m'aider cela serait super. D'avance merci.
 

Pièces jointes

  • test.zip
    22.5 KB · Affichages: 50
  • test.zip
    22.5 KB · Affichages: 49
  • test.zip
    22.5 KB · Affichages: 50

kjin

XLDnaute Barbatruc
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonsoir,
On ne peut pas utiliser directement la propriété RowSource de la ListBox, donc pas de titres de colonnes et le nombre de colonne maxi dans ce cas est 10 (sinon copier le résultat du filtre sur une feuille...)
Donc je te propose de supprimer la ListBox au profit d'une ListView
Code:
Private Sub UserForm_Initialize()
IniListview
End Sub

Sub IniListview()
Dim i&, j&
With ListView1
    .ListItems.Clear
    With .ColumnHeaders
        .Clear
        For i = 1 To 11
            .Add , , Cells(1, i), 60
        Next
    End With
    .View = lvwReport
    .FullRowSelect = True
    .Gridlines = True
    For i = 2 To [A65000].End(xlUp)
        x = UCase(Cells(i, 3)) = "X2"
        y = UCase(Cells(i, 9)) = "A"
        If x And y Then
            .ListItems.Add , , Cells(i, 1)
            For j = 2 To 11
                .ListItems(.ListItems.Count).ListSubItems.Add = Cells(i, j)
            Next
        End If
    Next
End With
End Sub
A+
kjin
 

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonjour et merci pour la réponse aussi rapide.

Je n'arrive pas à afficher les infos dans la lkiste view. J'ai une message qui apparaît en indiquant que le projet ou la bibliothèque est introuvable et me souligne lnwreport. Comment solutionner cela ? D'avance merci.
 

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonsoir,
OK, ai trouvé. Mais j'ai essayé de modifier la macro pour la comprendre mais cela bugge encore et je ne vois pas pourquoi. Pardon et sutout merci de m'aider.
 

Pièces jointes

  • test.zip
    21.6 KB · Affichages: 78
  • test.zip
    21.6 KB · Affichages: 54
  • test.zip
    21.6 KB · Affichages: 57

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonjour,

Pardon Kjin, je ne voulais vraiment pas dire que cela n'était pas normal parce que j'avais un message d'erreur. Je voulais juste dire que j'avais déjà regardé des trucs et fait des modifs y compris celle sur ton conseil et que je ne comprenais pas pourquoi cela ne marchait pas. Je regarderais cela ce soir mais d'avance merci.
 

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonsoir,

Cela correspond exactement à ce que je cherche donc merci beaucoup. Par contre il y a un truc que je ne comprends pas. J'ai créé une listview et recopié le code (même si je ne le comprends pas tout à fait) mais je ne pige pas quelque chose. Lorsque mon formulaire est activé, alors la fenêtre bouge et vient se placer tout en haut à gauche de la frame de mon formulaire. Y'a-t-il quelque chose que je dois coher car lorsque je vérifie les 2 formulaire, je ne vois pas de différence dans les propriétés de ma listview. En te remerciant par avance.
 

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonjour,

Voilà mon formulaire. lorsque j'écris aussi tard je ne pense pas à tout dsl. Donc en fait voilà le fichier. j'ai volontairement laissé comme cela pour qu'on puisse se rendre compte du truc. Et je n'arrive pas à recréer le code pour que ça marche :'( Bref si vous pouvez m'aider cela serait super.
 

Pièces jointes

  • superc2.zip
    29.9 KB · Affichages: 71

kjin

XLDnaute Barbatruc
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonsoir supercrapaud,
Ce soir il faut aller te coucher tôt....
C'est bien bô de modifier le nom des variables (je ne vois pas l'intérêt mais bon...), mais dans ce cas il faut il faut le faire partout
Tu écris
Code:
For m = 2 To ...
et ensuite
Code:
x = UCase(Cells(i, 3)) = "x2"
en oubliant de remplacer i par m ! idem dans la suite du code
En outre, cette dernière ligne, transforme le texte de la cellule en majuscule, donc le résultat ne peut pas être "x2" mais bien "X2" (cf le code que je t'ai fourni plus ô)
Donc avec tout ce que je viens de dire
Code:
Private Sub CommandButton1_Click()
Dim i&, m&, n&
With ListView1
    .ListItems.Clear
    With .ColumnHeaders
        .Clear
        For i = 1 To 11
            .Add , , Cells(1, i), 60
        Next
    End With
    .View = lvwReport
    .FullRowSelect = True
    .Gridlines = True
    For m = 2 To [A65000].End(xlUp)
        x = UCase(Cells(m, 3)) = "X2"
        y = UCase(Cells(m, 9)) = "O"
        If x And y Then
            .ListItems.Add , , Cells(m, 1)
            For n = 2 To 11
                .ListItems(.ListItems.Count).ListSubItems.Add = Cells(m, n)
            Next
        End If
    Next
End With
End Sub
Pour l'autre question, désolé mais chez moi, la listview ne manifeste pas d'envie de changer d'air... :D
A+
kjin
 

supercrapaud

XLDnaute Occasionnel
Re : remplir une listbox en fonction de plusieurs critèresde tri

Bonsoir et merci de répondre aussi vite. Bon OK je suis très loin de ton niveau. Je sais pas pourquoi chez moi elle se balade mais ça bousille toute la mise en page de mes formulaires (voilà pourquoi mes variables ont changé). Mais en tout cas je vais continuer à chercher. Mais en tout cas merci de ton aide.
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
390
Réponses
18
Affichages
722

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux