Microsoft 365 VBA filtre plusieurs colonne a partir d'une donnée (sous combobox)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

DeeRose

XLDnaute Nouveau
Bonjour,

j'ai un tableau excel ou je souhaite faire apparaitre une donnée. Celle ci apparait dans plusieurs colonnes.

J'ai utilisé le code ci dessous, qui me permet de filtre qu'une colonne de mon tableau alors que la colonne J et K sont aussi a rechercher.

Private Sub ComboBox1_Change()

If ComboBox1.ListIndex = -1 Then
Exit Sub
End If
MONFILTRE = ComboBox1.Value

ActiveSheet.Range("$A$3:$F$1311").AutoFilter Field:=9, Criteria1:=MONFILTRE

End Sub

Pouvez vous m'aider a la réalisation de ce code svp ? sachant que je suis un noob.

Merci d'avance pour votre aide
 
Bonsoir DeeRose, Bernard,

Avec le filtre avancé c'est vraiment très simple, le code de la feuille :
VB:
Private Sub ComboBox1_Change()
If FilterMode Then ShowAllData 'affiche tout
If ComboBox1.ListIndex = -1 Then Exit Sub
ThisWorkbook.Names.Add "CB", Val(ComboBox1) 'nom défini
[M2] = "=OR(I2=CB,J2=CB,K2=CB)" 'critère
[A1].CurrentRegion.AdvancedFilter xlFilterInPlace, [M1:M2] 'filtre avancé
[M2] = ""
End Sub
Bonne nuit.
 

Pièces jointes

Si les données peuvent être des nombres ou des textes on utilisera SOMMEPROD :
VB:
Private Sub ComboBox1_Change()
If FilterMode Then ShowAllData 'affiche tout
If ComboBox1.ListIndex = -1 Then Exit Sub
ThisWorkbook.Names.Add "CB", "=""" & ComboBox1 & """" 'nom défini
[M2] = "=SUMPRODUCT(N(""""&I2:K2=CB))" 'critère avec SOMMEPROD
[A1].CurrentRegion.AdvancedFilter xlFilterInPlace, [M1:M2] 'filtre avancé
[M2] = ""
End Sub
 

Pièces jointes

Bonsoir DeeRose, Bernard,

Avec le filtre avancé c'est vraiment très simple, le code de la feuille :
VB:
Private Sub ComboBox1_Change()
If FilterMode Then ShowAllData 'affiche tout
If ComboBox1.ListIndex = -1 Then Exit Sub
ThisWorkbook.Names.Add "CB", Val(ComboBox1) 'nom défini
[M2] = "=OR(I2=CB,J2=CB,K2=CB)" 'critère
[A1].CurrentRegion.AdvancedFilter xlFilterInPlace, [M1:M2] 'filtre avancé
[M2] = ""
End Sub
Bonne nuit.
MErci pour votre retour.
J'au un point bloquant au niveau : [A1].CurrentRegion.AdvancedFilter xlFilterInPlace, [M1:M2] 'filtre avancé
Pouvez vous me traduire cette ligne svp ?
 
Ma fonction SujMultiCol a l'avantage de proposer pour la ComboBox une liste classée et sans doublon des différentes valeurs trouvées dans les colonnes concernées.
Avec seulement de quoi filtrer la liste d'après le choix, il faut préalablement constituer cette liste par une autre voie.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
1 K
Retour