1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count <> Target.Cells(1).MergeArea.Cells.Count Then Exit Sub
'si le nombre de cellules de target est différent du nombre de cellules qui sont
'fusionnées avec la première cellule de target, on sort
If Not (Intersect(Target, Union([A4:B15], [A18:A55], [A57:A73], [A76:A82], [A84:A90], [C5:C23], [C25:C51], [C53:C78], [C80:C90])) Is Nothing) Then
'si target appartient à la plage (A4:B15,A18:A55,A57:A73,A76:A82,A84:A90,C5:C23,C25:C59,C61:C78,C80:C90)
Cancel = True
Nom_V = Target
Target.Copy
ElseIf Not (Intersect(Target, Union([E2:AB49], [AC3:AC11], [AC13:AC22], [AC24:AC32], [AC34:AC37], [AC39:AC43], [AC45:AC49], [AD5:AD28], [AD30:AD49])) Is Nothing) Then
'sinon si target apparteint à la plage (E2:AB49,AC3:AC11,AC13:AC22,AC24:AC32,AC34:AC37,AC39:AC43,AC45:AC49,AD5:AD28,AD30:AD49)
Cancel = True
Application.CutCopyMode = False
Target = Nom_V
Nom_V = ""
'et si la variable Nom_V est vide, ne rien faire, cad click droit normal
Else
'sinon (target n'appartient à aucune des 2 plages tesées)
Nom_V = ""
End If
End Sub |