Erreur d'éxecution 1004 La méthode 'Intersect' de l'objet _Appli.. a échoué

Bonsoir à tous,

Nouveau en VBA, malgrés mes tentatives je ne parviens pas à résoudre l'erreur en titre, voici la partie incriminée :

If Not Application.Intersect(Target, Worksheets("DATA").Range("M182:M185")) Is Nothing Then

Call CALCUL_PAYLOAD_1

Call CALCUL_PAYLOAD_2

End If

Sachant qu'au début du module j'active :

Sub Worksheet_Change(ByVal Target As Range)

Application.Workbooks("Payload UNHAS").Worksheets("PAYLOAD").Activate

comment faire

Merci d'avance pour votre expertise.

Ludovic

Bonjour,

essaie ceci

If Not Intersect(Target, Range("M182:M185")) Is Nothing Then

Bonsoir,

Si ton instruction "Intersect" est placée dans la procédure événementielle d'une feuille, elle ne peut s'appliquer qu'aux plages de cette feuille. Le code étant placé dans une feuille, l'objet Me représente donc cette feuille.

Ton instruction ne peut qu'être :

If Not Intersect(Target, Me.Range("M182:M185")) Is Nothing Then

ou également celle recommandée par Steelson. Sans la précision de l'objet Me, le Range se rapporte par défaut à la feuille où est situé le code.

Merci pour vos réponses rapides.

Je ne comprend pas cet objet "Me", à quoi sert-il ?

En effet je dois faire appel au Range M182:M185 mais d'une autre feuille, je n'ai pas vraiment le choix

Est-ce que si je l'écrit dans un module à part peut-être ?

En effet je dois faire appel au Range M182:M185 mais d'une autre feuille, je n'ai pas vraiment le choix

Alors, il faut placer ta procédure événementielle dans cette autre feuille.

En effet je dois faire appel au Range M182:M185 mais d'une autre feuille, je n'ai pas vraiment le choix

Mais cela n'a pas de sens dans le cadre d'un Worksheet_Change !!

Peux-tu décrire ce que tu veux ?

Que signifie pour toi "target" dans ton cas précis ?

Mets nous un bout de fichier si besoin.

Justement je ne comprend pas tout à fait ce que j'écris, j'ai trouvé ce code en fouillant sur les forums, cela marche dans certain cas. Je ne déclare pourtant aucune variable "target"...

Je souhaite simplement que dans le cas d'une nouvelle entrée dans le range spécifié d'une autre feuille, cela déroule ma procédure demandée.

Target est la zone qui est affectée par un changement manuel (pas par formule) de la feuille, donc de la feuille affichée !

D'accord ! "target" est une simple "instruction VBA" alors ?

Cela marche en plaçant une deuxième macro "worksheet_change" dans l'autre feuille, je ne pensais pas que cela était possible...

Merci )

Rechercher des sujets similaires à "erreur execution 1004 methode intersect objet appli echoue"