[Resolu] VBA, Filtre avec plus de 20 Criteres

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 !

Alban.aktisea

XLDnaute Nouveau
Bonjour à tous,

Je rencontre un problème sur ma macro plusieurs heures que j'essaie de trouvé une solution en vain

Actuellement je filtre par rapport aux valeurs de V4 à V24, et je souhaiterais aller jusqu'à V38.
Mais excel me limite à 20 critères impossible d'en ajouté plus.

Si quelqu'un à une solution à mon problème, ça m’enlèverais une grosse épine du pied.

Merci d'avance


Code:
Sub villes()
ActiveSheet.Unprotect
Sheets("Listing entreprises").Unprotect
With Worksheets("Listing entreprises")
If .FilterMode = True Then .ShowAllData
End With

Sheets("Rapport").Range("$B$15:$Z$21").Interior.Color = RGB(242, 220, 219) 
Sheets("Listing entreprises").Range("$A$3:$AI$15000").AutoFilter Field:=5, Criteria1:=Array(Sheets("Paramètres").Range("V4").Value, Sheets("Paramètres").Range("V5").Value, _
Sheets("Paramètres").Range("V6").Value, Sheets("Paramètres").Range("V7").Value, Sheets("Paramètres").Range("V8").Value, Sheets("Paramètres").Range("V9").Value, _
Sheets("Paramètres").Range("V10").Value, Sheets("Paramètres").Range("V11").Value, Sheets("Paramètres").Range("V12").Value, Sheets("Paramètres").Range("V13").Value, _
Sheets("Paramètres").Range("V14").Value, Sheets("Paramètres").Range("V15").Value, Sheets("Paramètres").Range("V16").Value, Sheets("Paramètres").Range("V17").Value, _
Sheets("Paramètres").Range("V18").Value, Sheets("Paramètres").Range("V19").Value, Sheets("Paramètres").Range("V20").Value, Sheets("Paramètres").Range("V21").Value, _
Sheets("Paramètres").Range("V22").Value, Sheets("Paramètres").Range("V23").Value, Sheets("Paramètres").Range("V24").Value), Operator:=xlFilterValues
Sheets("Listing entreprises").Protect , AllowFormattingCells:=True, _
                    AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, _
                    AllowDeletingRows:=True, _
                    AllowFiltering:=True, _
                    Scenarios:=True
                   
Calculate
ActiveSheet.Protect
End Sub
 
Bonjour.
De toutes façon la formulation Array( suivi d'une série de Range(…).Value de cellules verticalement consécutives est un peu idiote en soit puisque la Value d'un Range représentant simplement l'ensemble des cellules constitue un tableau assez analogue, sauf qu'il a 2 dimensions commençant à 1, la 2ième étant toujours 1.
 
Comme ça ça marche :
VB:
Dim TDon(), TCrit(), Le&, Ls&
TDon = Sheets("Paramètres").Range("V4:V38").Value
ReDim TCrit(1 To UBound(TDon, 1))
For Le = 1 To UBound(TDon, 1)
   If Not IsEmpty(TDon(Le, 1)) Then Ls = Ls + 1: TCrit(Ls) = TDon(Le, 1)
   Next Le
ReDim Preserve TCrit(1 To Ls)
Sheets("Listing entreprises").Range("$A$3:$AI$15000").AutoFilter Field:=5, Criteria1:=TCrit, Operator:=xlFilterValues
 
- 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

Retour