recherche multicritères & application de filtres

pandaexcel

XLDnaute Nouveau
Bonjour à toute et à tous !!!

Afin d'effectuer une recherche multicritère d'une base de donnée
en fonction de titre num de cd et année

la solution suivante m'est apparue :

je filtre la base de donnée
je copie sur feuille rech1
je filtre feuille rech 1 je copie dans feuille rech2 et j'efface feuille rech 1
je filtre feuille rech 2 je copie dans feuille rech1 et j'efface feuille rech 2

le souci est que je suis obliger de remplir les 3 champs
et j'aimerai que mon critere de filtre soit du genre *valeur de textbox1*
par exemple trouver tout les film de 2007 sur le cd 5
donc ne pas remplir forcement les 3 champs

voici mon code :

Private Sub CommandButton1_Click()

TITRE = TextBox1.Value
ANNEE = TextBox2.Value
NUM = TextBox3.Value

'Effectuer un tri afin de ranger les répertoires "A" à "Z" et le répertoire "0 à 9"

Sheets("Base de donnée").Select
Range("B1:ag2000").Select
Selection.Sort Key1:=Range("b2"), Order1:=xlAscending, Key2:=Range("c2"), Order2:=xlAscending, Key3:=Range("d2"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Range("a1:ag2000").Select
Selection.AutoFilter field:=2, Criteria1:=TITRE
Selection.Copy
Sheets("Rech 1").Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Base de donnée").Select
Selection.AutoFilter
Range("a1").Select
Sheets("Rech 1").Select
Range("a1:ag2000").Select

'Effectuer un tri afin de ranger le répertoire "Année"

Range("B1:ag2000").Select
Selection.Sort Key1:=Range("d2"), Order1:=xlAscending, Key2:=Range("b2"), Order2:=xlAscending, Key3:=Range("c2"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Range("a1:ag2000").Select
Selection.AutoFilter field:=4, Criteria1:=ANNEE
Selection.Copy
Sheets("Rech 2").Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Rech 1").Select
Selection.AutoFilter
Range("a2:ag2000").Select
Selection.ClearContents
Sheets("Rech 2").Select

'Effectuer un tri afin de ranger le répertoire "N° de support"

Range("B1:ag2000").Select
Selection.Sort Key1:=Range("e2"), Order1:=xlAscending, Key2:=Range("b2"), Order2:=xlAscending, Key3:=Range("c2"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Range("a1:ag2000").Select
Selection.AutoFilter field:=5, Criteria1:=NUM
Selection.Copy
Sheets("Rech 1").Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Rech 2").Select
Selection.AutoFilter
Range("a2:ag2000").Select
Selection.ClearContents
Sheets("Rech 1").Select
End Sub

Private Sub CommandButton2_Click()
Unload Me
PanneauP.Show 0
End Sub

la solution pourrait elle etre :

si textbox = vide
j'applique un filtre pour critere = "*"
sinon
j'applique un filtre pour critere = valeur textbox#

si oui comment écrire cette ligne de commande ???

merci d'avance de vous penchez sur mon petit probleme !!!
 

Gael

XLDnaute Barbatruc
Re : recherche multicritères & application de filtres

Bonjour PandaExcel, bonjour à tous,

Essaye en insérant le code suivant dans chaque partie:

Code:
If TITRE <> "" Then
Selection.AutoFilter field:=2, Criteria1:=TITRE
Else
ActiveSheet.ShowAllData
End If

@+

Gael
 

Discussions similaires

Réponses
3
Affichages
626

Statistiques des forums

Discussions
312 525
Messages
2 089 323
Membres
104 121
dernier inscrit
bobquad01