Recuperer info de securite

Le
Albator V
bonjour, je voudrais savoir s'il est possible de recuperer l'info de securite
des macros "faire confiance au projet visual basic" en vba. j'ai une macro
dans classeur et je voudrais afficher un message si cette options n'est pas
cochée.
merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5071001
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub
MichDenis
Le #5070891
La dernière ligne de code de la procédure :
-> 1: Set VBP = Nothing
doit être supprimé...elle ne sert à rien !!! (un oubli)




"MichDenis" %
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub
Albator V
Le #5070741
Merci bien... je sais maintenant recuperer le niveau de securite des macros.
par contre je ne recupere pas l'info "faire confiance au projet visual
basic". e seul moyen c'est de lance une macro avec par exemple Set VBComps =
ActiveWorkbook.VBProject.VBComponents se qui fait plante la macro si la
confiance n'est pas attribuee au projet vba.


La dernière ligne de code de la procédure :
-> 1: Set VBP = Nothing
doit être supprimé...elle ne sert à rien !!! (un oubli)




"MichDenis" %
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub






MichDenis
Le #5070611
Avant d'ouvir excel, il y a moyen de mettre le niveau de sécurité à 2
et de cocher les 2 cases dans la fenêtre de l'éditeur approuvé.

Pour ce faire, tu dois utiliser un fichier ayant une extension .VBS

Tu ouvres l'éditeur de texte NotePad et tu copies ce qui suit :
Au moment d'enregistrer ton fichier, tu lui donnes l'extension .VBS

Il ne te reste plus qu'à double-cliquer dessus pour l'exécuter.

Attention : Le service de messagerie pour couper des lignes de code
à des endroits inopportums.

'-------------------------------------------
'Excel Doit être fermé

Dim wsh, objXl

'Pour s'assurer qu'excel n'est pas ouvert.

On Error Resume Next
Set objXl=GetObject(,"Excel.Application")
If Not IsEmpty(objXl) Then
Msgbox "Fermer excel pour exécuter ce scr1pt...",64,"La direction"
WScript.Quit
else
Set objxl=createobject("Excel.Application")
Ver = objxl.Version
set objxl = nothing
End If
Err.Clear

Set wsh = WScript.CreateObject("WScript.Shell")

'Niveau de sécurité 2 pour 2ième niveau
wsh.RegWrite "HKCUSoftwareMicrosoftOffice11.0ExcelSecurityLevel",2,"REG_DWORD"

if ver > 10 then
'Faire confiance au projet VBA -> 1 pour que la case soit cochée
' -> 0 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver & "ExcelSecurityaccessVBOM",1,"REG_DWORD"

'Faire confiance au modèle -> 0 pour que la case soit cochée
' -> 1 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver &
"ExcelSecurityDontTrustInstalledFiles",0,"REG_DWORD"
end if
'-------------------------------------------




"Albator V"
Merci bien... je sais maintenant recuperer le niveau de securite des macros.
par contre je ne recupere pas l'info "faire confiance au projet visual
basic". e seul moyen c'est de lance une macro avec par exemple Set VBComps ActiveWorkbook.VBProject.VBComponents se qui fait plante la macro si la
confiance n'est pas attribuee au projet vba.


La dernière ligne de code de la procédure :
-> 1: Set VBP = Nothing
doit être supprimé...elle ne sert à rien !!! (un oubli)




"MichDenis" %
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub






MichDenis
Le #5070571
au lieu de ceci :

if ver > 10 then

IL aurait fallu que j'utilises

if ver >= 10 then

Car je crois que la version Excel 2002 est comme la version 2003
concernant les 2 cases à cocher dans la fenêtre Éditeur approuvé




"MichDenis"
Avant d'ouvir excel, il y a moyen de mettre le niveau de sécurité à 2
et de cocher les 2 cases dans la fenêtre de l'éditeur approuvé.

Pour ce faire, tu dois utiliser un fichier ayant une extension .VBS

Tu ouvres l'éditeur de texte NotePad et tu copies ce qui suit :
Au moment d'enregistrer ton fichier, tu lui donnes l'extension .VBS

Il ne te reste plus qu'à double-cliquer dessus pour l'exécuter.

Attention : Le service de messagerie pour couper des lignes de code
à des endroits inopportums.

'-------------------------------------------
'Excel Doit être fermé

Dim wsh, objXl

'Pour s'assurer qu'excel n'est pas ouvert.

On Error Resume Next
Set objXl=GetObject(,"Excel.Application")
If Not IsEmpty(objXl) Then
Msgbox "Fermer excel pour exécuter ce scr1pt...",64,"La direction"
WScript.Quit
else
Set objxl=createobject("Excel.Application")
Ver = objxl.Version
set objxl = nothing
End If
Err.Clear

Set wsh = WScript.CreateObject("WScript.Shell")

'Niveau de sécurité 2 pour 2ième niveau
wsh.RegWrite "HKCUSoftwareMicrosoftOffice11.0ExcelSecurityLevel",2,"REG_DWORD"

if ver > 10 then
'Faire confiance au projet VBA -> 1 pour que la case soit cochée
' -> 0 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver & "ExcelSecurityaccessVBOM",1,"REG_DWORD"

'Faire confiance au modèle -> 0 pour que la case soit cochée
' -> 1 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver &
"ExcelSecurityDontTrustInstalledFiles",0,"REG_DWORD"
end if
'-------------------------------------------




"Albator V"
Merci bien... je sais maintenant recuperer le niveau de securite des macros.
par contre je ne recupere pas l'info "faire confiance au projet visual
basic". e seul moyen c'est de lance une macro avec par exemple Set VBComps ActiveWorkbook.VBProject.VBComponents se qui fait plante la macro si la
confiance n'est pas attribuee au projet vba.


La dernière ligne de code de la procédure :
-> 1: Set VBP = Nothing
doit être supprimé...elle ne sert à rien !!! (un oubli)




"MichDenis" %
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub






MichDenis
Le #5070561
Une nouvelle copie pour corrigée des coquilles sur les notes explicatives !

'-------------------------------------
'Excel Doit être fermé

Dim wsh, objXl

'Pour s'assurer qu'excel n'est pas ouvert.

On Error Resume Next
Set objXl=GetObject(,"Excel.Application")
If Not IsEmpty(objXl) Then
Msgbox "Fermer excel pour exécuter ce scr1pt...",64,"La direction"
WScript.Quit
else
Set objxl=createobject("Excel.Application")
Ver = objxl.Version
set objxl = nothing
End If
Err.Clear

Set wsh = WScript.CreateObject("WScript.Shell")

'Niveau de sécurité 2 pour 2ième niveau
wsh.RegWrite "HKCUSoftwareMicrosoftOffice11.0ExcelSecurityLevel",2,"REG_DWORD"
if ver >= 10 then
'Faire confiance au projet VBA -> 1 pour que la case soit cochée
' -> 0 pour que la case soit décochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver & "ExcelSecurityaccessVBOM",1,"REG_DWORD"

'Faire confiance au modèle -> 0 pour que la case soit cochée
' -> 1 pour que la case soit décochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver &
"ExcelSecurityDontTrustInstalledFiles",0,"REG_DWORD"
end if
'-------------------------------------


"MichDenis"
Avant d'ouvir excel, il y a moyen de mettre le niveau de sécurité à 2
et de cocher les 2 cases dans la fenêtre de l'éditeur approuvé.

Pour ce faire, tu dois utiliser un fichier ayant une extension .VBS

Tu ouvres l'éditeur de texte NotePad et tu copies ce qui suit :
Au moment d'enregistrer ton fichier, tu lui donnes l'extension .VBS

Il ne te reste plus qu'à double-cliquer dessus pour l'exécuter.

Attention : Le service de messagerie pour couper des lignes de code
à des endroits inopportums.

'-------------------------------------------
'Excel Doit être fermé

Dim wsh, objXl

'Pour s'assurer qu'excel n'est pas ouvert.

On Error Resume Next
Set objXl=GetObject(,"Excel.Application")
If Not IsEmpty(objXl) Then
Msgbox "Fermer excel pour exécuter ce scr1pt...",64,"La direction"
WScript.Quit
else
Set objxl=createobject("Excel.Application")
Ver = objxl.Version
set objxl = nothing
End If
Err.Clear

Set wsh = WScript.CreateObject("WScript.Shell")

'Niveau de sécurité 2 pour 2ième niveau
wsh.RegWrite "HKCUSoftwareMicrosoftOffice11.0ExcelSecurityLevel",2,"REG_DWORD"

if ver > 10 then
'Faire confiance au projet VBA -> 1 pour que la case soit cochée
' -> 0 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver & "ExcelSecurityaccessVBOM",1,"REG_DWORD"

'Faire confiance au modèle -> 0 pour que la case soit cochée
' -> 1 pour que la case soit cochée
wsh.RegWrite "HKCUSoftwareMicrosoftOffice" & Ver &
"ExcelSecurityDontTrustInstalledFiles",0,"REG_DWORD"
end if
'-------------------------------------------




"Albator V"
Merci bien... je sais maintenant recuperer le niveau de securite des macros.
par contre je ne recupere pas l'info "faire confiance au projet visual
basic". e seul moyen c'est de lance une macro avec par exemple Set VBComps ActiveWorkbook.VBProject.VBComponents se qui fait plante la macro si la
confiance n'est pas attribuee au projet vba.


La dernière ligne de code de la procédure :
-> 1: Set VBP = Nothing
doit être supprimé...elle ne sert à rien !!! (un oubli)




"MichDenis" %
Sub AfficheLaFenetre()

'Déclaration des Variables
Dim Wsh As Object
Dim NiveauSecurite As Integer
Dim ConfianceModeleInstaller As Integer
Dim ConFianceCeProjet As Integer

'Avant la version 10, ce qui suit n'existait pas
If Val(Application.Version) < 10 Then Exit Sub

'Lecture des clés de la base de registre de Windows
Set Wsh = CreateObject("WScript.Shell")
'Les 3 éléments de la fenêtre Sécurité :
NiveauSecurite = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityLevel")

ConfianceModeleInstaller = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityDontTrustInstalledFiles")

ConFianceCeProjet = Wsh.RegRead("HKCUSoftwareMicrosoftOffice" & _
Application.Version & "ExcelSecurityAccessVBOM")

'Pour modifier le niveau de sécurité, Excel doit être fermé et
'on modifie la clé du registre OU on modifie le niveau de sécurité
'et ferme excel. Lors de sa ré-ouverture, le niveau de sécurité
's'est adapté à notre préférence.

'Pour comprendre comment tout ça s'articule, tu dois lire attentivement
'ce qui suit à cette adresse :
'http://msdn2.microsoft.com/fr-ca/library/aa203729(office.11).aspx

'Après la lecture, tu seras en meilleure posture pour déterminer
'le test qu'il faut faire, pour lancer ceci seulement si nécessaire...

'Comment afficher la fenêtre de la sécurité, le cas échéant.
If Val(Application.Version) < 10 Then Exit Sub
With Application
.SendKeys "%n" 'Afficher fenêtre niveau sécurité
'.SendKeys "%d" 'Affichier fenêtre "éditeurs approuvés"
.CommandBars.FindControl(ID:627).Execute
End With
1: Set VBP = Nothing

End Sub






Publicité
Poster une réponse
Anonyme