Bloquer la commande coller

Xployd Messages postés 4 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 11 juin 2008 - 9 juin 2008 à 22:32
Xployd Messages postés 4 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 02:29
Bonjour je souhaiterais bloquer ou griser la commande coller du menu edition et du clic droit des l'ouverture d'un classeur excel afin de n'autoriser que la commande collage special ou mieux laisser la commande coller mais faire que le resultat corresponde a un collage special "valeur" directement comme ca se ca resterait transparent pour les utilisateurs du classeur mais ne changera pas la mise en forme des cellules
Merci de vos futurs commentaires j'espere que cela est possible

Cordialement

4 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
10 juin 2008 à 10:29
A intégrer dans ThisWorkbook, Evènement Open de l'objet Workbook pour que tes menus soient traités dès l'ouverture de ton fichier Excel :

Mise à jour du Menu Edition
    Application.CommandBars("Edit").Controls("C&oller").Enabled = False
    Application.CommandBars("Edit").Controls("C&oller").Visible = False
    
Mise à jour du Menu contextuel
    Application.CommandBars("Cell").Controls("C&oller").Enabled = False
    Application.CommandBars("Cell").Controls("C&oller").Visible = False

Tu choisis en fonction de ce que tu veux obtenir :
pour griser un menu, c'est la propriété Enabled, pour le masquer, c'est la propriété Visible.

Molenn
0
Xployd Messages postés 4 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 11 juin 2008
10 juin 2008 à 12:20
Bonjour super ca marche, saurais tu aussi comment faire pour qu'une fois dans le menu collage special seul la notion "valeur" soit accessible

Merci

Cordialement
0
Xployd Messages postés 4 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 11 juin 2008
10 juin 2008 à 12:52
Par contre la commande coller ne revient pas quand je met true...
0
Xployd Messages postés 4 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 11 juin 2008
11 juin 2008 à 02:29
Voici pour info le code que j'ai mis, si ca peux servir a d'autres cela permet d'eviter les modification de mise en forme d'un tableau a partir du clic droit mais laissant l'autorisation du menu edition (moins utilisé)

A metrre dans "ThisWorkbooks"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CommandBars("Cell").Controls("Coller...").Delete
    Application.CommandBars("Cell").Controls("Coller").Visible = True
    Application.CommandBars("Cell").Controls("Collage spécial...").Visible = True
    Application.CommandBars("Cell").Controls("Couper").Visible = True
    Application.CommandBars("Cell").Controls("Insérer...").Visible = True
    Application.CommandBars("Cell").Controls("Supprimer...").Visible = True
    Application.CommandBars("Cell").Controls("Liste déroulante de choix...").Visible = True
    Application.CommandBars("Cell").Controls("Nommer une plage...").Visible = True
    Application.CommandBars("Cell").Controls("Lien hypertexte").Visible = True
End Sub
Private Sub Workbook_Open()
    Application.CommandBars("Cell").Controls("Coller").Visible = False
    Application.CommandBars("Cell").Controls("Collage spécial...").Visible = False
    Application.CommandBars("Cell").Controls("Couper").Visible = False
    Application.CommandBars("Cell").Controls("Insérer...").Visible = False
    Application.CommandBars("Cell").Controls("Supprimer...").Visible = False
    Application.CommandBars("Cell").Controls("Liste déroulante de choix...").Visible = False
    Application.CommandBars("Cell").Controls("Nommer une plage...").Visible = False
    Application.CommandBars("Cell").Controls("Lien hypertexte").Visible = False
Set Tools = Application.CommandBars("Cell")
    With Tools.Controls.Add(, , , 3, True)
        .BeginGroup = False
        .Caption = "Coller..."
        .OnAction = "Collage"
    End With
   
End Sub

A mettre dans un module

Sub Collage()
'
' Collage Macro


    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
0
Rejoignez-nous