Erreur d'execution 1004

disabled30 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
disabled30 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis novice en programation (2 jours d'expérience)

Mon objectif est de réaliser un filtre multicritére à partir d'une listbox.

je tape le code suivant :

Public Sub CommandButton1_Click() 

Dim Tablo() 
Dim I As Integer, Indice As Integer 

With Me.ListBox1 
  For I = 0 To .ListCount - 1 
    If .Selected(I) = True Then 
      ReDim Preserve Tablo(Indice) 
      Tablo(Indice) = .List(I) 
      Indice = Indice + 1 
    End If 
  Next I 
End With 
If Indice = 0 Then 
  Range("$B$4:$O$30").AutoFilter Field:=1 
Else 
  Range("$B$4:$O$30").AutoFilter Field:=1, Criteria1:=Tablo, Operator:=xlfiltervalues 
End If 
End Sub


Le probléme que je rencontre est le suivant si je choisi l'opérateur xland le code s'execute mais je ne filtre que 1 seul critére de ma listbox. j'ai donc changé mon opérateur xland par xlfiltervalues mais quand j'exécute j'ai le message d'erreur execution 1004 : "La méthode Autofilter de la classe range a échoué"

Je ne comprend pas pourquoi quelqu'un peut-il m'aider? (j'utilise excel 2002)

Configuration: Windows 7 / Internet Explorer 8.0

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

C'est bien
xlfiltervalues 
qu'il faut.

la seule fois ou j'ai eu l'erreur 1004, c'est quand la feuille ou doit se faire le filtre n'etait pas la feuille active. Il faut donc toujours mettre le nom la feuille devant Range(....., meme s'il n'y a qu'une feuille. Par contre une seule feuille pas eu l'erreur 1004

ex:

Worksheets("Feuil1").Range("$B$4:$O$30").AutoFilter Field:=1, Criteria1:=Tablo, Operator:=xlfiltervalues
0
disabled30 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour merci du coup de main, j'ai essayé ce que tu m'as proposé mais ça ne fonctionne toujours pas :(. Je pense que ça vient peut être de la valeur que je donne à la fonction range. Par contre je ne comprends pas vraiment comment noter l'adresse. J'ai vu différente façon de faire sur les forums et ça reste encore un mystére pour moi. Je te joints mon fichier si tu peux y jeter un oeil? Je te remercie par avance.
0
disabled30 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'arrive pas à charger le fichier de mon poste de travail. J'essayerai ce midi
0