VBA filtre automatique Avec Plusieurs Critères à l'Aide de Variables

EDIT: Pour résoudre le problème, j'ai changé Dim Placed As Range à As Long. J'ai ensuite changé

Set Placed = Rows("3:3").Find("Placed", Range("A3"), searchdirection:=xlToRight)

à

Placed = Rows("3:3").Find("Placed", Range("A3"), searchdirection:=xlToRight).Column

Le code fonctionne très bien maintenant.
FIN MODIFIER

Ok, j'ai travaillé sur cette question pendant près de deux heures maintenant.

Je suis en train de coder un couple de boutons d'option sur une feuille de calcul pour filtrer les données en fonction des besoins.

Pour commencer, j'ai enregistré moi-même en filtrant les données pour me donner un point de départ. C'est ce que l'enregistreur de cracher:

ActiveSheet.Range("$A$3:$CS$212").AutoFilter Field:=53, Criteria1:=Array( _
    "Iteration 1", "Iteration 2", "Iteration 3", "Tradeshow", "="), Operator:= _
    xlFilterValues

Pour faire les boutons d'option plus robuste, j'ai décidé d'utiliser des variables dans le cas de lignes ou de colonnes ont été ajoutées, ou si les critères ont été ajoutés.

J'ai ajouté une variable pour le Range(), Field:=, et Criteria1:=, mais mon code génère cette erreur maintenant: Run-time error '1004': Autofilter Method of Range class failed.

Je me demande si je suis en utilisant le Array mal...? De toute façon, voici mes déclarations:

Const Opt1 As String = "Iteration 1"
Const Opt2 As String = "Iteration 2"
Const Opt3 As String = "Iteration 3"
Const Opt4 As String = "Iteration 4"
Const Opt5 As String = "Tradeshow"
Const Opt6 As String = "Placed"

Dim Placed As Range             'This is the Field var.
Dim lastRow, lastColumn As Long 'Holds the last row and column numbers.
Dim Rng1, Rng2 As Range         'These hold the beginning and ending ranges for the filter

Et voici comment je suis mes variables:

lastRow = Range("A:A").Find("*", Range("A1"), searchdirection:=xlPrevious).Row
lastColumn = Cells(3, Columns.Count).End(xlToLeft).Column
Set Placed = Rows("3:3").Find("Placed", Range("A3"), searchdirection:=xlToRight)
Set Rng1 = Cells(3, 1)
Set Rng2 = Cells(lastRow, lastColumn)

Enfin, voici la AutoFilter code:

ActiveSheet.Range(Rng1, Rng2).AutoFilter Field:=Placed, Criteria1:=Array(Opt1, Opt2, Opt3, Opt4, Opt5, Opt6, "="), Operator:=xlFilterValues

Personne ne voir pourquoi il pourrait être jeter cette erreur? A-t-elle quelque chose à voir avec la Array? Toute aide sera très appréciée!

OriginalL'auteur ARich | 2013-08-08