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