Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau
de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il
possible de détecter le niveau de sécurité des macros et si les 2 cases sont
sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un
message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Essaie ceci : '----------------------------------- Sub Test() 'Pour Excel 2007 seulement Dim Wsh As Object, X As Integer, Y As Integer Set Wsh = CreateObject("WScript.Shell")
'Macro Setting X = Wsh.Regread(Cle2007) Cle2007 = "HKCUSoftwareMicrosoftOffice12.0ExcelSecurityVBAWarnings" 'Niveau de sécurité , x est entre 1 et 4 '1 Niveau le plus faible, 4 le plus restrictif
Y = Wsh.Regread("HKCUSoftwareMicrosoftOffice12.0ExcelSecurityAccessVBOM") 'Trust access to vba projet object model '0 => case non cochée '1 -> case cochée '1 ou 0 End Sub '-----------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
Bonjour,
Essaie ceci :
'-----------------------------------
Sub Test()
'Pour Excel 2007 seulement
Dim Wsh As Object, X As Integer, Y As Integer
Set Wsh = CreateObject("WScript.Shell")
'Macro Setting
X = Wsh.Regread(Cle2007)
Cle2007 = "HKCUSoftwareMicrosoftOffice12.0ExcelSecurityVBAWarnings"
'Niveau de sécurité , x est entre 1 et 4
'1 Niveau le plus faible, 4 le plus restrictif
Y = Wsh.Regread("HKCUSoftwareMicrosoftOffice12.0ExcelSecurityAccessVBOM")
'Trust access to vba projet object model
'0 => case non cochée
'1 -> case cochée
'1 ou 0
End Sub
'-----------------------------------
"Patrick" <no.spam.pfredin@yahoo.ca> a écrit dans le message de groupe de discussion :
0283A78F-463F-4464-80F3-A3BDB6DB2C7A@microsoft.com...
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau
de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il
possible de détecter le niveau de sécurité des macros et si les 2 cases sont
sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un
message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Essaie ceci : '----------------------------------- Sub Test() 'Pour Excel 2007 seulement Dim Wsh As Object, X As Integer, Y As Integer Set Wsh = CreateObject("WScript.Shell")
'Macro Setting X = Wsh.Regread(Cle2007) Cle2007 = "HKCUSoftwareMicrosoftOffice12.0ExcelSecurityVBAWarnings" 'Niveau de sécurité , x est entre 1 et 4 '1 Niveau le plus faible, 4 le plus restrictif
Y = Wsh.Regread("HKCUSoftwareMicrosoftOffice12.0ExcelSecurityAccessVBOM") 'Trust access to vba projet object model '0 => case non cochée '1 -> case cochée '1 ou 0 End Sub '-----------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
michdenis
Cette version de la procédure est bonne pour Excel 2002 à 2007 Je ne peux pas tester les versions précédentes, elles ne sont pas installées. À la fin de la procédure, selon la valeur des variables, tu décideras du message que tu veux afficher pour tes usagers.
'----------------------------------------------------- Sub Test() 'Pour Excel 2002, 2003 et 2007 Dim Wsh As Object, X As Integer, Y As Integer Dim Ver As String, SecLevel As String Dim ConfVBA As String, ConfModel As String Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityLevel") 'faire confiance au projetVba 'si ConfVBA = 1 la case est cochée,0 -> case non cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityaccessVBOM") 'Faire confiance au modèle 'si ConfVBA = 0 la case est cochée,1 -> case non cochée ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model 'Si ConfVBA = 0 => case non cochée ''Si ConfVBA = 1 -> case cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityAccessVBOM") End Select
End Sub '-----------------------------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
Cette version de la procédure est bonne pour Excel 2002 à 2007
Je ne peux pas tester les versions précédentes, elles ne sont pas
installées.
À la fin de la procédure, selon la valeur des variables, tu décideras
du message que tu veux afficher pour tes usagers.
'-----------------------------------------------------
Sub Test()
'Pour Excel 2002, 2003 et 2007
Dim Wsh As Object, X As Integer, Y As Integer
Dim Ver As String, SecLevel As String
Dim ConfVBA As String, ConfModel As String
Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003
'Niveau de sécurité entre 1 et 4
'1 le niveau le plus bas, 4 le plus restrictif
SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityLevel")
'faire confiance au projetVba
'si ConfVBA = 1 la case est cochée,0 -> case non cochée
ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityaccessVBOM")
'Faire confiance au modèle
'si ConfVBA = 0 la case est cochée,1 -> case non cochée
ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007
'Niveau de sécurité entre 1 et 4
'1 le niveau le plus bas, 4 le plus restrictif
SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model
'Si ConfVBA = 0 => case non cochée
''Si ConfVBA = 1 -> case cochée
ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityAccessVBOM")
End Select
End Sub
'-----------------------------------------------------
"Patrick" <no.spam.pfredin@yahoo.ca> a écrit dans le message de groupe de discussion :
0283A78F-463F-4464-80F3-A3BDB6DB2C7A@microsoft.com...
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau
de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il
possible de détecter le niveau de sécurité des macros et si les 2 cases sont
sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un
message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Cette version de la procédure est bonne pour Excel 2002 à 2007 Je ne peux pas tester les versions précédentes, elles ne sont pas installées. À la fin de la procédure, selon la valeur des variables, tu décideras du message que tu veux afficher pour tes usagers.
'----------------------------------------------------- Sub Test() 'Pour Excel 2002, 2003 et 2007 Dim Wsh As Object, X As Integer, Y As Integer Dim Ver As String, SecLevel As String Dim ConfVBA As String, ConfModel As String Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityLevel") 'faire confiance au projetVba 'si ConfVBA = 1 la case est cochée,0 -> case non cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityaccessVBOM") 'Faire confiance au modèle 'si ConfVBA = 0 la case est cochée,1 -> case non cochée ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model 'Si ConfVBA = 0 => case non cochée ''Si ConfVBA = 1 -> case cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityAccessVBOM") End Select
End Sub '-----------------------------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
Patrick
Hormis la partie ConfModel, tout fonctionne bien.
Merci.
-- Patrick
"michdenis" wrote:
Cette version de la procédure est bonne pour Excel 2002 à 2007 Je ne peux pas tester les versions précédentes, elles ne sont pas installées. À la fin de la procédure, selon la valeur des variables, tu décideras du message que tu veux afficher pour tes usagers.
'----------------------------------------------------- Sub Test() 'Pour Excel 2002, 2003 et 2007 Dim Wsh As Object, X As Integer, Y As Integer Dim Ver As String, SecLevel As String Dim ConfVBA As String, ConfModel As String Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityLevel") 'faire confiance au projetVba 'si ConfVBA = 1 la case est cochée,0 -> case non cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityaccessVBOM") 'Faire confiance au modèle 'si ConfVBA = 0 la case est cochée,1 -> case non cochée ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model 'Si ConfVBA = 0 => case non cochée ''Si ConfVBA = 1 -> case cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityAccessVBOM") End Select
End Sub '-----------------------------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
Hormis la partie ConfModel, tout fonctionne bien.
Merci.
--
Patrick
"michdenis" wrote:
Cette version de la procédure est bonne pour Excel 2002 à 2007
Je ne peux pas tester les versions précédentes, elles ne sont pas
installées.
À la fin de la procédure, selon la valeur des variables, tu décideras
du message que tu veux afficher pour tes usagers.
'-----------------------------------------------------
Sub Test()
'Pour Excel 2002, 2003 et 2007
Dim Wsh As Object, X As Integer, Y As Integer
Dim Ver As String, SecLevel As String
Dim ConfVBA As String, ConfModel As String
Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003
'Niveau de sécurité entre 1 et 4
'1 le niveau le plus bas, 4 le plus restrictif
SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityLevel")
'faire confiance au projetVba
'si ConfVBA = 1 la case est cochée,0 -> case non cochée
ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityaccessVBOM")
'Faire confiance au modèle
'si ConfVBA = 0 la case est cochée,1 -> case non cochée
ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007
'Niveau de sécurité entre 1 et 4
'1 le niveau le plus bas, 4 le plus restrictif
SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model
'Si ConfVBA = 0 => case non cochée
''Si ConfVBA = 1 -> case cochée
ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Ver & "ExcelSecurityAccessVBOM")
End Select
End Sub
'-----------------------------------------------------
"Patrick" <no.spam.pfredin@yahoo.ca> a écrit dans le message de groupe de discussion :
0283A78F-463F-4464-80F3-A3BDB6DB2C7A@microsoft.com...
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau
de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il
possible de détecter le niveau de sécurité des macros et si les 2 cases sont
sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un
message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Cette version de la procédure est bonne pour Excel 2002 à 2007 Je ne peux pas tester les versions précédentes, elles ne sont pas installées. À la fin de la procédure, selon la valeur des variables, tu décideras du message que tu veux afficher pour tes usagers.
'----------------------------------------------------- Sub Test() 'Pour Excel 2002, 2003 et 2007 Dim Wsh As Object, X As Integer, Y As Integer Dim Ver As String, SecLevel As String Dim ConfVBA As String, ConfModel As String Set Wsh = CreateObject("WScript.Shell")
Ver = Application.Version
Select Case Ver
Case Is = "10.0", "11.0" 'Excel 2002 et Excel 2003 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityLevel") 'faire confiance au projetVba 'si ConfVBA = 1 la case est cochée,0 -> case non cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityaccessVBOM") 'Faire confiance au modèle 'si ConfVBA = 0 la case est cochée,1 -> case non cochée ConfModel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityDontTrustInstalledFiles")
Case Is = "12.0" 'Excel 2007 'Niveau de sécurité entre 1 et 4 '1 le niveau le plus bas, 4 le plus restrictif SecLevel = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityVBAWarnings")
'Trust access to vba projet object model 'Si ConfVBA = 0 => case non cochée ''Si ConfVBA = 1 -> case cochée ConfVBA = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _ Ver & "ExcelSecurityAccessVBOM") End Select
End Sub '-----------------------------------------------------
"Patrick" a écrit dans le message de groupe de discussion :
Bonjour,
Dans la boite de dialogue de sécurité des macros, il y a un onglet "Niveau de sécurité" et un autre "Sources fiables" ("Trusted Publishers" en anglais).
En VBA, même s'il n'est peut-être pas possible de le changer, est-il possible de détecter le niveau de sécurité des macros et si les 2 cases sont sont cochées dans l'onglet "Sources fiables" ? Mon but est d'afficher un message d,alerte à l'utilisateur pour lui rappeler de cocher ces 2 cases.
Merci pour votre aide.
-- Patrick
michdenis
| Hormis la partie ConfModel, tout fonctionne bien.
Quel problème rencontres-tu avec ConfModel ? Ton commentaire n'est pas très explicite sur le sujet !
Je l'ai testé à nouveau sur la version Excel 2003 et la valeur de la variable retourne bien de qui est énoncé.
| Hormis la partie ConfModel, tout fonctionne bien.
Quel problème rencontres-tu avec ConfModel ?
Ton commentaire n'est pas très explicite sur le sujet !
Je l'ai testé à nouveau sur la version Excel 2003 et la
valeur de la variable retourne bien de qui est énoncé.