Aller au contenu

Déterminer la version d\'Excel


Patrick_35

Messages recommandés

Voici un lisp qui détermine le fichier pour faire une liaison avec excel et qui donne sa version

Un (car (Liaison_Excel)) retourne le Fichier pour faire la liaison

un (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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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

AutoCAD, Revit, GstarCAD, Fisa-CAD, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Lien vers le commentaire
Partager sur d’autres sites

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

AutoCAD, Revit, GstarCAD, Fisa-CAD, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité