3 votes

Désactiver File>Share dans Excel avec VBA

J'ai besoin d'un moyen de désactiver la possibilité pour un utilisateur d'accéder (ou d'utiliser) le menu Fichier > Partager.

J'ai un système similaire pour d'autres commandes de sauvegarde, comme ci-dessous, mais j'ai besoin de quelque chose pour cette fonction également.

Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save As...").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save").Enabled = False

J'ai essayé :

Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Share").Enabled = False

en vain

Mon objectif est d'empêcher les utilisateurs d'enregistrer des copies de ce fichier (hébergé sur un serveur). Je comprends parfaitement qu'Excel n'est pas censé être sécurisé et qu'il existe toujours un moyen de le faire, mais je veux rendre la tâche aussi difficile que possible pour le citoyen moyen.

Salutations

1voto

destination-data Points 4216

Vous pourriez utiliser une boucle for each pour extraire les commandes disponibles :

' Iterate available commands from the file command bar.
Sub PrintAllCommandBarControlNames()

    Dim cbControl As CommandBarControl
    For Each cbControl In Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls

        Debug.Print cbControl.Caption
    Next
End Sub

Exécuté sur Excel 2010, je n'ai pas trouvé d'option de partage. Cela peut être dû à mon système. Le résultat ci-dessus a été obtenu :

&New...
&Open...
&Close
&Save
Save &As...
Single Web Page (*.mht)
Save &Workspace...
File Searc&h...
Per&mission...
Per&mission
Ch&eck Out
Ch&eck In...
Ve&rsion History...
We&b Page Preview
Page Set&up...
Prin&t Area
Print Pre&view
&Print...
Sen&d To
Propert&ies
&Recent File Name Goes Here
&Recent File Name Goes Here
Sign ou&t
E&xit Excel

1voto

CLR Points 6291

Le menu "backstage" (que vous obtenez lorsque vous cliquez sur le menu Fichier en haut à gauche) fait effectivement partie du ruban et n'est pas une barre de commande. Si vous essayez de désactiver l'option Enregistrer, par exemple, en utilisant votre exemple, vous constaterez qu'elle ne fonctionne pas sur 2010/2013, etc.

Il existe cette réponse qui vous explique comment manipuler ces éléments de menu dans le ruban : Supprimer "Enregistrer et envoyer" du menu Fichier dans Excel 2010 en utilisant un XML personnalisé et l'un des éléments s'appelle TabShare .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X