Incompatibilité entre INTERSECT - DELETE ?

Bonjour le forum,

dans le fichier-exemple, j'ai placé deux zones nommées [CADRE_VERT] et [CADRE_ROUGE].
D'un clic-droit sur une cellule "1", je provoque la suppression de la ligne correspondante.

En fonction du cadre visé, le code s'exécute sans erreur ou non. Si j'inverse l'ordre des lignes de code VBA dans la procédure, la même chose se produit mais avec l'autre cadre.
Bon, j'imagine bien que c'est la commande DELETE qui affecte les deux zones nommées

25intersect.xlsm (14.44 Ko)

. OK.
Comment résoudre ce problème sans passer par EXIT SUB ?

Merci de votre éclairage!

A+

Bonjour curulis57, le forum,

Une version :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Intsect As Range

If Not Intersect(Target, Union(Range("CADRE_ROUGE"), Range("CADRE_VERT"))) Is Nothing Then _

   Set Intsect = Intersect(Range("CADRE_ROUGE"), Selection)
   If Not Intsect Is Nothing Then
      If Target = "1" Then Rows(Target.Row).EntireRow.Delete shift:=xlUp
   End If

   Set Intsect = Nothing

   Set Intsect = Intersect(Range("CADRE_VERT"), Selection)
      If Not Intsect Is Nothing Then
         If Target = "1" Then Rows(Target.Row).EntireRow.Delete shift:=xlUp
   End If

   Set Intsect = Nothing

End If
End Sub

Bizz

Salut Bizarre,

ton idée fonctionne très bien! Simple et efficace!
Je m'en vais appliquer cela dans la foulée!
Merci bien!

Si d'autres solutions existent, évidemment, je serai toute ouïe!

A+

Bonjour curulis57,

En fait, c'est une méthode que j'ai lue dans le code de BsAlv afin de détecter la sélection ... il restait l'Union des deux plages.

https://forum.excel-pratique.com/excel/selection-jours-feries-sur-jours-de-presence-193649#p1204243

Bizz

Rechercher des sujets similaires à "incompatibilite entre intersect delete"