Xployd
Messages postés4Date d'inscriptionsamedi 7 juin 2008StatutMembreDernière intervention11 juin 2008
-
9 juin 2008 à 22:32
Xployd
Messages postés4Date d'inscriptionsamedi 7 juin 2008StatutMembreDernière intervention11 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
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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.
Xployd
Messages postés4Date d'inscriptionsamedi 7 juin 2008StatutMembreDernière intervention11 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