Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Filtre élaboré vba

  • Initiateur de la discussion Initiateur de la discussion tinet
  • Date de début Date de début

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 !

tinet

XLDnaute Impliqué
Bonjour le forum,

Je suis obligé de faire un filtre dans un tableau avec nombreuses valeurs




Voici un exemple de mon critère de filtre que j'utilise

=OU(E2="bc100";E2="fr20";E2="zer254") en AA2



Pour m'éviter d'inscrire toutes les valeurs environ une soixantaine dans le code



Mon idée serait c'est possible d'avoir dans une feuille un tableau où j' indiquerai mes différents critères



Voilà ce que j'utilise après pour faire fonctionner mon filtre

Sub supligne()
With Feuil3
On Error Resume Next
.ShowAllData 'enléve filtre
derl = .Range("A65536").End(xlUp).Row
Sheets("base").Range("AA2").FormulaLocal = "=OU(E2 = ""bc100"";E2 = ""fr20""; E2 = ""zer254"")"
.Range("A1:I" & derl).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("base").Range("AA1").CurrentRegion, Unique:=False

End With
End Sub

merci pour votre aide
 
Bonsoir le fil, le forum

Comme ceci
VB:
Sub sup_Lignes()
Range("C1:C34").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("Feuil2").Range("A1:A5"), Unique:=False
Set pf = [_FilterDataBase]
Application.DisplayAlerts = False
If WorksheetFunction.Subtotal(3, pf.Offset(1).Resize(pf.Rows.Count - 1, 1)) > 0 Then
    pf.Offset(1).Resize(pf.Rows.Count - 1).EntireRow.Delete
End If
ActiveSheet.ShowAllData
End Sub
Attention: en Feuil2 (en A1:A5)
code
lapin1
lapin2
lapin3
lapin4
 
Dernière édition:
RE

Relis mon message précédent attentivement
(notamment la fin de celui-ci)

NB: J'ai évidemment testé avant de poster et cela fonctionne parfaitement sur mon PC.
Et cela parce que je respecte tout ce que j'ai décris dans mon précédent message 😉
 
Bonjour le fil, le forum

Ceci devrait faire l'affaire
1) Les critères sont agencés comme ci-dessous:


2) et la macro modifiée comme suit:
VB:
Sub Suppr_Lignes_II()
Dim a As Worksheet, b As Worksheet
Set a = Sheets("Feuil1"): Set b = Sheets("Feuil2")
a.Range(a.Cells(1, "C"), a.Cells(Rows.Count, "C").End(xlUp)).AdvancedFilter _
    Action:=1, CriteriaRange:=b.Range("A1:D2"), Unique:=False
Set pf = [_FilterDataBase]
Application.DisplayAlerts = False
If WorksheetFunction.Subtotal(3, pf.Offset(1).Resize(pf.Rows.Count - 1, 1)) > 0 Then
    pf.Offset(1).Resize(pf.Rows.Count - 1).EntireRow.Delete
End If
a.ShowAllData
End Sub
 
Dernière édition:
- 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
3
Affichages
339
Réponses
5
Affichages
567
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…