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 Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 312
Membres
102 860
dernier inscrit
fredo67