Microsoft 365 Activer l’option « Accès approuvé au modèle d'objet du projet VBA"

Skyna

XLDnaute Occasionnel
Bonjour,
Quelqu'un d'entre vous connait-il un code VBA qui permette de vérifier si la case option « Accès approuvé au modèle d'objet du projet VBA" située dans le centre de gestion de la confidentialité - paramètres des macros - paramètres de macros pour les développeurs est validée et la valider si besoin ?
Je vous remercie par avance
 

Skyna

XLDnaute Occasionnel
Bonjour,
Je me suis déjà posé la question. Je ne vois pas d'autre solution pour utiliser le bout de code suivant :
"If ThisWorkbook.VBProject.Protection = vbext_pp_none Then ..."
L'objectif est de vérifier pour n'importe quel utilisateur d'un classeur excel que le mot de passe du projet VBA est toujours présent..
Si tu as une solution je suis preneur..
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
ben non justement il n'y en a pas et heureusement d'ailleurs
si on pouvait dé sécuriser par vba dis moi un peu a quoi pourrait elle bien servir cette sécurité? 🤣

imagine si c'etait possible
je trouve un de tes fichiers avec mot de passe dans project
je ne peux donc pas voir les codes
avec un autre classeur je coche ou decoche ce point par vba
je voir les codes et ouvrir ton project et donc voir le mot de passe

qu'est ce qu'il en reste te ta sécurité?

ben .......peau de banane et les fils de la banane t'en fait des scoubidoubidou

alors déjà que elle est infiniment mince cette sécurité, si on pouvait aussi facilement la contourner ce serait comique

c'est plus clair ?

bien que il existe des outils gratuit pour faire sauter les MDP dans le project d'un classeur excel
moyen des petites manips pas très compliquées
 
Dernière édition:

Skyna

XLDnaute Occasionnel
justement il est possible de faire sauter les mots de passe projet VBA.. et donc l'objectif est d'affecter obligatoirement un mot de passe à chaque fois que le classeur est ouvert pour nne pas que le code soit lu et/ou modifié
 

patricktoulon

XLDnaute Barbatruc
re
heu.... comment te dire heu....
tu tourne en rond là
on ne peut pas cocher ou décocher cet option par vba
donc ton test va planter si ca n'est pas coché
si il y avait moyen de cocher il y aurait moyen de faire sauter ce test
conclusion tu tourne en rond

tourne la roue de l'autobus
tourne tourne tourne
tourne la roue de l'autobus
🥳🥳🥳🥳🥳🥳🥳

si tu pige pas je crois que l'on peut plus rien pour toi
 

mromain

XLDnaute Barbatruc
Bonjour Skyna, patricktoulon, le forum,

Cette information (accès autorisé ou non) est stockée dans la base de registre de Windows ici :
Code:
HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\Excel\Security\AccessVBOM
Il est possible de modifier cette valeur en VBA :
VB:
 'propriétés utilisées pour gérer l'option 'Accès approuvé au modèle d'objet du projet VBA' d'Excel
Public Property Let VbomAccess(p_b_value As Boolean)
Static s_o_wshShell As Object   'IWshRuntimeLibrary.WshShell de la référence 'Windows Script Host Object Model'
Static s_s_keyName As String
    If s_o_wshShell Is Nothing Then Set s_o_wshShell = CreateObject("WScript.Shell")
    If s_s_keyName Like vbNullString Then s_s_keyName = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM"
    s_o_wshShell.RegWrite s_s_keyName, -CLng(p_b_value), "REG_DWORD"
End Property
Public Property Get VbomAccess() As Boolean
Static s_o_wshShell As Object   'IWshRuntimeLibrary.WshShell de la référence 'Windows Script Host Object Model'
Static s_s_keyName As String
    If s_o_wshShell Is Nothing Then Set s_o_wshShell = CreateObject("WScript.Shell")
    If s_s_keyName Like vbNullString Then s_s_keyName = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM"
    VbomAccess = s_o_wshShell.RegRead(s_s_keyName)
End Property

Ainsi, tu peux utiliser cette propriété ainsi :
VB:
    ...
    'si l'option n'est pas cochée, la cocher
    If Not VbomAccess Then VbomAccess = True
    ...

A+
 

mromain

XLDnaute Barbatruc
Salut mromain,

Sauf qu'en "bisouillant" la BDR tu t'exposes à de gros soucis :eek:
Et cela n'est pris en compte, normalement, qu'au redémarrage du PC

A+
Effectivement,

Après d'autres test, ce code n'a pas l'air de fonctionner...
Même si visuellement l'état de la CheckBox change, cela n'a pas l'air de changer vraiment l'option...

On dirait qu'Excel garde en mémoire l'état à l'ouverture et le remet au même état à la fermeture.

Il faudrait donc exécuter ce code en-dehors de Excel, avec toutes ses instances de fermées...

A+
 

aurelio.ewane

XLDnaute Occasionnel
Effectivement,

Après d'autres test, ce code n'a pas l'air de fonctionner...
Même si visuellement l'état de la CheckBox change, cela n'a pas l'air de changer vraiment l'option...

On dirait qu'Excel garde en mémoire l'état à l'ouverture et le remet au même état à la fermeture.

Il faudrait donc exécuter ce code en-dehors de Excel, avec toutes ses instances de fermées...

A+
une méthode consiste à créer un exe avec excek
 

Discussions similaires

Statistiques des forums

Discussions
314 862
Messages
2 113 632
Membres
111 927
dernier inscrit
kavelar