Compilation d'un classeur EXCEL en fichier .EXE
bonjour,
je viens de terminer un programme élaboré sur la base de feuilles de calcul EXCEL2007 utilisant des macros écrites en code VB. Le programme en question fait beaucoup de calcul itératif de type numérique.Mon problème et que le programme en question fait beaucoup de temps à l'exécution. J'ai pensé à le compiler sous format .EXE mais je ne sais pas comment.
je vous pris de bien vouloir m'aider sur ce point
cordialement
passer par vbs puis vbs2exe
si ton programme contient des usf alors tu peux appeler directement ces usf par vbs
ton vbs lui est facilement convertible en exe
du coup tu obtiens un exe qui te lance directement ta usf sans afficher excel, ça permet de faire une finition "pro"
ça demande quelques connaissances et débrouille, mais c'est assez économe en code
par contre il faut que excel soit présent sur la station, c'est pas "stand-alone" contrairement à un runtime access par exemple...
Protéger le code VBA en transformant le classeur en .EXE
Bonjour,
Pour moi, l'objectif de transformer son classeur enrichi de macros VBA en fichier exécutable *.EXE est surtout dans un objectif de protection du code, dans le cadre professionnel (ou associatif), pour arriver à partager un classeur entre l'auteur du code VBA et les utilisateurs de l'application issue de ce code (et non les utilisateurs d'Excel au sens général).
Dans le cas de fichier partagé au bureau, c'est la protection de l'accès au code VBA qui permet d'éviter que l'utilisateur y mette le nez et d'en modifie le contenue à l'insu de son auteur (même si le code peut parfois planter et laisser afficher un message d'erreur, Excel "invitant" alors "naïvement" l'"utilisateur" à rentrer en mode débogueur dans le code !).
Le but étant au moins d'arriver à séparer les actions de l'utilisateur (même averti) invité à utiliser le classeur Excel partagé (et uniquement en mode utilisateur de ce classeur Excel), des actions normalement réservées au développeur de code VBA (et/ou XML) intégré au classeur. Et ce même si l'ouverture de l'application Excel qui régit tout classeur à activer (XLSX ou XLSM) permet d'ouvrir l'éditeur de code VBA à tout moment.
Actuellement, j'utilise Excel 2010 au bureau (ça date, mais pas le choix !). Je ne sais pas si les versions ultérieures ont améliorer les mécanismes de protection du code, car c'est un point dont a toujours souffert Excel (au moins jusqu'en version 2010). La protection par mot de passe du projet VBA n'est vraiment pas suffisante. S'il n'est pas possible de produire un classeur encapsulé dans un format fermé (EXE par exemple), il faudrait au moins trouver la possibilité de désactiver le menu "Développeur" du ruban Excel (cela peut être fait en recodant l'affichage du ruban) ainsi que le raccourci clavier (Alt-F11). Un moyen de protéger contre la diffusion intempestive et incontrôlée le classeur est aussi de ne rendre opérationnel le code VBA (en totalité ou en partie) que si le fichier se trouve au bon endroit prévu pour.
Mais n'oublions pas non plus qu'un code trop fermé est voué à long terme à disparaître. Le plus important c'est de savoir avec qui l'on travaille et si l'on pense que chacun respectera les droits d'auteur... ou pas ! Le cas échéant on peut toujours déposer le classeur dans un dossier aux droits limités suivant les utilisateurs.
Tout cela sort un peu du sujet, mais cela montre l'intérêt de revenir à chaque fois aux fondamentaux: les besoins des utilisateurs.
@+
Paolo