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 !!!
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 !!!