Not intersect : erreur 1004 sur plage de cellules

Bonjour à tous,

j'ai à nouveau de besoin de votre aide. Vous m'avez aiguillé vers la méthode NOT INTERSECT pour permettre l'affichage / non affichage de feuilles en fonction des cellules contrôlées. Cela fonctionne, bien entendu, à merveille quand je vérifie cellule par cellule.

En revanche, je n'arrive pas à faire fonctionner cette méthode quand je veux vérifier une plage de cellule.

Le code

If Not Application.Intersect(Target, Range("C5:C6,F9:F10,I11:I20,I24:I33")) Is Nothing Then

me retourne une erreur de type 1004 "la méthode Range de l'objet Worksheets a échoué".

je me doute que cela doit venir de la façon dont j'ai écrit les plages à surveiller. Pourtant je me suis appuyé sur ce fil du forum (https://forum.excel-pratique.com/astuces/vba-utilisation-de-la-methode-intersect-1314) mais rien n'y fait je n'y arrive pas.

Pouvez vous me guider ?

merci :)

Bonjour,

En enlevant la protection de la feuille je ne rencontre aucun problème.
Je suis allé un peu vite en besogne je vérifie

Bonjour Fcyspm30 ,merci pour la réponse.

Le morceau de code

 Sheets("DONNEES").Protect Password:="CRF", userinterfaceonly:=Tru

n'a bien entendu rien à faire ici. J'ai fait un copier coller du début de ma macro pour essayer de travailler sur un fichier à part. J'aurai du retirer cette instruction.

Même en la retirant j'ai toujours le même retour d'erreur :(

Oui j'ai remarqué que l'erreur existe quand même

Bonjour,

Pour ma part, j'ai effectivement une erreur, mais de type 13, et qui concerne des instructions plus bas...

If Range("F10:F11") <> "" Then

Et d'autres, également, du même type.

Ce type de code ne peut fonctionner, il faudrait peut-être utiliser :

If Application.CountA(Range("F10:F11")) > 0 Then

Soit la transcription de la formule NBVAL

Peut-être?

merci Cousinhub, j'ai essayé à cette piste qui me semble intéressante (et plutôt logique) mais j'ai toujours l'erreur 1004 :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("C5:C6,F9:F10,I11:I20,I24:I33")) Is Nothing Then

    If Range("C5") <> "" Or Range("C6") <> "" Then

        Feuil2.Visible = xlSheetVisible
        Feuil3.Visible = xlSheetHidden

    Else

        Feuil2.Visible = xlSheetHidden
        Feuil3.Visible = xlSheetHidden

    End If

If Application.CountA(Range("F19:F10")) > 0 Then

        Feuil3.Visible = xlSheetVisible

    Else

        Feuil3.Visible = xlSheetHidden

    End If

If Application.CountA(Range("I11:I20")) > 0 Then

        Feuil5.Visible = xlSheetVisible

    Else

        Feuil5.Visible = xlSheetHidden

    End If

    End If

    End Sub

Avec ce nouveau code, et ton fichier du 1er post, je n'ai aucune erreur...

Donc, soit tu ne nous as pas donné le bon fichier, soit....????

oui ça fonctionne parfaitement tu as raison :)

Il a juste fallu que je relance Excel (j'ai noté que quand on trifouille un peu trop, il fait de l'erreur 1004 un peu comme si il perdait la boule).

Un très grand merci pour cette aide :) (et merci aussi à fcyspm30 de s'être penché sur ma question).

Bon week end !

Rechercher des sujets similaires à "intersect erreur 1004 plage"