Désactiver "Copier" du ruban en VBA

Résolu
xav62000 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
danielc0 Messages postés 1739 Date d'inscription   Statut Membre Dernière intervention   - 30 août 2024 à 17:28

Bonjour,

Y a t'il moyen de désactiver "Copier" du ruban en VBA sans mettre la page en plein ecran.

J'ai desactiver les touches CTRL C et V + la souris, Merci

Cordialement


Private Sub Workbook_Open()

Application.ScreenUpdating = False


'Interdiction CTRL C et V + souris)
For Each K In Array("^", "%", "+^", "+%", "^%", "+^%")
'Lettre C & C
Application.OnKey K & Chr$(99), ""
Application.OnKey K & Chr$(67), ""
'Lettre V & V
Application.OnKey K & Chr$(118), ""
Application.OnKey K & Chr$(86), ""
Next K

End Sub


Windows / Edge 128.0.0.0

A voir également:

6 réponses

danielc0 Messages postés 1739 Date d'inscription   Statut Membre Dernière intervention   211
 

Bonjour,

Il est possible d'inhiber le "coller"; pourquoi veux-tu désactiver le "copier" ?

Daniel


1
xav62000 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   18
 

Bonjour, 

Pour interdire de copier et de coller sur une autre feuille d'un autre classeur excel ou Word.

Cordialement

Xavier

1
danielc0 Messages postés 1739 Date d'inscription   Statut Membre Dernière intervention   211
 

Pour Excel seulement. A mettre dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim UndoList As String
  UndoList = Application.CommandBars("Standard").Controls("&Annuler").List(1)
  If Left(UndoList, 6) = "Coller" Then
    Application.Undo
  End If
End Sub

(valable pour Excel français).

Daniel


1
danielc0 Messages postés 1739 Date d'inscription   Statut Membre Dernière intervention   211
 

Maintenant, on peut aussi inhiber les "collage spécial".

Daniel


1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1739 Date d'inscription   Statut Membre Dernière intervention   211
 

Non, ça ne fonctionne pas. Dans ce cas, on n'arrive pas à récupérer la liste des commandes enregistrées. J'ai trouvé ceci sur internet :

1. Dans un module standard :

Sub ClearClipboard()
  Dim Sht As Worksheet
  Set Sht = ActiveSheet
  With Sht
   .Cells(.Cells.Rows.Count, .Cells.Columns.Count).Copy
  End With
  Application.CutCopyMode = False
End Sub

Dans ThisWorkbook :

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

On a bien sûr intérêt à limiter aux seules feuilles nécessaires.

Daniel


1
xav62000 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   18
 

OK, est-il possible de coller le code dans le this workbook pour le classeur complet avec les collages spéciaux alors. avec les touches c et V + la souris ??

0