J'ai un formulaire avec 4 combobox.
L'utilisateur remplit 1, 2, 3 ou 4 combobox.
Ma requ=EAte va regarder dans un fichier =E0 4 colonnes les associations
contenant les valeurs demand=E9es.
Par exemple si combo1=3Dtoto, je dois ressortir tous les quadruplets
suivants:
toto-x-x-x
x-toto-x-x
x-x-toto-x
x-x-x-toto
Comment faire pour que ma requ=EAte balaye les 4 colonnes ?
Ca se complique si j'ai deux valeurs sur les 4. Si combo1=3Dtoto et
combo2=3Dpapa, je dois ressortir
toto-papa-x-x
toto-x-papa-x
toto-x-x-papa
x-toto-papa-x
x-toto-x-papa
x-x-toto-papa
papa-toto-x-x
...
J'avais fait un filtre mais qui ne marche que si les 4 combo sont
remplis:
Rows("2:2").Select
Selection.AutoFilter
If ComboBox1<> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=3D1, Criteria1:=3DComboBox1.Value
If ComboBox2 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=3D2, Criteria1:=3DComboBox2.Value
If ComboBox3 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=3D3, Criteria1:=3DComboBox3.Value
If ComboBox4 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=3D4, Criteria1:=3DComboBox4.Value
Y a-t-il un moyen pour faire un filtre multicolonne ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Tu peux utiliser le filtre avancé comme ceci. L'exemple utilise 4 valeurs différentes pour chacun des combobox.
Dans la formule si tu utilises "AND" tu obtiendras seulement les lignes où chacun des critères est respecté. Si tu veux extraire toutes les occurrences des critères dans chaque colonne, change "And" pour "OR"
'------------------------------------- Sub test()
Dim Crit1 As String, Crit2 As String Dim Crit3 As String, Crit4 As String Dim DerLig As Long
With Worksheets("Feuil1") 'Nom feuille à adapter 'déterminer la zone de critère 'Tu peux prendre les 2 cellules de ton choix Range("G1") = "" .Range("G2").Formula = "=AND(A2=""" & Crit1 & """," & _ "B2=""" & Crit2 & """,C2=""" & Crit3 & _ """,D2=""" & Crit4 & """)"
'Dernière ligne de la plage DerLig = .Range("A65536").End(xlUp).Row 'Exécuter le filtre avancé .Range("A1:D" & DerLig).AdvancedFilter Action:=xlFilterInPlace, _ criteriarange:þuil1.Range("G1:G2")
End With '-------------------------------------
MichD ------------------------------------------ "Steph" a écrit dans le message de groupe de discussion :
Bonjour,
J'ai un formulaire avec 4 combobox. L'utilisateur remplit 1, 2, 3 ou 4 combobox. Ma requête va regarder dans un fichier à 4 colonnes les associations contenant les valeurs demandées. Par exemple si combo1=toto, je dois ressortir tous les quadruplets suivants: toto-x-x-x x-toto-x-x x-x-toto-x x-x-x-toto Comment faire pour que ma requête balaye les 4 colonnes ?
Ca se complique si j'ai deux valeurs sur les 4. Si combo1=toto et combo2=papa, je dois ressortir toto-papa-x-x toto-x-papa-x toto-x-x-papa x-toto-papa-x x-toto-x-papa x-x-toto-papa papa-toto-x-x ...
J'avais fait un filtre mais qui ne marche que si les 4 combo sont remplis: Rows("2:2").Select Selection.AutoFilter
If ComboBox1<> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=1, Criteria1:=ComboBox1.Value If ComboBox2 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=2, Criteria1:=ComboBox2.Value If ComboBox3 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=3, Criteria1:=ComboBox3.Value If ComboBox4 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=4, Criteria1:=ComboBox4.Value
Y a-t-il un moyen pour faire un filtre multicolonne ?
Merci
Bonjour,
Tu peux utiliser le filtre avancé comme ceci.
L'exemple utilise 4 valeurs différentes pour chacun des combobox.
Dans la formule si tu utilises "AND" tu obtiendras seulement les lignes
où chacun des critères est respecté. Si tu veux extraire toutes les
occurrences des critères dans chaque colonne, change "And" pour "OR"
'-------------------------------------
Sub test()
Dim Crit1 As String, Crit2 As String
Dim Crit3 As String, Crit4 As String
Dim DerLig As Long
With Worksheets("Feuil1") 'Nom feuille à adapter
'déterminer la zone de critère
'Tu peux prendre les 2 cellules de ton choix
Range("G1") = ""
.Range("G2").Formula = "=AND(A2=""" & Crit1 & """," & _
"B2=""" & Crit2 & """,C2=""" & Crit3 & _
""",D2=""" & Crit4 & """)"
'Dernière ligne de la plage
DerLig = .Range("A65536").End(xlUp).Row
'Exécuter le filtre avancé
.Range("A1:D" & DerLig).AdvancedFilter Action:=xlFilterInPlace, _
criteriarange:þuil1.Range("G1:G2")
End With
'-------------------------------------
MichD
------------------------------------------
"Steph" a écrit dans le message de groupe de discussion :
9b0be1c6-d472-4131-8e51-b8f1948f3d64@v1g2000yqn.googlegroups.com...
Bonjour,
J'ai un formulaire avec 4 combobox.
L'utilisateur remplit 1, 2, 3 ou 4 combobox.
Ma requête va regarder dans un fichier à 4 colonnes les associations
contenant les valeurs demandées.
Par exemple si combo1=toto, je dois ressortir tous les quadruplets
suivants:
toto-x-x-x
x-toto-x-x
x-x-toto-x
x-x-x-toto
Comment faire pour que ma requête balaye les 4 colonnes ?
Ca se complique si j'ai deux valeurs sur les 4. Si combo1=toto et
combo2=papa, je dois ressortir
toto-papa-x-x
toto-x-papa-x
toto-x-x-papa
x-toto-papa-x
x-toto-x-papa
x-x-toto-papa
papa-toto-x-x
...
J'avais fait un filtre mais qui ne marche que si les 4 combo sont
remplis:
Rows("2:2").Select
Selection.AutoFilter
If ComboBox1<> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=1, Criteria1:=ComboBox1.Value
If ComboBox2 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=2, Criteria1:=ComboBox2.Value
If ComboBox3 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=3, Criteria1:=ComboBox3.Value
If ComboBox4 <> "" Then ActiveSheet.Range(Cells(2, 1),
Cells(ligne, colonne)).AutoFilter Field:=4, Criteria1:=ComboBox4.Value
Y a-t-il un moyen pour faire un filtre multicolonne ?
Tu peux utiliser le filtre avancé comme ceci. L'exemple utilise 4 valeurs différentes pour chacun des combobox.
Dans la formule si tu utilises "AND" tu obtiendras seulement les lignes où chacun des critères est respecté. Si tu veux extraire toutes les occurrences des critères dans chaque colonne, change "And" pour "OR"
'------------------------------------- Sub test()
Dim Crit1 As String, Crit2 As String Dim Crit3 As String, Crit4 As String Dim DerLig As Long
With Worksheets("Feuil1") 'Nom feuille à adapter 'déterminer la zone de critère 'Tu peux prendre les 2 cellules de ton choix Range("G1") = "" .Range("G2").Formula = "=AND(A2=""" & Crit1 & """," & _ "B2=""" & Crit2 & """,C2=""" & Crit3 & _ """,D2=""" & Crit4 & """)"
'Dernière ligne de la plage DerLig = .Range("A65536").End(xlUp).Row 'Exécuter le filtre avancé .Range("A1:D" & DerLig).AdvancedFilter Action:=xlFilterInPlace, _ criteriarange:þuil1.Range("G1:G2")
End With '-------------------------------------
MichD ------------------------------------------ "Steph" a écrit dans le message de groupe de discussion :
Bonjour,
J'ai un formulaire avec 4 combobox. L'utilisateur remplit 1, 2, 3 ou 4 combobox. Ma requête va regarder dans un fichier à 4 colonnes les associations contenant les valeurs demandées. Par exemple si combo1=toto, je dois ressortir tous les quadruplets suivants: toto-x-x-x x-toto-x-x x-x-toto-x x-x-x-toto Comment faire pour que ma requête balaye les 4 colonnes ?
Ca se complique si j'ai deux valeurs sur les 4. Si combo1=toto et combo2=papa, je dois ressortir toto-papa-x-x toto-x-papa-x toto-x-x-papa x-toto-papa-x x-toto-x-papa x-x-toto-papa papa-toto-x-x ...
J'avais fait un filtre mais qui ne marche que si les 4 combo sont remplis: Rows("2:2").Select Selection.AutoFilter
If ComboBox1<> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=1, Criteria1:=ComboBox1.Value If ComboBox2 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=2, Criteria1:=ComboBox2.Value If ComboBox3 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=3, Criteria1:=ComboBox3.Value If ComboBox4 <> "" Then ActiveSheet.Range(Cells(2, 1), Cells(ligne, colonne)).AutoFilter Field:=4, Criteria1:=ComboBox4.Value
Y a-t-il un moyen pour faire un filtre multicolonne ?