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

  • Initiateur de la discussion Initiateur de la discussion Bertrand_A
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bertrand_A

Guest
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
3
Affichages
2 K
E
Réponses
2
Affichages
3 K
Edouarda65
E
L
Réponses
6
Affichages
2 K
lukes67
L
P
Réponses
4
Affichages
3 K
pierrot63270
P
Retour