Contourner autoriser macros

91ced Messages postés 20 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 5 juillet 2006 - 3 juil. 2006 à 11:29
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 5 juil. 2006 à 20:36
Hello,

Dans le cadre d'un développement de macro d'impression automatique, je souhaite pouvoir entre autre ouvrir et imprimer plusieurs documents excel.

Chez nous, la sécurité des macros impose que l'on accepte ou no,n à l'ouverture d'excel, les macros.

Existe t'il une instruction que je pourrais mettre dans mon code qui évite pour chaque fichier de cliquer sur autoriser les macros ????

Merci de votre aide précieuse

5 réponses

cs_nico39 Messages postés 56 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 4 octobre 2006
3 juil. 2006 à 14:18
Salut 91ced,

puisque le code d'une macro n'est compilé et exécuté par ton ordi qu'après vérification de la sécurité (et encore, cette sécurité peut être modifiée/supprimée dans "Options" > "Sécurité"), ta seule solution est (de créer et) d'ouvrir un fichier Excel où se trouve une macro principale qui va ouvrir-et-imprimer-d'autres-documents.
Dans cette macro, avant ta ligne de commande d'ouverture d'un fichier Excel, essaie la ligne de commande suivante:
Application.DisplayAlerts = False
Et ensuite, une fois ton fichier imprimé et fermé, tu rétablis:
Application.DisplayAlerts = True

J'espère avoir répondu à ton problème.
Sinon, donne des précisions sur ton programme.

A+

Amateurement vôtre... 
0
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
3 juil. 2006 à 18:41
Tu peux y arriver de la manière suivante:

tu crée dans ton fichier "perso.xls" une macro qui ouvre le classeur contenant ta macro

Sub ouvrir_classeur()
    Set w = Workbooks.Open("c:\repertoire\classeur.xls")
    w.close False
End Sub

avec dans ton classeur une macro Workbook_Open
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 juil. 2006 à 23:50
Salut,

nico39 : désolé mais ton truc ne fonctionne pas car ce ne sont que pour des messages d'alertes style 'voulez vous enregistrer ?' etc... mais pas au niveau macro.

Cet exemple montre comment capturer le paramétrage de la sécurité automation en cours, changer ce paramétrage pour désactiver des macros et, après avoir ouvert le document sélectionné, réaffecter le paramétrage d'origine à la sécurité automation.

Sub Securite_Macro()
Dim secAutomation As MsoAutomationSecurity

secAutomation = Application.AutomationSecurity

Application.AutomationSecurity = msoAutomationSecurityForceDisable
Workbooks.Open("c:\repertoire\classeur.xls")

Application.AutomationSecurity = secAutomation

End Sub

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
91ced Messages postés 20 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 5 juillet 2006
5 juil. 2006 à 13:32
Merci à tous pour votre aide
Plus particulièrement à Mortalino, qui a je pense trouvé la solution.

Seul hic je suis sous OFFICE2000 et ça ne fonctionne pas....
Que faut-il modifier ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 juil. 2006 à 20:36
Aie !

Je n'ai pas MSO 2000 mais dans l'aide de vba Excel, tape sécurité macro et voit ce qu'il te propose.
Sinon, il doit y avoir la valeur dans le Regisre mais connaissant Microsoft, il ont dût empêcher l'écriture de cette valeur pour empêcher l'intrusion de virus, si tu as défini la sécurité à moyenne ou forte.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
Rejoignez-nous