Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2756 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1545170
Millenius
Posté le 19-04-2007 à 15:07:49  profilanswer
 

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

mood
Publicité
Posté le 19-04-2007 à 15:07:49  profilanswer
 

n°1545188
ingenieurc​esi
Posté le 19-04-2007 à 15:37:38  profilanswer
 

bonjour
 
application.displayalerts=false

n°1545286
Millenius
Posté le 19-04-2007 à 16:49:37  profilanswer
 

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...

n°1545311
jpcheck
Pioupiou
Posté le 19-04-2007 à 17:01:04  profilanswer
 

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

n°1545315
Millenius
Posté le 19-04-2007 à 17:04:14  profilanswer
 

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


Message édité par Millenius le 19-04-2007 à 17:04:26
n°1545397
ingenieurc​esi
Posté le 19-04-2007 à 18:56:59  profilanswer
 

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

n°1545594
Millenius
Posté le 20-04-2007 à 11:15:14  profilanswer
 

Comme çà ?
 

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

 

 
Marche po :(

n°1545616
MagicBuzz
Posté le 20-04-2007 à 11:29:04  profilanswer
 

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.

n°1545620
Millenius
Posté le 20-04-2007 à 11:32:29  profilanswer
 

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...

n°1548370
teagle
¤--ð Free My MiND ð--¤
Posté le 24-04-2007 à 21:33:05  profilanswer
 

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
mood
Publicité
Posté le 24-04-2007 à 21:33:05  profilanswer
 

n°1548441
MagicBuzz
Posté le 24-04-2007 à 23:57:19  profilanswer
 

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

n°1548629
Millenius
Posté le 25-04-2007 à 13:30:39  profilanswer
 

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

n°1548642
Millenius
Posté le 25-04-2007 à 14:03:32  profilanswer
 

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

n°1548645
jpcheck
Pioupiou
Posté le 25-04-2007 à 14:04:23  profilanswer
 

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

n°1548678
Millenius
Posté le 25-04-2007 à 15:20:07  profilanswer
 

screenrefresh? c'est quoi ?

n°1548683
jpcheck
Pioupiou
Posté le 25-04-2007 à 15:26:59  profilanswer
 

rafraichir l'écran.
application.screenrefresh

n°1548829
galopin01
Posté le 25-04-2007 à 20:03:36  profilanswer
 

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
n°1549465
Millenius
Posté le 26-04-2007 à 11:51:14  profilanswer
 

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 !

 

n°1549507
Paul Hood
Posté le 26-04-2007 à 12:22:01  profilanswer
 

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
n°1549686
Millenius
Posté le 26-04-2007 à 13:40:52  profilanswer
 

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é !

n°1550212
jpcheck
Pioupiou
Posté le 26-04-2007 à 18:07:42  profilanswer
 

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

n°1550219
Millenius
Posté le 26-04-2007 à 18:17:00  profilanswer
 

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...

n°1550228
galopin01
Posté le 26-04-2007 à 18:31:51  profilanswer
 

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+

n°1550382
Millenius
Posté le 27-04-2007 à 09:37:29  profilanswer
 

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

n°1658776
jeanjacque​s2
Posté le 15-12-2007 à 22:11:00  profilanswer
 

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 !

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[Bash] choisir une ligne d'un fichier avec une boucle select[débutant] retrouver la ligne courante du fichier
[c] Récupération de fichier partagé sur un réseauProposer un fichier au téléchargement
DWR et envoi d'un fichier XML du serveur vers le navigateurExtraire des noms et des emails de fichier htm
Fichier ouverts Wordtrier un fichier sur 2 colonnes (résolu)
COmment peut on trouver l'extension supprimee d'un fichier ?[ C ] Aide pour programme de lecture fichier txt
Plus de sujets relatifs à : Ouverture de fichier avec macros, sans confirmation (par certificat ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR