VBA - transformer chaine de caractère en tableau

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.

Bonjour,

filtre_test = Split("201601 201602 201603 201604")

Ce qui m'interroge c'est que tes dates ne sont pas des valeurs dates, mais des valeurs texte...

Merci pour ta réponse, ca fonctionne !

Oui effectivement c'est moi qui les définit en texte dans une étape antérieure.

Rechercher des sujets similaires à "vba transformer chaine caractere tableau"