Interdire copier coller ou Glisser déplacer des cellules

Bonjour le forum:

Dans un classeur je souhaite qu'il ne soit pas possible de copier des données entre cellules

ni de les glisser-déplacer entre cellules.

J'ai entrer dans un classeur un code VBA dans le dossier ThisWorkbook afin que ce code soit activé à chaque ouverture du fichier

Problème:

Si j'ouvre ce fichier, dans les options générales d'Excel, l'option "Glissement-déplacement de la cellule est désactivée et le reste pour tous les nouveau fichiers Excel

Voir le fichier ci-joint: "Empecher fonction copier et glisser.xlsm"

Merci pour votre aide

Cordialement

aalex85

Bonjour,

Essaye avec ce code qui remplace le tiens

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ' Activer le copier/coller et le Drag and Drop
  Call MenuActif(True)
End Sub

Private Sub Workbook_Open()
  ' Désactiver le copier/coller et le Drag and Drop
  Call MenuActif(False)
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Application.CutCopyMode = False 'Clear clipboard
End Sub

Sub MenuActif(Ok As Boolean)
  Dim oCtrl As Office.CommandBarControl
  For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
    oCtrl.Enabled = Ok
  Next oCtrl

  For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
    oCtrl.Enabled = Ok
  Next oCtrl
  ' Désactiver le Drag and Drop
  Application.CellDragAndDrop = Ok
End Sub

A+

Merci BrunoM45 pour ta réponse,

Ton code fonctionne parfaitement sur la partie copier coller

Par contre il ne fonctionne pas sur la partie, empêcher la fonction Glisser Copier ou Déplacer la cellule

Cordialement

aalex85

Je pense avoir trouvé une solution en modifiant légèrement ton code (Voir ligne 5 et ligne 25)

1) Private Sub Workbook_BeforeClose(Cancel As Boolean)

2) ' Activer le copier/coller et le Drag and Drop

3) Call MenuActif(True)

4) 'Réactiver le Drad and Drop

5) Application.CellDragAndDrop = True '(J'ai ajouté cette ligne pour réactiver le Drap and Drop en sortie de fichier)

6) End Sub

7) Private Sub Workbook_Open()

8) ' Désactiver le copier/coller et le Drag and Drop

9) Call MenuActif(False)

10) End Sub

11) Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

12) Application.CutCopyMode = False 'Clear clipboard

13) End Sub

14) Sub MenuActif(Ok As Boolean)

15) Dim oCtrl As Office.CommandBarControl

16) For Each oCtrl In Application.CommandBars.FindControls(ID:=21)

17) oCtrl.Enabled = Ok

18) Next oCtrl

19) For Each oCtrl In Application.CommandBars.FindControls(ID:=19)

20) oCtrl.Enabled = Ok

21) Next oCtrl

23) ' Désactiver le Drag and Drop

24) Application.CellDragAndDrop = False '(J'ai remplacer = OK par = False)

25) End Sub

Peux tu me confirmer que cela est correct

En tout cas merci pour ton aide

aalex85

Rechercher des sujets similaires à "interdire copier coller glisser deplacer"