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 !
Je souhaiterais filtrer un certain nombre de données dans la colonne F d'un fichier excel en vba donc.
voilà ce que j'ai commencé à faire:
Code:
With Selection
.AutoFilter 'on active le filtre automatique
.AutoFilter Field:=1, Criteria1:="abc"
End With
Comment faire pour trier via vba plus d'une certaine donnée à la fois? (histoire d'avoir en un seul filtre, toutes les infos dont j'ai besoin d'un coup)
J'ai essayer le code qui suit: mais ça ne marche pas 🙁
Code:
With Selection
.AutoFilter 'on active le filtre automatique
.AutoFilter Field:=1, Criteria1:="abc" & Criteria1:="efg"
End With
With Selection
.AutoFiltermode =false 'on désactive le filtre automatique
.AutoFilter Field:=1, Criteria1:="abc"
End With
Déjà, utiliser selection dans une macro est une microsofterie 😀 : ça sert à rien.
Si tu essaies d'utiliser le filtre automatique, c'est que tu as réussi à faire manuellement la manipulation que tu essaies de faire par VBA ? Non ?
Petite question : En nous donnant un code manifestement faux, qu'est-ce qui te permet de croire qu'on va découvrir ce que tu envisages de faire ? Même la télépathie à besoin d'un minimum !
A+
Bonjour 🙂 disons que la première partie de code marche très bien 😉...
c'est le fait de vouloir filtrer plusieurs données à la fois qui ne marche pas.
Et non je n'arrifve pas a faire manuellement une filtration de plus de 2 données... je voudrais en filtrer plus.
Avant de dire qu'il est manifestement faux? essaie le non? 😉
voila ce que je fais pour le moment si tu veux avoir un ordre d'idée...
Code:
Worksheets("étape").Activate
Columns("F").Select
[B]With Selection
.AutoFilter 'on active le filtre automatique
.AutoFilter Field:=1, Criteria1:="% CLIENTS"
End With[/B]
Range("A:N").Copy
Worksheets("end").Activate
Sheets.Add
ActiveSheet.Name = "i" & i
i = i + 1
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J2:J65536").Clear
Columns("I").Delete Shift:=xlToLeft
Worksheets("étape").Activate
Columns("F").Select
[B]With Selection
.AutoFilter 'on active le filtre automatique
.AutoFilter Field:=1, Criteria1:="MARGE"
End With[/B]
Range("A:N").Copy
Worksheets("end").Activate
Sheets.Add
ActiveSheet.Name = "i" & i
i = i + 1
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J2:J65536").Clear
Columns("I").Delete Shift:=xlToLeft
je réitère x fois cette opération... pour x utilisation du filtre dans la même colonne. Le but de ma question est de rassembler en un coup toutes les informations que je souhaite en un seul filtre et le coller dans ce cas dans une feuille unique. Pour le moment je suis obligé de passer par plusieurs feuilles et plusieurs filtres pour arriver à mes fins.
Salut kennedy et le forum
Un filtrage simple avec un seul ET ou un seul OU (par colonne)
Un filtrage avec plusieurs Et et/ou OU => filtre élaboré
Menu Données>>filtrer>>Filtre élaboré
Il te faut une zone de critére comportant les mêmes titres que ta zone de données : une ligne fait des ET entre colonnes
Les OU se font de ligne à ligne.
Tant que tu n'arriveras pas à le faire manuellement, difficile d'imaginer comment le faire par programmation !
Code:
With Selection
.AutoFilter '[COLOR=Red]on active le filtre automatique[/COLOR]
.AutoFilter Field:=1, Criteria1:="% CLIENTS"
End With
C'est faux : S'il n'y a aucun filtre, ".autofilter" active le filtre auto. Mais s'il y a déjà un filtre auto sur la sélection, il désactive le filtre auto ! Pour t'en convaincre, teste un code du style
Code:
Sub test()
With Selection
.AutoFilter 'on active le filtre automatique
.AutoFilter 'on active le filtre automatique
.AutoFilter 'on active le filtre automatique
.AutoFilter 'on active le filtre automatique
.AutoFilter 'on active le filtre automatique
End With
End Sub
En Pas-à-Pas, en regardant ta sélection.
Ta macro donnerait un code dans ce style
Code:
Worksheets("étape").Activate
Columns("F").AutoFilter Field:=1, Criteria1:="% CLIENTS"
Range("A:N").Copy
Sheets.Add
ActiveSheet.Name = "i" & i
i = i + 1
Range("A1").PasteSpecial Paste:=xlPasteValues
Range("J2:J65536").Clear
Columns("I").Delete
Worksheets("étape").Activate
Columns("F").AutoFilter Field:=1, Criteria1:="MARGE"
Range("A:N").Copy
Sheets.Add
ActiveSheet.Name = "i" & i
i = i + 1
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("J2:J65536").Clear
Columns("I").Delete
Et encore, ne possédant qu'un lambeau de code, je ne peux boucler alors que 8 lignes de code sur 9 sont identiques, et que pour la neuvième, un texte, le critère, est différent : avec un select case et une variable, ce serait fait facilement.
A+
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.