Excel est-il installé ?

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Excel est-il installé ?

Messagepar Kaly » 06 Oct 2009 à 16:26

Bonjour,

A l'ouverture d'un masque je voudrais savoir si excel est installé sur la machine. Comment puis-je procéder ?

Merci
Dernière édition par Kaly le 19 Oct 2009 à 12:01, édité 1 fois.
Kaly
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 118
Inscrit(e) le : 26 Déc 2006 à 13:22

Messagepar roubech » 06 Oct 2009 à 20:46

au hasard, je dirais, essayes d'instancier l'appli OLE et si tu as une erreur ...

[syntax="LotusScript"]on Error Goto ErrorHandler
Set XLApp = CreateObject("Excel.Application")
ErrorHandler :
msgbox "Excel non installé"[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Jérome Deniau » 06 Oct 2009 à 22:43

C'est ce qu'il ya de plus simple sinon lire le registre windaube pour
récupérer le chemin d'Excel

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Excel.exe\"


Function ReadWinRegistry(Cle, Variable) As Variant
On Error Resume Next ' j'aime pas
Dim WinRegistry As Object

Set WinRegistry = CreateObject("WScript.Shell")

ReadWinRegistry = Registry.RegRead(Cle & Variable)

End Function



le code ailleurs
Dim Excelpath As String
Dim ExcelInstallPath As String
Excelpath = ReadWinRegistry("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Excel.exe\", "Path")
If Trim(Excelpath) = "" Then
MessageBox "Excel is missing us so hard"
Else
MessageBox "Excel is ready to f**k your windows down"
Excelpath = ou qu'il est mon excel de merde
Jérome Deniau
 

Messagepar Kaly » 14 Oct 2009 à 09:45

roubech a écrit:au hasard, je dirais, essayes d'instancier l'appli OLE et si tu as une erreur ...

[syntax="LotusScript"]on Error Goto ErrorHandler
Set XLApp = CreateObject("Excel.Application")
ErrorHandler :
msgbox "Excel non installé"[/syntax]



Bonjour,

J'ai essayé ceci :
Code : Tout sélectionner
Sub Click(Source As Button)
   Dim XLApp As Variant
   On Error Goto ErrorHandler
   
   Set XLApp = CreateObject("Excel.Application")
   XLApp.Quit
   Exit Sub
ErrorHandler :
   Msgbox "Excel non installé"
   
End Sub


Avec une machine possédant EXCEL : ça fonctionne

Avec une machine sans Excel : Cannot create Automation Object

J'ai regardé les tips sur la gestion des erreurs, je ne vois vraiment pas
Kaly
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 118
Inscrit(e) le : 26 Déc 2006 à 13:22

Messagepar Michael DELIQUE » 14 Oct 2009 à 09:48

salut
essais ça

Code : Tout sélectionner
Sub Click(Source As Button)
   Dim XLApp As Variant
   On Error Goto ErrorHandler
   
   Set XLApp = CreateObject("Excel.Application")
   XLApp.Quit
   Exit Sub
ErrorHandler :
resume next
   Msgbox "Excel non installé"
   
End Sub
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Kaly » 14 Oct 2009 à 09:51

Michael DELIQUE a écrit:salut
essais ça

Code : Tout sélectionner
Sub Click(Source As Button)
   Dim XLApp As Variant
   On Error Goto ErrorHandler
   
   Set XLApp = CreateObject("Excel.Application")
   XLApp.Quit
   Exit Sub
ErrorHandler :
resume next
   Msgbox "Excel non installé"
   
End Sub


C'est idem.
Kaly
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 118
Inscrit(e) le : 26 Déc 2006 à 13:22

Messagepar Michael DELIQUE » 14 Oct 2009 à 09:56

colle un "exit sub" juste avant le "end sub"
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Kaly » 14 Oct 2009 à 10:06

Michael DELIQUE a écrit:colle un "exit sub" juste avant le "end sub"


C'est pareil.
Kaly
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 118
Inscrit(e) le : 26 Déc 2006 à 13:22

Messagepar Michael DELIQUE » 14 Oct 2009 à 10:14

re,

cette fonction marche pour moi

Code : Tout sélectionner
Function TestExcel() As Boolean
   Dim XLApp As Variant
   
   On Error Goto ErrorHandler
   
   TestExcel = True
   
   Set XLApp = CreateObject("Excel.application")
   XLApp.Quit

   Exit Function
ErrorHandler :
   TestExcel  = False
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 14 Oct 2009 à 10:16

re

j'avais ça qui traine reagrde si ça t'aiderai pas
Code : Tout sélectionner
Public Function MSOfficeVersion As Variant
   'Déclaration variable
   Dim vrObject As Variant
   Dim lstValue List As String
   
   On Error Resume Next
   Set  vrObject = CreateObject("word.application")
   On Error Goto ErreurHandle
   If vrObject Is Nothing  Then
      lstValue("WORD") = "ERROR"
   Else
      Select Case  Cstr(vrObject.Version)
      Case "8","8.0"
         lstValue("WORD") = "97"
      Case "9","9.0"
         lstValue("WORD") = "2000"
      Case "10","10.0"
         lstValue("WORD") = "XP"
      Case "11","11.0"
         lstValue("WORD") = "2003"
      Case "12","12.0"
         lstValue("WORD") = "2007"
      End Select
   End If
   Set vrObject = Nothing
   
   On Error Resume Next
   Set  vrObject = CreateObject("excel.application")
   On Error Goto ErreurHandle
   If vrObject Is Nothing  Then
      lstValue("EXCEL") = "ERROR"
   Else
      Select Case  Cstr(vrObject.Version)
      Case "8","8.0"
         lstValue("EXCEL") = "97"
      Case "9","9.0"
         lstValue("EXCEL") = "2000"
      Case "10","10.0"
         lstValue("EXCEL") = "XP"
      Case "11","11.0"
         lstValue("EXCEL") = "2003"
      Case "12","12.0"
         lstValue("EXCEL") = "2007" 'à Vérifier
      End Select
   End If
   Set vrObject = Nothing
   
   On Error Resume Next
   Set  vrObject = CreateObject("powerpoint.application")
   On Error Goto ErreurHandle
   If vrObject Is Nothing  Then
      lstValue("POWERPOINT") = "ERROR"
   Else 
      Select Case  Cstr(vrObject.Version)
      Case "8","8.0"
         lstValue("POWERPOINT") = "97"
      Case "9","9.0"
         lstValue("POWERPOINT") = "2000"
      Case "10","10.0"
         lstValue("POWERPOINT") = "XP"
      Case "11","11.0"
         lstValue("POWERPOINT") = "2003"
      Case "12","12.0"
         lstValue("POWERPOINT") = "2007" 'à Vérifier
      End Select
   End If
   Set vrObject = Nothing
   
   On Error Resume Next
   Set  vrObject = CreateObject("access.application")
   On Error Goto ErreurHandle
   If vrObject Is Nothing  Then
      lstValue("ACCESS") = "ERROR"
   Else
      Select Case  Cstr(vrObject.Version)
      Case "8","8.0"
         lstValue("ACCESS") = "97"
      Case "9","9.0"
         lstValue("ACCESS") = "2000"
      Case "10","10.0"
         lstValue("ACCESS") = "XP"
      Case "11","11.0"
         lstValue("ACCESS") = "2003"
      Case "12","12.0"
         lstValue("ACCESS") = "2007" 'à Vérifier
      End Select
   End If
   Set vrObject = Nothing
   
   MSOfficeVersion = lstValue
   Erase lstValue
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   
   Set MSOfficeVersion = Nothing
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Kaly » 14 Oct 2009 à 11:51

Michael DELIQUE a écrit:re,

cette fonction marche pour moi

Code : Tout sélectionner
Function TestExcel() As Boolean
   Dim XLApp As Variant
   
   On Error Goto ErrorHandler
   
   TestExcel = True
   
   Set XLApp = CreateObject("Excel.application")
   XLApp.Quit

   Exit Function
ErrorHandler :
   TestExcel  = False
   Exit Function
End Function


ça fonctionne désormais avec ce code.
Merci beaucoup.
Kaly
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 118
Inscrit(e) le : 26 Déc 2006 à 13:22


Retour vers Développement

cron