Désactiver "Copier" du ruban en VBA

Résolu
xav62000 Messages postés 25 Date d'inscription samedi 20 avril 2024 Statut Membre Dernière intervention 30 août 2024 - 29 août 2024 à 22:07
danielc0 Messages postés 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 - 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 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 148
30 août 2024 à 09:27

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 samedi 20 avril 2024 Statut Membre Dernière intervention 30 août 2024 18
30 août 2024 à 11:13

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 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 148
30 août 2024 à 14:41

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 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 148
30 août 2024 à 14:51

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 1298 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 30 novembre 2024 148
30 août 2024 à 17:28

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 samedi 20 avril 2024 Statut Membre Dernière intervention 30 août 2024 18
30 août 2024 à 15:47

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