[Filtre VBA]Filtrage lancement worbook

Résolu/Fermé
seb3489 Messages postés 4 Date d'inscription dimanche 11 mai 2014 Statut Membre Dernière intervention 11 mai 2014 - Modifié par Chris 94 le 11/05/2014 à 02:10
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 11 mai 2014 à 14:02
Bonjour,
Je voudrai filtrer mes données en fonction de la valeur d'une cellule... Malheureusement, mon code ne fonctionne pas...
Lorsque je remplace array(filtrage) par le contenu de filtrage, le filtre fonctionne... On dirait qu'il n'arrive pas à lire le contenu de ma cellule...

Merci


Private Sub Workbook_Open()
Dim debut_periode As Long, fin_periode As Long
Dim critére1, filtrage As String

Application.ScreenUpdating = False
filtrage = Sheets("Parametres").Range("F19").Value

debut_periode = Date
fin_periode = debut_periode - 6

Sheets("Rapport").Range("$A$1:$A$5476").AutoFilter _
Field:=1, Criteria1:="<= " & debut_periode, _
Operator:=xlAnd, Criteria2:=">=" & fin_periode

Sheets("STOCK").Range("$A$1:$A$367").AutoFilter _
Field:=1, Criteria1:="<= " & debut_periode, _
Operator:=xlAnd, Criteria2:=">=" & fin_periode

Sheets("Rapport opérateur").Range("$A$1:$A$5476").AutoFilter _
Field:=2, Criteria1:=Array(filtrage), Operator _
:=xlFilterValues

Call masquage_feuilles_inutiles
Call verrouillage_feuilles
End Sub



A voir également:

7 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 mai 2014 à 10:44
Bonjour,

Il y a une différence entre le contenu d'une cellule et la valeur d'une cellule. Une cellule peut contenir, par exemple, une formule et la valeur de cette cellule est le résultat de la formule.


0
seb3489 Messages postés 4 Date d'inscription dimanche 11 mai 2014 Statut Membre Dernière intervention 11 mai 2014
11 mai 2014 à 11:20
Merci de ta réponse.
Je viens de faire divers tests encore... Quand je mets juste un mot dans la cellule F19, cela fonctionne. (Ex : ABC)
Par contre, quand j'en mais plusieurs, impossible d'avoir un filtrage fonctionnelle...
(Ex : "abc", "def")

Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 mai 2014 à 12:44
Dans un Array() du Criteria1, les filtres sont des string séparés par une virgule.

Si, pendant l'exécution du code pas à pas, tu passes la souris sur ta variable "filtrage", tu vois ce que contient la variable. Dans ton exemple, si tu as
"abc", "def"
dans ta cellule F19, tu auras:
filtrage = ""abc", "def"" 
. Tout le contenu est considéré comme un seul string.
0
seb3489 Messages postés 4 Date d'inscription dimanche 11 mai 2014 Statut Membre Dernière intervention 11 mai 2014
Modifié par seb3489 le 11/05/2014 à 13:14
J'ai essayé mais de nouveau, sans succès...
Je me suis permis de créer un fichier test...
http://dl.free.fr/getfile.pl?file=/TwCH4CEf

Merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 mai 2014 à 13:28
Impossible de télécharger le fichier.

Utilise Cjoint.com pour déposer un fichier et colle le lien donné par le site ici.

En bref, si tu mets plusieurs critères de tri, il faut mettre
F19 = abc, def
et non
F19 = "abc", "def"
et ensuite utiliser Split() pour récupérer les critères.

Exemple:

Dim filtrage() As String

filtrage = Split(Sheets("Parametres").Range("F19").Value, ",")

Sheets("Rapport opérateur").Range("$A$1:$A$5476").AutoFilter _
Field:=2, Criteria1:=Array(filtrage(0), filtrage(1)), Operator:=xlFilterValues

0
seb3489 Messages postés 4 Date d'inscription dimanche 11 mai 2014 Statut Membre Dernière intervention 11 mai 2014
11 mai 2014 à 13:41
TOP ;) J'ai testé la méthode split() sur mon fichier test et ca fonctionne ;)
Merci à toi!!!
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 mai 2014 à 14:02
De rien ;)

Merci de mettre le sujet en résolu.
0