Bloquer la commande coller

Signaler
Messages postés
4
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
11 juin 2008
-
Messages postés
4
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
11 juin 2008
-
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

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
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
Messages postés
4
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
11 juin 2008

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
Messages postés
4
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
11 juin 2008

Par contre la commande coller ne revient pas quand je met true...
Messages postés
4
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
11 juin 2008

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