OVH Cloud OVH Cloud

Excel et macros... Solution?

14 réponses
Avatar
Dominic Feron
Bonjours à tous,

Je viens de compléter une application Excel qui utilise, bien sûr, des
macros.

Cette application est prête à être distribuée à la compagnie entière. Le
"hick" est que toutes les machines de la compagnie (soit près de 1500
machines) sont configurées à ne pas accepter les macros.

Je cherche un moyen de configurer les machines au niveau de sécurité
"moyen", sans faire le tour des 1500 postes.

Quel serait la meilleur solution selon vous? Peut-on changer une clé
registre dans le sytème qui mettrait le niveau de sécurité à "moyen"? Je
sais que cette méthode est possible à distance car il est facile de jouer
dans les clés lorsque l'usager se connect sur Novell.

Ou bien, y a-t-il un moyen pour qu'Excel exécute mes macros sans faire
baisser le niveau de sécurité? (Document certifié?)

Merci de vos informations.

4 réponses

1 2
Avatar
Dominic Feron
mmm ce qui est triste, c'est que même si j'ai Excel 2000, la clé
"HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0ExcelSecurityLevel"
n'existe pas. Y a-t-il une raison?


"michdenis" a écrit dans le message de
news:
Bonjour Dominic,


Il est possible de créer un VBScript capable de faire ce travail. Dans la
mesure où chaque ordinateur ou usager possède

un script d'ouverture, il est possible d'insérer seulement une ligne dans
ce script d'ouverture pour faire exécuter le

VBScript qui lui se chargera de modifier la clé d'excel dans la base de
registre.


Voici une petite idée de VBScript publié par Frédéric Sigonneau en ce qui
concerne Excel 2000 seulement :



Dim objXL
On Error Resume Next
Set objXL=GetObject(,"Excel.Application")
If Not IsEmpty(objXL) THEn
'Une session Excel est déja lancée. Il ne le faut, sinon c'est elle qui, à
la fermeture imposera

'la valeur de la clé du registre qui nous intéresse,
Msgbox "Fermer d'abord les sessions Excel en cours SVP "
WScript.Quit
End If

Err.Clear

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

cle2k="HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0ExcelSecurityLevel"

' Clé prend valeur 1,2, ou 3 selon niveau Bas, moyen, haut sécurité macro
d'Excel


If Not IsExcel2k Then
Msgbox "Ce programme n'est destine qu'a Excel 2000 et pas à une autre
version"

WScript.Quit
End If

Dim NiveauSecurite,wsh

NiveauSecurite=wsh.RegRead(cle2k)
Wsh.regWrite cle2k,1,"REG_DWORD"

Msgbox "La consultation du fichier" & _
" est soumise au respect du contenu de la note interne Nø"
Retour=wsh.Run("C:archivesdos.xls",3,False)

'wsh.RegWrite cle2k,NiveauSecurite,"REG_DWORD"

Function IsExcel2k()
On Error Resume Next

Res=wsh.RegRead(cle2k)
IsExcel2k=(Err=0)
End Function


Salutations!




"Dominic Feron" a écrit dans le message
de

news:%23L5k$
Bonjours à tous,

Je viens de compléter une application Excel qui utilise, bien sûr, des
macros.

Cette application est prête à être distribuée à la compagnie entière. Le
"hick" est que toutes les machines de la compagnie (soit près de 1500
machines) sont configurées à ne pas accepter les macros.

Je cherche un moyen de configurer les machines au niveau de sécurité
"moyen", sans faire le tour des 1500 postes.

Quel serait la meilleur solution selon vous? Peut-on changer une clé
registre dans le sytème qui mettrait le niveau de sécurité à "moyen"? Je
sais que cette méthode est possible à distance car il est facile de jouer
dans les clés lorsque l'usager se connect sur Novell.

Ou bien, y a-t-il un moyen pour qu'Excel exécute mes macros sans faire
baisser le niveau de sécurité? (Document certifié?)

Merci de vos informations.





Avatar
michdenis
Bonjour Dominic,

Cette clé est bien présente dans ma base de registre.. bien que j'ai excel 2002. Seul le chemin 9.0 est modifié pour
10.

Personnellement, je ne ferai pas de test sur ma base de registre !


Salutations!



"Dominic Feron" a écrit dans le message de
news:
mmm ce qui est triste, c'est que même si j'ai Excel 2000, la clé
"HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0ExcelSecurityLevel"
n'existe pas. Y a-t-il une raison?


"michdenis" a écrit dans le message de
news:
Bonjour Dominic,


Il est possible de créer un VBScript capable de faire ce travail. Dans la
mesure où chaque ordinateur ou usager possède

un script d'ouverture, il est possible d'insérer seulement une ligne dans
ce script d'ouverture pour faire exécuter le

VBScript qui lui se chargera de modifier la clé d'excel dans la base de
registre.


Voici une petite idée de VBScript publié par Frédéric Sigonneau en ce qui
concerne Excel 2000 seulement :



Dim objXL
On Error Resume Next
Set objXL=GetObject(,"Excel.Application")
If Not IsEmpty(objXL) THEn
'Une session Excel est déja lancée. Il ne le faut, sinon c'est elle qui, à
la fermeture imposera

'la valeur de la clé du registre qui nous intéresse,
Msgbox "Fermer d'abord les sessions Excel en cours SVP "
WScript.Quit
End If

Err.Clear

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

cle2k="HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0ExcelSecurityLevel"

' Clé prend valeur 1,2, ou 3 selon niveau Bas, moyen, haut sécurité macro
d'Excel


If Not IsExcel2k Then
Msgbox "Ce programme n'est destine qu'a Excel 2000 et pas à une autre
version"

WScript.Quit
End If

Dim NiveauSecurite,wsh

NiveauSecurite=wsh.RegRead(cle2k)
Wsh.regWrite cle2k,1,"REG_DWORD"

Msgbox "La consultation du fichier" & _
" est soumise au respect du contenu de la note interne Nø"
Retour=wsh.Run("C:archivesdos.xls",3,False)

'wsh.RegWrite cle2k,NiveauSecurite,"REG_DWORD"

Function IsExcel2k()
On Error Resume Next

Res=wsh.RegRead(cle2k)
IsExcel2k=(Err=0)
End Function


Salutations!




"Dominic Feron" a écrit dans le message
de

news:%23L5k$
Bonjours à tous,

Je viens de compléter une application Excel qui utilise, bien sûr, des
macros.

Cette application est prête à être distribuée à la compagnie entière. Le
"hick" est que toutes les machines de la compagnie (soit près de 1500
machines) sont configurées à ne pas accepter les macros.

Je cherche un moyen de configurer les machines au niveau de sécurité
"moyen", sans faire le tour des 1500 postes.

Quel serait la meilleur solution selon vous? Peut-on changer une clé
registre dans le sytème qui mettrait le niveau de sécurité à "moyen"? Je
sais que cette méthode est possible à distance car il est facile de jouer
dans les clés lorsque l'usager se connect sur Novell.

Ou bien, y a-t-il un moyen pour qu'Excel exécute mes macros sans faire
baisser le niveau de sécurité? (Document certifié?)

Merci de vos informations.





Avatar
michdenis
Bonjour Starwing,

" c'est que bien des gens pourront être tentés de comprendre ce script et devenir mal intentionnés."

Habituellement, lorsqu'un gestionnaire de réseau utilise un Script d'ouverture pour les usagers qui se connectent au
réseau, ces derniers n'ont pas accès au script d'ouverture et la majeure partie du contenu de ces scripts est souvent
incompréhensible des usagers lorsqu'ils voient les lignes de commande défiler à l'écran.


Salutations!



"Starwing" a écrit dans le message de news:%23fSlY$
Rebonjour Dominic,

Le problème que je vois avec cette solution, c'est que bien des gens
pourront être tentés de comprendre ce script et devenir mal intentionnés.
Ils pourraient, grâce à ce script, changer quelques lignes et Hop ! Fini la
sécurité et bienvenue les virus, surtout le malpolitus, dans l'entreprise.

Starwing
Avatar
Starwing
Bonjour michdenis,

Evidemment, ;-))

Starwing
1 2