Ouverture de fichier avec macros, sans confirmation (par certificat ?)

Ouverture de fichier avec macros, sans confirmation (par certificat ?) - VB/VBA/VBS - Programmation

Marsh Posté le 19-04-2007 à 15:07:49    

Bonjour,
 
J'ai réalisé un petit outil sous Excel avec une macro.
Il va etre utilisé par des gens qui n'y connaissent pas gd chose en bureautique, aussi j'aimerais supprimer la fenetre "Activer les macros" à l'ouverture du fichier.
 
J'ai bien essayé avec les certificats et en cochant "toujours approuver ...", mais cela ne marche que sur mon ordinateur !
Comment faire ? quitte à avoir un mode opératoire d'installation à fournir avec mon outil.
 
Merci d'avance

Reply

Marsh Posté le 19-04-2007 à 15:07:49   

Reply

Marsh Posté le 19-04-2007 à 15:37:38    

bonjour
 
application.displayalerts=false

Reply

Marsh Posté le 19-04-2007 à 16:49:37    

et je le mets où ?
 
Je ne vois pas trop bien comment cela pourrait foncitonner, car pour que ce code marche, il faut au préalable activer les macros...

Reply

Marsh Posté le 19-04-2007 à 17:01:04    

peut etre cela correspond à ton pb ?  
http://forum.hardware.fr/hfr/Progr [...] 7622_1.htm

Reply

Marsh Posté le 19-04-2007 à 17:04:14    

ca correspond, mais ca n'y reponds pas :( dommage


Message édité par Millenius le 19-04-2007 à 17:04:26
Reply

Marsh Posté le 19-04-2007 à 18:56:59    

l'idée c'est de mettre ce code dans this workbook et mettre une macro avec workbook_open
essaye et tien moi au courant

Reply

Marsh Posté le 20-04-2007 à 11:15:14    

Comme çà ?
 

Code :
  1. Private Sub Workbook_Open()
  2.     Application.DisplayAlerts = False
  3. End Sub

 

 
Marche po :(

Reply

Marsh Posté le 20-04-2007 à 11:29:04    

DisplayAlerts n'a rien à voir avec ça.
 
Le message en question propose d'exécuter ou non le code qui contient ce flag, donc il ne risque pas d'être utilisé ;)
 
Tu as plusieurs solutions :
1/ Tu fais une macro "solo", qui s'installe directement dans Excel, et nom dans le fichier, via une Toolbar : la personne n'aura un message qu'au moment de l'installation, puis plus jamais
2/ Tu désactive les options de sécurité sur tous les postes Excel de ta boîte. Je ne te le recommande pas, on va vite fait de recevoir des macro virus, et leur laisser la porte ouverte n'est pas une bonne idée
3/ Tu expliques aux utilisauteurs qu'il faut faire "ok" à chaque fois, leur expliquant pourquoi ils doivent le faire pour ton fichier, et surtout pas pour un autre fichier. (solution que j'ai adopté)
4/ Tu fait signer ta macro, ça te coûte les yeux de la tête car le code doit être audité avant, tu ne peux plus modifier le code (ou alors faut refaire toute la procédure et repayer), et ça ne t'affranchit pas toujours des messages, car par défaut Excel bloque même les macros signées.

Reply

Marsh Posté le 20-04-2007 à 11:32:29    

merci pour tes réponses !
 
1/ j'ai malheureusement besoin de formules et saisie,donc pas de macro solo
2/ impossible effectivement :/
4/ on oublie :)
 
il me reste donc la "solution" 3...

Reply

Marsh Posté le 24-04-2007 à 21:33:05    

Millenius a écrit :

merci pour tes réponses !
 
1/ j'ai malheureusement besoin de formules et saisie,donc pas de macro solo
2/ impossible effectivement :/
4/ on oublie :)
 
il me reste donc la "solution" 3...

Moi perso j'ai fait une sorte de solution 3 avec en gros:

  • 1 feuille d'avertissement avec un message prévenant que le document doit être ouvert avec les macros activées (une feuille nommée "warning" )
  • Toutes les autres feuilles fonctionnelles


Le principe: par défaut seule la feuille warning est visible et je n'ouvre les feuilles fonctionnelles que dans la macro  Workbook_Open(). Conclusion, si l'utilisateur veut accéder correctement au document, il est obligé d'activer les macros.
 
Ca donne ça en gros pour l'ouverture du doc:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Worksheets("inf0" ).Visible = True
Worksheets("Logistique" ).Visible = True
Worksheets("Technique" ).Visible = True
Worksheets("SAN" ).Visible = True
Worksheets("warning" ).Visible = xlVeryHidden
Application.ScreenUpdating = True
End Sub


Et à sa fermeture:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("warning" ).ScrollArea = "$A$1:$M$32"
Sheets("warning" ).Visible = True
For i = Sheets.Count To 2 Step -1
    Sheets(i).Visible = xlVeryHidden
Next i
End Sub


Bien sûr ma feuille "warning" est la feuille 1, sinon elle se retrouverait planquée.  :)
@+


Message édité par teagle le 24-04-2007 à 21:33:53
Reply

Marsh Posté le 24-04-2007 à 21:33:05   

Reply

Marsh Posté le 24-04-2007 à 23:57:19    

Effectivement, c'est une solution que j'ai déjà utilisé, et qui fait se preuves :jap:

Reply

Marsh Posté le 25-04-2007 à 13:30:39    

merci :)
j'avais fait çà à l'ouverture effectivement
mais j'avais zappé la fermeture

Reply

Marsh Posté le 25-04-2007 à 14:03:32    

Le truc dommage.. c'est qu'on voit le WARNING pendant 1/4 de seconde à l'ouverture et à la fermeture :/

Reply

Marsh Posté le 25-04-2007 à 14:04:23    

peut-etre qu'avec un screenrefresh bien placé ca doit pouvoir se corriger ?

Reply

Marsh Posté le 25-04-2007 à 15:20:07    

screenrefresh? c'est quoi ?

Reply

Marsh Posté le 25-04-2007 à 15:26:59    

rafraichir l'écran.
application.screenrefresh

Reply

Marsh Posté le 25-04-2007 à 20:03:36    

bonjour,
il est possible de certifier des macros en utilisant selfcert.exe
Vous devez rechercher cet exe (en général dans Program Files / Microsoft Office / OfficeNN)
Je recommande personnellement de ne créer qu'une seule signature en tout et pour tout sur l'ordinateur qui sert à programmer les macros.
Cet ordinateur (nous l'appellerons "Maitre" ) sera le seul à pouvoir certifier les macros.
La procédure de création d'une signature est très simple et se limite à une seule question : quel nom voulez vous donner à votre certificat.
Il est de bon ton de donner un nom suffisament explicite pour susciter la confiance dans votre milieu professionnel... Votre Nom Prénom me semble idéal...
Avis : J'ai personnellement eu des déboires en voulant recréer un autre certificat sur le même ordinateur, et dans ce cas je n'ai pas trouvé d'autre moyen que de changer d'ordinateur pour retrouver un fonctionnement normal... il est donc vraiment important de trouver une signature définitive que vous ne chercherez plus à bricoler.
(Même chez les Most Very Doués du Forum Microsoft je n'ai pas trouvé d'information satisfaisante pour me sortir du m......)
Cette étape étant franchie, (la création de la signature) vous devez maintenant certifier le classeur que vous aller diffuser.
Dans VBA menu Outils / Signature électronique cliquer sur choisir et activez votre signature.
Sauvegardez votre projet et installez le sur un autre ordinateur.
Ouvrez- le sur Excel, puis dans Outils / Macro / Sécurité / Sources fiables vous devez reconnaitre votre signature comme source fiable. Divers warning vous indiquent que ce type de signature est une signature privée et susceptible de poser problème. Vous acceptez bien sur... Et en dernier lieu vous cochez :
- Faire confiance au projet et  
- Toujours faire confiance à cette signature.
Désormais -dès lors que votre signature est reconnue comme source fiable- il n'y aura plus de message à l'ouverture du classeur ou de tout classeur portant votre signature.  
Du moins tant que les macros ne seront pas modifiées.
Si les macros doivent être modifiées, elles doivent l'être sur le poste "maître" pour être à nouveau certifiées.
A+


Message édité par galopin01 le 25-04-2007 à 20:10:49
Reply

Marsh Posté le 26-04-2007 à 11:51:14    

merci pour ta réponse, mais je l'avais déjà expliqué dans mon premier post :/
 

Citation :


J'ai bien essayé avec les certificats et en cochant "toujours approuver ...", mais cela ne marche que sur mon ordinateur !

 

Reply

Marsh Posté le 26-04-2007 à 12:22:01    

Millenius a écrit :

merci pour ta réponse, mais je l'avais déjà expliqué dans mon premier post :/

Je pense que la solution proposée par Galopin01 consiste à certificier ta macro et à donner la procédure d'installation où est indiquée la manip pour toujours faire confiance à cette macro.


Message édité par Paul Hood le 26-04-2007 à 12:24:21
Reply

Marsh Posté le 26-04-2007 à 13:40:52    

oui, sauf que cela ne marche que sur le PC qui a créé ce certificat..
si je le lance depuis un autre PC, j'ai le meme message, mais le checkbox "toujours faire confiance à ..." est grisé !

Reply

Marsh Posté le 26-04-2007 à 18:07:42    

d'où la nécessité d'indiquer la méthode pour accepter le certificat en question (cf posts précédents)

Reply

Marsh Posté le 26-04-2007 à 18:17:00    

accepter le certificat c'est facile.. suffit de cliquer
mais pour le faire une fois pour toute, ce n'est pas possible d'un ordinateur à l'autre...

Reply

Marsh Posté le 26-04-2007 à 18:31:51    

Bonjour,
Je confirme que cette procédure fonctionne généralement sur les PC "autres" sinon effectivement ça n'aurait pas baucoup d'intéret.
Encore faut-il reconnaitre au moins une fois cette signature comme "source fiable" et enregistrer le fichier sur l'ordinateur hôte.
Ce n'est que lors de la prochaine ouverture de ce fichier que tu as la possibilité de cocher :
- Toujours faire confiance à cette signature.
Il m'étonnerait beaucoup que ton administrateur système ou réseau ai désactivé cette possibilité.
Je travaille personnellement sur des réseaux (financiers) hyperprotégés et je n'ai encore jamais rencontré de telles restrictions.
 
Si vraiment cette signature ne pouvait-être acceptée, il conviendrait d'examiner les conditions exactes de diffusion. Les postes sont-il en réseau, classeur partagé ou pas. Le poste "maitre" fait-il parti du réseau ? Si non essayer de créer une signature résidente direcement sur le réseau d'entreprise. Je suis bien arrivé à en créer une chez nous ou on frise la maniaquerie obsessionnelle, donc ça doit être possible partout.
Une fois ta propre signature crée sur le réseau d'entreprise, il m'étonnerait fort que tu ne puisse pas certifier directement tes classeurs avec.  
Ainsi même si tu travailles plutôt sur ton ordi personnel, il ne te restera qu'a certifier le projet directement sur le réseau d'entreprise avec la signature résidente je ne vois pas ce qui pourrait bloquer.  
 
A+

Reply

Marsh Posté le 27-04-2007 à 09:37:29    

Bah je te le dis, et je te le confirme :
une macro Excel que je certifie avec un certificat provenant de mon ordinateur. Si je l'utilise sur un autre ordi, j'ai bien la meme fenetre "toujours faire confiance à ..." sauf que le bouton cochable est grisé ! et j'ai beau créer un certificat du meme nom, exporter le certificat du PC maitre.. rien à faire

Reply

Marsh Posté le 15-12-2007 à 22:11:00    

Bonjour,
 
je reviens sur ce post car j'ai le même problème avec une macro sous Word (je ne veux pas que l'utilisateur ait à accepter les macros ou autres, ni à baisser le niveau de sécurité).
En fait, j'ai créé avec selfcert.exe un certificat, cela fonctionne sans problème MAIS je suis obligé de le faire pour tous les profils des utilisateurs...Savez-vous si on peut copier un quelconque fichier dans le profil du PC maître pour le mettre dans tous les profils des utilisateurs pour éviter de "valider" le certificat pour chacun d'entre eux ?
 
Merci !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed