Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Peut-on forcer une macro à s'ouvrir avec un code de ce type?

3 réponses
Avatar
Pierre Giro
Bonjour à tous,

J'ai besoin de votre aide car je suis un nullos en informatique...
malheureusement je cherche à protéger une base de donnée que j'ai crée dans
excel. Pour cela j'aimerais juste forcer une macro (empechant l'impression
et la sauvegarde) à s'ouvrir à l'ouverture d'un classeur.
A travers le forum j'ai bien compris qu'il y avait un problème avec les
niveaux de sécurité d'excel et que l'on puvait donc facilement supprimer
l'ouverture cette macro mais ne peut-on pas imaginer quelque chose comme ca:

1) Le classeur désiré contient la macro voulue (macros 1) et celle-ci est du
type auto-open,
2) une supra-macro (contenu dans le perso.xls?) qui vérifie la présence de
la macro 1 sinon ferme le classeur ou fait tourner un calcul sans fin?

si oui quel pourrait etre un code pour ça? N'y t il pas sinon un moyen de
bloquer le niveau de sécurité sur "acceper les macros"? D'autres idées?


Merci beaucoup en tous cas,


Pierre.

3 réponses

Avatar
Patrick Bastard
Bonjour à tous.

Idée en l'air :

Pour forcer l'activation des macros, pourquoi nepas imaginer que la feuille
concernée ne se dévoile que par macro -à développer-
Bien cordialement,

--
==================================== Pour me contacter, remplacez "Chez" par @ dans l'adresse

Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net

j'ai bien compris qu'il y avait un problème avec les
niveaux de sécurité d'excel et que l'on puvait donc facilement supprimer
l'ouverture cette macro


Avatar
Pierre Giro
J'ai trouvé une astuce sur le forum excellente qui doit pouvoir s'adapter
pour XP toutefois j'ai des problème avec le script ci-dessous car je suis
sous excel 2002 le niveau de sécurité dans le registre est
"HKCUSoftwareMicrosoftOffice10.0ExcelSecurityLevel" or en remplaçant
la ligne concernée dans le script ci-dessous rien ne se passe... porqué?

Dans un fichier texte (Notepad) recopie le code ci-dessous puis enregistre
lefichier sous, par exemple, "ModifTemporaireSecurite.vbs". Le nom importe
peu,seule l'extension a de l'importance.Après avoir vérifié qu'Excel est
bien fermé, le niveau de sécurité actuel (1, 2ou 3) est récupéré puis fixé à
1 (pas d'alerte macro). Le fichier quit'intéresse est ensuite lancé et enfin
le niveau de sécurité de départ estrestauré. Un raccourci sur le bureau vers
le script, tu changes d'icone et de nom, et letour est joué.Le même genre de
manip est peut-être possible avec Excel 97 et/ou Xp, si leur niveau de
sécurité est également stocké dans le registre. '=================== 'Excel
doit être fermé On Error Resume Next Set
objXl=GetObject(,"Excel.Application") If Not IsEmpty(objXl) Then Msgbox
"Excel doit être fermé pour exécuter ce script..." WScript.Quit End If
Err.Clear 'objet script et chemin de la clé du registre pour Excel 2000 Set
wsh = WScript.CreateObject("WScript.Shell") Cle2000 "HKCUSoftwareMicrosoftOffice9.0ExcelSecurityLevel" If Not
IsExcel2000 Then MsgBox "Ce script ne peut désactiver l'alerte macro que
pour Excel 2000..." WScript.Quit End If Dim NiveauSecurite, wsh 'niveau
de sécurité en début d'exécution NiveauSecurite = wsh.RegRead(Cle2000)
'changement pour le niveau le plus faible wsh.RegWrite Cle2000,
1,"REG_DWORD" 'ouverture du classeur sans alerte
macroRetour=wsh.Run("D:6OfficeVBAClasseurTestSecurite.xls", 3, False)
'rétablissement du niveau de sécurité de départ wsh.RegWrite Cle2000,
NiveauSecurite,"REG_DWORD" 'pour vérifier si la clé pour Excel 2000
existe bien Function IsExcel2000() On Error Resume Next
Res=wsh.RegRead(Cle2000) IsExcel2000=(Err=0) End Function Frédéric
Sigonneau
Avatar
Pierre Giro
oui en effet très bonne idée! j ai trouvé une autre astuce consistant à
créer un script modifiant le niveau de sécurité en ouvrant Excel seulement
j'arrive aps à l'adapter sig...

Merci!