Interdire le glisser/déposer

FoLKeN

XLDnaute Junior
Bonjour à tous,

Cela fait quelque temps que je cherche à trouver le moyen d'empecher le glisser déposer d'une cellule à une autre dans excel pour éviter à l'utilisateur de casser toutes les références aux formules, etc. On m'a pas mal aidé sur un autre forum (notamment Myta, que je remercie pour toutes les réponses qu'il m'a apportées jusqu'à aujourd'hui), mais ca a l'air de sécher donc je me tente ici.

Voici un élément de réponse en VBA où l'on est arrivé:
Code:
'[A mettre dans chaque feuille]
Dim PrevCel As Range
Dim Etat As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CutCopyMode = xlCut Then Exit Sub
If PrevCel Is Nothing Then Exit Sub
If Target.Address <> PrevCel.Address Then
  If Etat = True Then
    Etat = False: Exit Sub
  End If
Etat = True
Application.Undo
Application.CutCopyMode = False
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set PrevCel = Target
End Sub

Je crois que ca déconne à cause du fait que la ligne Application.Undo réappelle Worksheet_SelectionChange et Worksheet_Change mais je n'en suis pas sûr.
Si vous arrivez à compléter, ou vous avez d'autres solutions, je suis preneur :)

Merci pour votre aide
 

Catrice

XLDnaute Barbatruc
Re : Interdire le glisser/déposer

Bonsoir,

tu peux essayer ceci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("C7:E15"), Target) Is Nothing Then
Application.CellDragAndDrop = True
Else
Application.CellDragAndDrop = False
End If
End Sub

Impossible de faire un glisser déplacer dans la zone en jaune.
voir fichier joint.
 

Pièces jointes

  • Classeur1.xls
    24 KB · Affichages: 293
  • Classeur1.xls
    24 KB · Affichages: 314
  • Classeur1.xls
    24 KB · Affichages: 327