Comment interdire des copier-coller

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marmotte18

XLDnaute Impliqué
Bonjour,

Comment devrais-je procéder pour interdire des copier-coller, couper-coller ou tirage de formules (haut, bas, droite et gauche) ?

Merci pa ravance
 
Re : Comment interdire des copier-coller

J'ai beaucoup appris de ce que je viens de lire, mais reste encore bloqué sur une difficulté.
Je voudrais interdire les copier coller et Drag & Drop mais avec une exception.

Si la zone copiée dans la feuille 1 se situe dans la colonne I je voudrais pouvoir le copier dans la feuille 2
dans la même colonne. Dans tous les autres cas copier coller et Drag & Drop doivent être impossible.
Voici ce que j'ai écrit :

Private Sub Workbook_Open()

'Interdit le tirage des formules dans les 4 directions et le glisser déplacer
Application.CellDragAndDrop = False

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

' reperer la zone receptrice et vérifier qu'elle se situe en colonne 9

Dim Plage As String
Plage = Selection.Address
colonne = ActiveCell.Column
If colonne = 9 Then ' Colonne I
Application.CutCopyMode = True
'MsgBox ("Workbook_SheetSelectionChange TRUE")

Else
'Interdit le collage sur la même feuille que celle qui a servi à faire la copie
Application.CutCopyMode = False
End If

End Sub
______________________________________________
Private Sub Workbook_Activate()

Dim Plage As String
Plage = Selection.Address
colonne = ActiveCell.Column
If colonne = 9 Then
Application.CutCopyMode = True
'MsgBox ("Workbook_SheetActivate TRUE")

Else
'Interdit le collage sur la même feuille que celle qui a servi à faire la copie
Application.CutCopyMode = False
End If
End Sub
_________________________________________________________________
Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Active le tirage des formules dans les 4 directions et
'la technique du glisser-déplacer pour les cellules.
Application.CellDragAndDrop = True
Application.CutCopyMode = True


End Sub

____________________________________________________________________
Feuille 1 :

Private Sub Worksheet_Activate()
Dim Plage As String
Plage = Selection.Address
colonne = ActiveCell.Column
If colonne = 9 Then
Application.CutCopyMode = True

Else
'Interdit le collage sur la même feuille que celle qui a servi à faire la copie
Application.CutCopyMode = False
End If

End Sub

_____________________________________________________

Feuille 2 :

Private Sub Worksheet_Activate()
Dim Plage As String
Plage = Selection.Address
colonne = ActiveCell.Column
If colonne = 9 Then
Application.CutCopyMode = True
'MsgBox ("WorkSheetActivate Bénévoles TRUE")

Else
'Interdit le collage sur la même feuille que celle qui a servi à faire la copie
Application.CutCopyMode = False
End If

End Sub

____________________________________________________________________________________

Pas de souci pour le COPIER
Lorsque je me positionnes sur feuille 2 en colonne I je ne peux pas faire le COLLER
(Je ne peux pas faire de coller nulle part d'ailleurs)

J'ai noté aussi qu'en faisant apparaître le presse papier OFFICE le Coller fonctionne....mais sans aucune restrictions...ce qui ne me convient bien sûr pas!

Merci d'avance de votre aide sur ce sujet
 
Re : Comment interdire des copier-coller

Merci Marmotte, cela marche parfaitement bien.
Néanmoins j'ai souhaité introduire une exception à l'interdiction du Copier/coller en autorisant uniquement cette fonction lorsque la colonne copiée est la colonne I et que la colonne réceptrice (d'une autre feuille) est également I.
Pour ce faire j'ai ajouté dans le code quelques tests qui remettent le copier/coller en mode TRUE.
par exemple dans le Worksheet activate ou le Workbook_SheetSelectionChange:
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
Dim Plage As String
Plage = Selection.Address
colonne = ActiveCell.Column
If colonne = 9 Then
Application.CutCopyMode = True
End If

End Sub

Résultat: la fonction coller reste désespérément inopérante.

Merci par avance de ton aide sur ce sujet.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
148
Réponses
10
Affichages
375
Réponses
3
Affichages
115
Retour