j'ai une base de données de X lignes.
Je souhaiterais afficher via un formulaire une partie de cette base en fonction de 2 critères (voire plus). Exemple: extraire le nombre de ligne si critère1=a et critère2=b
Je n'y arrive pas du tout.
Pourriez vous m'aider svp?
charte lue merci beaucoup. J'ai mis un exemple de fichier. Pour être précis je souhaiterais créer un formulaire pour extraire les l'ensemble des lignes ou code=9L et code1=774060 par exemple. Merci.
petite questions complémentaire: sur le fichier que je vous ai mis, si je veux ajouter des colonnes mais que je ne veux pas les filtrer (qu'elles apparaissent seulement dans le résultat), que faut-il modifier dans le code? merci
Non, le plus simple c'est de se passer d'UserForm, voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If FilterMode Then ShowAllData 'si la feuille est filtrée
Range("B2:E" & Range("B" & Rows.Count).End(xlUp).Row).AdvancedFilter xlFilterInPlace, [F2:F3]
End Sub
Elle se déclenche quand on modifie ou valide une cellule quelconque.
petite questions complémentaire: sur le fichier que je vous ai mis, si je veux ajouter des colonnes mais que je ne veux pas les filtrer (qu'elles apparaissent seulement dans le résultat), que faut-il modifier dans le code? merci
C'est simple :
* renseigner la dernière colonne dans la variable Td (sub Usf) au lieu de D dans Td = .Range("A1: D" & lg).Value
* ensuite dans les propriétés de la Listbox, il suffit d'indiquer le nb de colonnes à afficher à la ligne "ColumnCount" (pour l'instant 4)
P.
Private Sub Worksheet_Change(ByVal Target As Range)
If FilterMode Then ShowAllData
ListObjects(1).Range.AdvancedFilter xlFilterInPlace, [G2:G3]
End Sub