Patrick_35 Posté(e) le 14 février 2005 Posté(e) le 14 février 2005 Voici un lisp qui détermine le fichier pour faire une liaison avec excel et qui donne sa versionUn (car (Liaison_Excel)) retourne le Fichier pour faire la liaisonun (cadr (Liaison_Excel)) retourne la version d'excel @+ (defun Liaison_Excel(/ Chemin_Excel Environ Version_Excel) (if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path")) (progn (foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES") (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel) (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel)) ) ) (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92) (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe")) (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")) ) (cond ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) ) ) (cond ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11") (setq Version_Excel "2003") ) ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10") (setq Version_Excel "XP") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8") (setq Version_Excel "97") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9") (setq Version_Excel "2000") ) ) (if (not Version_Excel) (setq Chemin_Excel nil) ) ) ) (list Chemin_Excel Version_Excel) ) (ps : Merci à Maximilien pour son aide) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
BIM G CO Posté(e) le 15 février 2005 Posté(e) le 15 février 2005 j'ai seulement répété ce que [surligneur] Serge[/surligneur] t'avait dit pour Office XP!mais je trouve génial(je n'y avais pas pensé) de retourner une liste plutôt que le chemin concaténé au fichier pas besoin de vl-string-subst-base..... ;) Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Patrick_35 Posté(e) le 15 février 2005 Auteur Posté(e) le 15 février 2005 Je ne comprends pas ta remarque au sujet de Serge pour office XP :casstet: @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
BIM G CO Posté(e) le 15 février 2005 Posté(e) le 15 février 2005 dans Forum 4272 : Autocad et Excel : Patrick_35, C'est bon. Tout ce qui manque et un cond ou un if où tu pourras choisir la version d'Excel. Mentionnons qu'avec Excel10, le type [surligneur] library[/surligneur] est dans le fichier exe. Serge donc sur Office10 (Office Xp) le fichier Excel10.olb n'existe pas c'est le fichier Excel.exe qu'il faut chercher! Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Patrick_35 Posté(e) le 15 février 2005 Auteur Posté(e) le 15 février 2005 Oui, et c'est bien pour ça qu'a l'origine je pars sur Excel.exe. Par contre, l'excel10.olb est sur le lisp dont je me suis inspiré (et qui m’a bien indiqué les différentes versions) pour faire celui-ci et dans les tests, Oli553 est sur une version 2003, donc dans le doute, j'ai préféré le laisser @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant