Insérer/Supprimer en VBA

M

Mauco

Guest
Bonjour à tous,

Je vous soumets les lignes ci-dessous :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Integer, y As Integer, Zone As Range, Cell As Range, Zone2 As Range, Cell2 As Range
On Error Resume Next
Set Zone = Range('Zone')
Set Zone2 = Range('Zone2')
If Application.Intersect(Target, Zone2) Is Nothing Then Exit Sub
y = Target.Range('A2').Column
For Each Cell2 In Zone2
Range(Cells(1, y), Cells(41, y)).Select
Selection.Delete Shift:=xlToLeft
Cells(7, y).Select
Exit Sub
Next Cell2
If Application.Intersect(Target, Zone) Is Nothing Then Exit Sub
x = Target.Range('A1').Column
For Each Cell In Zone
Range(Cells(5, x), Cells(41, x)).Select
Selection.Copy
Cells(5, x).Select
Selection.Insert Shift:=xlToRight
Cells(7, x).Select
Exit Sub
Next Cell
End Sub

En principe, en cliquant à droite selon Zone ou Zone 2, ça doit insérer ou supprimer la colonne où l'on clique.
En fait, en décomposant le programme en 2 (insérer ou supprimer) ça marche super. Le problème c'est quand j'essaye de les réunir sous la même Private Sub.

Si vous avez des idées, je suis preneur...

J'ai également essayé de faire fonctionner le programme avec une touche de raccourci ou un bouton, mais je pense avoir un problème avec les variables (x ou y). Le problème doit venir de l'adresse de la cellule active qui renvoi le numéro de colonne à insérer ou à supprimer.

Merci à tous ceux qui prendront le temps de lire ce post.

A +

Mauco
 

Statistiques des forums

Discussions
314 073
Messages
2 105 361
Membres
109 339
dernier inscrit
Nature Sereine