[RESOLU] Autofilter - valeur field

valyno

XLDnaute Nouveau
Bonjour,

J'utilise une macro pour filtrer le contenu d'un tableau selon plusieurs critères.
J'ai donc (entre autres) les ligne suivante :

Code:
Dim moncritere As String
moncritere = Range("a1")
Sheets("mesdonnes"").range("a6").Autofilter 1, moncritere

de cette manière, je tri sur la colonne A, selon un critère que je défini dans la celluleA1.
Je souhaite appliquer un deuxième filtre, qui peut être placé soit sur la colonne B, ou C ou D etc... en fonction d'un critère qui change selon la colonne...
Je souhaite indiquer dans une cellule, par exemple A2, le numero de colonne sur lequel le second filtre devra être appliqué

J'ai tenté sans succès la chose suivante :
Code:
Dim moncritere As String
Dim colone As String
Dim moncritere2 As String
moncritere = Range("a1")
colonne = Range("a2")
moncritere2 = Range("a3")
Dim colonne As String
Sheets("mesdonnes"").range("a6").Autofilter 1, moncritere 'premier filtre, appliqué sur la colonne 1
Sheets("mesdonnes"").range("a6").Autofilter colonne, moncritere2 'second filtre à appliquer sur la colonne déterminée dans la cellule A2, selon le critère déterminé dans la cellule A3
Est-ce possible ? Si oui, comment ?
Merci d'avance pour votre aide
 
Dernière édition:

valyno

XLDnaute Nouveau
Re : Autofilter - valeur field

Bonjour Gorfael,

Je te remercie pour ton aide !
J'ai modifié ma macro selon tes indications, mais j'ai une erreur :

Erreur d'execution '1004':
Erreur définie par l'application ou par l'objet

Le debogueur me montre que cela bloque sur la ligne
Code:
Sheets("mesdonnes"").range("a6").Autofilter  Field:=Range("a2"), Criteria1:=Range("a3")

Par contre cela fonctionne si les paramètres sont entrés en dur dans le code :
Code:
Sheets("mesdonnes"").range("a6").Autofilter 12, "Non"
plutot que d'utiliser les variables..

Une idée ?

Merci encore !!
 

valyno

XLDnaute Nouveau
Re : Autofilter - valeur field

Salut valyno et le forum
Les valeurs A2 et A3 qui bloquent ?
A+

Oui, le fait d'utiliser Filed et Criterial suivi du Range vont planter la macro.
Je suis finalement parvenu à la faire fonctionner avec la syntaxe suivante :

Code:
Dim moncritere As String
Dim moncritere As String
Dim colone As String
Dim moncritere2 As String
moncritere = Range("a1")
colonne = Range("a2")
moncritere2 = Range("a3")
Sheets("mesdonnes"").range("a6").Autofilter 1, moncritere 
Sheets("mesdonnes"").range("a6").Autofilter colonne, moncritere2

Merci encore pour ton aide Gorfael !!
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 936
Membres
103 678
dernier inscrit
bibitm