ALERTE MACRO --> URGENT Merci...

J

Jean-Claude

Guest
ALERTE MACRO --> URGENT Merci...

(Application pour le W)

Comment supprimer l'alerte macro à l'ouverture d'un fichier ?

Bien entendu :

1 - Sans intervention de l'utilsateur

2 - En quittant l'application remettre le paramètre à l'état d'origine


D'AVANCE MERCI BCP

@+
 
B

Blandine

Guest
Re: ALERTE MACRO --> URGENT Merci...

Bonjour

Voila une application qui désactive l'alerte macro avant d'ouvrir ton fichier :

Exécution :
1 - Dans le Module1, adapter la ligne faisant référence à la valeur de la clé dans le Registre de Windows,
(actuellement 2 versions au choix : XP et 2000)
ainsi que les 7 autres lignes mentionnant le nom d' Excel...
2 - Dans le Module1, adapter la ligne faisant référence à un Classeur de Test pour essai…
3 - Recopier tout le code du module1 dans un Fichier texte.txt
4 - Donner au fichier le nom de AlerteMacro (par exemple)
5 - Renommer l'extension de ce fichier en VBS
6 - Exécuter ce fichier AlerteMacro.vbs (double-clic dessus)

Principe :
1 - Excel doit être fermé pour exécuter ce script
2 - Vérifier si la clé du niveau pour Excel existe bien
3 - Niveau de sécurité en début d'exécution
4 - Changement pour le niveau le plus faible
5 - Ouverture du classeur sans alerte macro
6 - Rétablissement du niveau de sécurité de départ

Code à copier :
'* Désactivation de l'alerte macro
'*
'* Version Excel XP et 2000

'* Excel doit être fermé
On Error Resume Next
Set objXl = GetObject(, "Excel.Application")
If Not IsEmpty(objXl) Then

MsgBox "Excel doit être fermé..."
WScript.Quit
End If

Err.Clear

'* Objet script et chemin de la clé du registre pour Excel
Set wsh = WScript.CreateObject("WScript.Shell")

CleXP = "HKCU\Software\Microsoft\Office\10.0\Excel\Security\Level"

'* Cle2000 = "HKCU\Software\Microsoft\Office\9.0\Excel\Security\Level"

If Not IsExcelXP Then

MsgBox "Désolé, ce n'est pas Excel XP !"
WScript.Quit
End If

Dim NiveauSecurite, wsh

'* Niveau de sécurité en début d'exécution
NiveauSecurite = wsh.RegRead(CleXP)

'* Changement pour le niveau le plus faible
wsh.RegWrite CleXP, 1, "REG_DWORD"

'* Ouverture d'un classeur sans alerte macro
Retour = wsh.Run("C:\Test.xls", 3, False)

'* Rétablissement du niveau de sécurité de départ
wsh.RegWrite CleXP, NiveauSecurite, "REG_DWORD"

Function IsExcelXP()
'* Vérifier la présence d'excel dans la config de windows

On Error Resume Next

Res = wsh.RegRead(CleXP)
IsExcelXP = (Err = 0)
End Function
'**************************
 

Discussions similaires

Réponses
2
Affichages
270

Statistiques des forums

Discussions
312 099
Messages
2 085 278
Membres
102 847
dernier inscrit
nicolas.fayet@groupe-sab.