Bonjour à tout le forum,

Je rencontre un problème sur une macro Worksheets.Change(). Pour réaliser un filtrage de données dans un classeur excel, j'ai réalisé une macro récupérant les valeurs utilisées pour le filtrage dans un onglet de renseignements. Les données à filtrer sont dans un onglet différent. L'objectif de la macro est de faire 4 filtres en même temps. Ces 4 valeurs se trouvent à la suite dans l'onglet de renseignements (cellule C15 à C18). La macro se lance automatiquement lorsqu'il y a un changement de valeurs dans les filtres. Actuellement le programme fonctionne avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Worksheet_Change(ByVal Target As Range)
 
    'Déclaration des variables
    Dim a, b, c, d, nom As String
 
    'récupération des valeurs du filtre 
    a = Worksheets("Demande").Range("C15")
    b = Worksheets("Demande").Range("C16")
    c = Worksheets("Demande").Range("C17")
    d = Worksheets("Demande").Range("C18")
 
    If Target = a Or Target = b Or Target = c Or Target = d Then
 
 
        'Récupération du  nom de l'onglet où le filtre doit se faire
        nom = Worksheets("Demande").Range("C15")
        Call Filtre_rapide(Target, nom)
 
    End If
 
End Sub
J'utilise target pour me permettre de lancer la macro avec un ciblage de la donnée et non un contrôle dans une cellule. Cela fonctionne bien mais je rencontre un problème lorsque j'utilise des fonctionnalités spécifiques à excel comme le tirage de formule ou supprimer des données avec la touche suppr du clavier. Je me retrouve avec ce message d'erreur "Erreur d'éxécution 13 : Incompatibilité de type".

Est-ce que ces opérations impossibles avec Target car c'est un type Range ?
Est-ce qu'il y a une autre solution pour rendre le programme automatique au changement de valeurs plutôt que de passer par la fonction Target ?

Si quelqu'un peut m'aider sur ce sujet ce serait top. Je vous remercie d'avance pour le temps accordé et reste à disposition pour plus d'informations.

Cordialement
BDA53