Bonjour à tous,
Je vous présente mon problème VBA sur excel :
Je bosse sur un fichier avec plusieurs datas. J'ai un tableau de 11 colonnes (dont 3 masquées) et je souhaite, après avoir trié la colonne D et K,
apposer un filtre sur la colonne K (jusque là j'y suis parvenu) et refiltrer derrière sur la colonne L.
Ma macro s’exécute de la manière suivante : je calibre mon tableau ( range("C11:M361")), j'active le filtrage, je trie la colonne D par ordre alphabétique, puis ma colonne K par ordre croissant (ce sont des chiffres).
Ensuite, je filtre ma colonne K où je choisis de faire partir les valeurs indésirées ("-100"), puis je désire filtrer la colonne L et garder les valeurs entre 0,3 et 7,5, tout en conservant le filtre en colonne K précédemment exécuté.
LE PROBLÈME : Une fois que je finis de filtrer ma colonne L, tout le tableau est englouti dans le filtrage et plus rien n'apparait.
(NB : j'ai déjà tout fait à la main, ça fonctionne. En revanche, en faisant les mêmes opérations en code, hop, je n'ai plus rien qui apparait)
Si vous avez un élément de réponse, ce serait avec plaisir.
Merci pour votre attention.
Bien cordialement,
amorello.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Option Base 1 Option Explicit Sub screening_value() Dim value As Worksheet Dim tableau As Range Set value = ThisWorkbook.Worksheets("S. Value") Set tableau = value.Range(Cells(11, 3), Cells(Cells(1048576, 13).End(xlUp).Row, Cells(11, 20).End(xlToLeft).Column)) If value.AutoFilterMode = True Then tableau.AutoFilter tableau.AutoFilter value.AutoFilter.Sort.SortFields.Clear With value.AutoFilter.Sort.SortFields .Add Key:=Range(Cells(12, 4), Cells(Cells(12, 4).End(xlDown).Row, 4)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Add Key:=Range(Cells(12, 11), Cells(Cells(12, 11).End(xlDown).Row, 11)), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal End With tableau.AutoFilter Field:=9, Criteria1:="<>-100" tableau.AutoFilter Field:=10, Criteria1:=">=0,3", Operator:=xlAnd, Criteria2:="<=7,5" End Sub
Partager