Aller au contenu

Version d\'Excel


Patrick_35

Messages recommandés

Bonjour à tous

 

Je me suis fortement inspiré d'un lisp fait par KozMos Inc. afin de déterminer quelle est la version d'installée sur un poste. Comme je n'ai que la version 97, merci d'avance de me confirmer que ça fonctionne aussi pour les autres versions d'Excel et que le lisp vous donne la bonne version

 

@+

 

(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
       ((= (vl-filename-base (vl-filename-directory Chemin_Excel)) "OFFICE11")
         (setq Version_Excel "2003")
       )
       ((= (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 Version_Excel
       (alert (strcat "\nLa version d'installée est Excel " Version_Excel))
       (progn
         (alert "\nExcel n'est pas installé sur le poste ou c'est une version inconnu")
         (setq Chemin_Excel nil)
       )
     )
   )
 )
 (princ)
)
(liaison_excel)

 

[Edité le 10/2/2005 par Patrick_35]

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

Merci de ta contribution fhervet et de m'avoir indiqué un bug (bien que ça fonctionne sur ma 2000, m'enfin, c'est corrigé.)

Donc, c'est OK sur 97 et 2000, reste à voir pour XP et 2003

 

@+

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

Sa marche pour Xp pro Sp2 et Office 2003

L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
"Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok.
"ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana

Ma bibliothèque de blocs électrique :symbole elec.dwg

Lien vers le commentaire
Partager sur d’autres sites

:(

 

XP PRO SP1 avec Office XP (2002)

je ne peux pas installer le sp2 car nous avons des logiciels incompatibles avec !

 

bah avec 2 \ ou 1 \ et même / (1 ou 2)

ca ne fonctionne pas

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

pourtant en intercalant un (print Chemin_Excel")

 

 "C:\\Program Files\\Microsoft Office\\Office10\\Excel.exe"

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

Merci à vous tous pour votre aide

 

Pour maximilien, je ne comprends pas où ça plante

Et en faisant un

(vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path")

ça donne quoi ?

 

@+

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

 "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App 
Paths\\Excel.EXE" "Path")
"C:\\Program Files\\Microsoft Office\\Office10\\"

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

Explication :

Commande: (setq Chemin_Excel
(_>      (vl-registry-read
((_>        
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App 
Paths\\Excel.EXE"
((_>        "Path"
((_>      )
(_>       )
"C:\\Program Files\\Microsoft Office\\Office10\\"

 

Je suis allé dans l'explorateur dans ce dossier pour chercher [surligneur] "Excel10.olb"[/surligneur]. hé bien Patrick_35 il n'existe pas dans l'Office XP (2002)

 

j'ai fais ensuite un [surligneur] "DIR"[/surligneur] de dos dans ce dossier :

 13/03/1999  01:45            57 344 GREN50.OLB
02/11/1998  12:30            61 952 GRFR50.OLB
20/02/2001  04:12           626 688 MSWORD.OLB
08/03/2000  04:45           237 568 XL5EN32.OLB
02/11/1998  12:30           258 048 XL5FR32.OLB

 

Alors je crois que je vais essayer de remplacer le [surligneur] "Excel10.olb"[/surligneur] par [surligneur] "Excel.exe"[/surligneur] pour voir si cela fonctionne! comme l'a dit Serge dans

celui du 13/12/2004 sujet "AutoCAD et Excel" . Le pire c'est que j'en ai besoin car nous avons plusieurs versions de Office (97,2000,XP). Je dois faire ensorte que ca marche sur mon PC pour ensuite le publier sur le réseau.

J'ai l'intention de l'utiliser pour rapatrier notre liste de radiateurs (faites à partir d'un logiciel de calcul RT2000 qui exporte en Excel)sur AutoCAD en me servant d'autres fichiers EXCEL pour la bibliothèque des rad (rendu graphique différent selon les marques et modèles de radiateurs)

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

Maximilien, Je ne comprends pas où se situe l'erreur

 

En décomposant le Lisp

 

(if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path"))

Je récupere le chemin dans les registres

 

(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"))
)

J'ajoute Excel.exe dans le chemin (et sur un A2000, il n'y a pas les deux \\ dans le chemin)

 

(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))
)
)

Je regarde si Excel8.olb, Excel9.olb ou Excel10.olb existe sur le disque et je remplace alors dans le chemin --> Excel.exe par le .olb, sinon, je ne change rien

 

 (cond
((= (vl-filename-base (vl-filename-directory Chemin_Excel)) "OFFICE11")
(setq Version_Excel "2003")
)
((= (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")
)
)

Et là, je détermine la version d'Excel

 

@+

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

c'est tout simpliment qu'il manque un [surligneur] STRCASE[/surligneur]

le Chemin qu'il me donne c'est en minuscule d'où l'erreur je viens de le découvrir ce midi ;) :cool: :cool:

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

en insérant le code çà ira mieux

 ((= (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")
)

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

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é