XL 2010 [HELP PLEASE] Erreur 1004 "la méthode Range de l'objet _Worksheet a échoué"

Bertrand_A

XLDnaute Nouveau
Bonjour,

J'essaye de réaliser une macro qui, en double cliquant sur une cellule me permettra d'activer un filtre sur un tableau présent dans une autre feuille.

Voici mon code VBA :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("D5:D117")) Is Nothing Then
    ActiveCell.Offset(0, -2).Select
    Colonne = ActiveCell.Value
    Sheets("LISTING SMARTPHONES").Select
    Sheets("LISTING SMARTPHONES").Activate
    Range("Tableau1").AutoFilter
    Range("A1").AutoFilter Field:=6, Criteria1:=Colonne
    MsgBox (Colonne)
  
    End If
End Sub
Lors de l’exécution j'ai le message d'erreur 1004 : "la méthode Range de l'objet _Worksheet a échoué".

Edit : en mode débogage c'est la ligne : Range("Tableau1").AutoFilter qui marche pas (ou la suivante si je retire celle-ci)

J'ai cherché sur différents forum mais je n'ai pas trouver solution à mon problème.. Quelqu'un pourrait-il m'aider ? :) Merci par avenca
 

Bertrand_A

XLDnaute Nouveau
Solution trouvée ! Si cela peut aider d'autres personnes :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("D5:D117")) Is Nothing Then
    ActiveCell.Offset(0, -2).Select
    Colonne = ActiveCell.Value
    Sheets("LISTING SMARTPHONES").Select
    Sheets("LISTING SMARTPHONES").Range("Tableau1").AutoFilter
    Sheets("LISTING SMARTPHONES").Range("Tableau1").AutoFilter Field:=6, Criteria1:=Colonne
    MsgBox (Colonne)
   
    End If
End Sub
Il suffit de préciser partout sur quelle feuille on applique l'outil .Range

Sujet résolu
 

Jacky67

XLDnaute Accro
Solution trouvée ! Si cela peut aider d'autres personnes :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("D5:D117")) Is Nothing Then
    ActiveCell.Offset(0, -2).Select
    Colonne = ActiveCell.Value
    Sheets("LISTING SMARTPHONES").Select
    Sheets("LISTING SMARTPHONES").Range("Tableau1").AutoFilter
    Sheets("LISTING SMARTPHONES").Range("Tableau1").AutoFilter Field:=6, Criteria1:=Colonne
    MsgBox (Colonne)

    End If
End Sub
Il suffit de préciser partout sur quelle feuille on applique l'outil .Range

Sujet résolu
Bonjour,
Autre façon sans select et sans variable ;)
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("D5:D117")) Is Nothing Then
        Cancel = True
        With Sheets("LISTING SMARTPHONES")
            .Activate
            .Range("Tableau1").AutoFilter Field:=6, Criteria1:=Target.Offset(0, -2)
        End With
    End If
End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas