Vba Excel-Filtres comment mettre des variables

rockerfou Messages postés 16 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 28 novembre 2014 - 25 sept. 2013 à 12:17
rockerfou Messages postés 16 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 28 novembre 2014 - 3 oct. 2013 à 14:50
Bonjour,

Dans l'une de mes procédures je dois filtrer une colonne sur mon tableau, le nombre et le contenu des valeurs à filtrer est variable (et plus que 2 valeurs), j'essaye avec l'instruction suivante (filtrage sur la colonne 33, base = zone à filtrer)

ActiveSheet.Range(base).AutoFilter field:=33, Criteria1:=Array(a, b, c, d), Operator:=xlFilterValues

le problème est que les valeurs de a, b, c ,d changent (ce sont des variables et leur nombre changent aussi , je peux aller jusqu'à une dizaine de valeurs (donc le contenu de Array change)

Merci de votre aide

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
25 sept. 2013 à 13:35
Bonjour,

Sans avoir testé.. je pense que la solution se trouve au niveau des "tableau"
En effet, Criteria1:= attend une variable de type "tableau" > Array.

Il te suffirait donc de créer une variable tableau et de lui injecter tes parametres (a,b,c,d...)

Je t'invite à regarder cette page :
http://silkyroad.developpez.com/vba/tableaux/

Ensuite, tu n'auras plus qu'à appeler ta variable en faisant un truc du genre :
'Exemple:
Dim nbElements as integer
nbElements = 4
Dim MaVariableArray(nbElements)

for i = 0 to nbElements
  MaVariableArray(i)=i  
next
ActiveSheet.Range(base).AutoFilter field:=33, Criteria1:=MaVariableArray, Operator:=xlFilterValues 



0
rockerfou Messages postés 16 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 28 novembre 2014
3 oct. 2013 à 14:50
Merci beaucoup,
J'en étais arrivé à la même conclusion, mais le lien va m'être fort utile
Thierry
0
Rejoignez-nous