Bonjour à tous,
Je suis un tout nouvel utilisateur de VBA et j'apprends sur le tas, je galère donc un peu... je sollicite donc votre aide !
Mon besoin initial : faire un filtre selon plusieurs critères.
Exemple: je sélectionne dans une liste la date "201604" pour avril 2016. Je souhaite que mon filtre conserve uniquement les dates 201601 à 201604.
Cela fonctionne avec un tableau/array (test réussi chez moi), en écrivant ceci:
filtre_test = Array("201601", "201602", "201603", "201604")
Puis en précisant dans l'autofilter
ActiveSheet.Range("$A:$M").AutoFilter Field:=4, Criteria1:=filtre_test, Operator:=xlFilterValues
Là où j'ai plus de mal, c'est que j'aimerais construire ce tableau (array) à partir d'une chaine de caractère... mais impossible à lui faire comprendre que cette chaîne de caractère doit devenir un tableau. J'ai bien tenté l'utilisation d'évaluate mais ça n'a rien changé. Je m'explique:
comme évidemment le choix de la date initiale pour le filtre est amené à changer, je veux faire évoluer mon array en fonction. J'ai donc réussi à générer une chaîne de caractère, qui reprend bien mes critères de filtre voulu:
Dim filtre_test As String
filtre_test = "Array(" & liste_mois & ")"
Ici, filtre_test renvoie Array("201601", "201602", "201603", "201604")
Mais en faisant appel à la variable filtre_test, ça ne retient aucun critère.
Et en rajoutant
Dim filtre_test_2 As Variant
filtre_test_2 = Evaluate(filtre_test)
celà renvoi en message d'erreur...
Bref une bien longue histoire pour un problème j'en suis sur très bête...
D'avance merci pour vos éclairages.
Bastien.