Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Filtrer les donnes d'une listbox

eCHO

XLDnaute Junior
Bonjour, je voudrais que vous m'aidiez à afficher les données d'une table qui se trouve sur une feuille nommée "quittance" dans une listbox2 de mon userform1.
J'ai déjà un bouton de recherche qui recherche des données sur une feuille "base" en fonction d'un texte saisi dans un Textbox "N_mag" et un combobox "cmb_suite".
J'ai réussi à afficher toutes les données de la feuille quittance, mais ce que je souhaite maintenant c'est de les filtrer en fonction de cmb_suite et n_mag.

VB:
ListBox2.ColumnCount = 20
ListBox2.ColumnWidths = "150;50;50;60;70;150"
ListBox2.RowSource = "QUITTANCE!A:G"

Merci
 
Solution
merci pour votre temps
j'ai régler le problème
VB:
Dim i As Integer
Dim ListCount1 As Integer
ListCount1 = ListBox2.ListCount - 1
If Trim(UCase(N_Mag)) <> "" Then
  For i = ListCount1 To 0 Step -1
    If UCase(Trim(ListBox2.List(i, 2))) <> UCase(Trim(N_Mag)) Or _
       UCase(Trim(ListBox2.List(i, 1))) <> UCase(Trim(Cmb_Suite.value)) Then
      ListBox2.RemoveItem (i)
    End If
  Next i
End If

eCHO

XLDnaute Junior
voici un exemple de fichier
J'ai également une question, pourquoi je ne parviens plus à ouvrir d'autres fichiers Excel lorsque celui-ci est déjà ouvert ?
 

Pièces jointes

  • test.xlsm
    414.2 KB · Affichages: 6

Oneida

XLDnaute Impliqué
Bonkour, ChTi160,
Ca roule?

eCHO:
Dans votre tableau de la feuilleDATABASE, colonne F que des "numeros" uniques donc pas utile de faire un filtre.
Pouvez expliquer?
Qui a ecrit le code de ce fichier?
 

eCHO

XLDnaute Junior
Bonkour, ChTi160,
Ca roule?

eCHO:
Dans votre tableau de la feuilleDATABASE, colonne F que des "numeros" uniques donc pas utile de faire un filtre.
Pouvez expliquer?
Qui a ecrit le code de ce fichier?
Merci @Oneida pour votre réponse. Le filtrage se fera sur la feuille "quittance". Je vous explique, le bouton de recherche cherche les données sur la feuille "database". Je souhaite également filtrer la listbox2 qui contient les données de la feuille "quittance".
 

Oneida

XLDnaute Impliqué
Re,
Tout a fait Thiery, pour moi rien a filtrer puisque les donnees colonne F database et C quittance sont unique pas de doublon ou plus.
Database et quittance doivent avoir les memes donnees ou pas, car y a quleques differences

Qui a ecrit le code?

Si, je comprends bien, la feuille database ne vous sert a rien, seul la feuille Quittance compte
 
Dernière édition:

eCHO

XLDnaute Junior
Les données de la "database" sont les mêmes que celles de la feuille "quittance", sauf que lorsque j'ai essayé de modifier les informations confidentielles, j'ai commis une erreur.
Le filtrage doit se faire en utilisant le textbox "n_mag" et le combobox "cmb_suite" dans l'userform1 pour filtrer les données de la feuille "quittance" dans les colonnes "n" et "suite". J'espère que vous avez compris.
 

Oneida

XLDnaute Impliqué
Re,
"database" sont les mêmes que celles de la feuille "quittance"
Ben non, il en manque dans Quittance, mais c'est vous qui voyez

utilisant le textbox "n_mag" et le combobox "cmb_suite"
Oui, mais il y a une seule ligne pour n_mag avec cmd_suite!

Vous ne repondez toujours pas a la question:
qui a ecrit le code VBA?
 

eCHO

XLDnaute Junior
VB:
Dim i As Integer
Dim ListCount1 As Integer
ListCount1 = ListBox2.ListCount - 1
If N_Mag <> "" Then
For i = ListCount1 To 0 Step -1
If InStr(1, ListBox2.List(i, 2), N_Mag) = 0 Or InStr(1, ListBox2.List(i, 4), cmb_suite.Value) = 0 Then
ListBox2.RemoveItem (i)
End If
Next i
End If
Ce code fonctionne parfaitement, mais il ne filtre pas les données exactes. Par exemple, si je cherche "55" dans N_Mag, il me trouve toutes les données qui contiennent "55", "552", "155", etc.
 

eCHO

XLDnaute Junior
merci pour votre temps
j'ai régler le problème
VB:
Dim i As Integer
Dim ListCount1 As Integer
ListCount1 = ListBox2.ListCount - 1
If Trim(UCase(N_Mag)) <> "" Then
  For i = ListCount1 To 0 Step -1
    If UCase(Trim(ListBox2.List(i, 2))) <> UCase(Trim(N_Mag)) Or _
       UCase(Trim(ListBox2.List(i, 1))) <> UCase(Trim(Cmb_Suite.value)) Then
      ListBox2.RemoveItem (i)
    End If
  Next i
End If
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…