Connaitre la version de word/Excel installé sur le poste

Connaitre la version de word/Excel installé sur le poste

Messagepar Stephane Maillard » 08 Oct 2007 à 15:28

Salut,

Code : Tout sélectionner
Sub Initialize
   Dim appWord As Variant
   Set appWord = CreateObject("word.application")
   If appWord.Version = "8.0" Then
      Msgbox "97"
   Elseif appWord.Version = "9.0" Then
      Msgbox "2000"
   Elseif appWord.Version = "10.0" Then
      Msgbox "XP"
   Elseif appWord.Version = "11.0" Then
      Msgbox "2003"
   Elseif appWord.Version = "12.0" Then ' A vérifier
      Msgbox "2007"
   End If
   Set appWord = Nothing
End Sub


Dans le createobject mettre excel.application et le code devrait être valable.
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Michael DELIQUE » 09 Oct 2007 à 10:30

une version plus complète à partir du code de Stéphane

Code : Tout sélectionner
Function MSOfficeVersion As Variant
   'Déclaration variable
   Dim vrObject As Variant
   Dim lstValue List As String
   
   On Error Goto ErreurHandle
   
   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 !"
   Resume Next
   Set MSOfficeVersion = Nothing
   Exit Function
End Function
Dernière édition par Michael DELIQUE le 09 Oct 2007 à 14:42, édité 1 fois.
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 abertisch » 09 Oct 2007 à 15:58

Michael DELIQUE a écrit:ok merci corrigé


Je sais que c'est pas le bon endroit pour poster mais il y a un 2ème soucis.

Il plante sur la ligne d'Access:

Code : Tout sélectionner
Select Case  Cstr(vrObject.Version)


J'ai le message d'erreur ci-dessous:

un idée ?!?
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Stephane Maillard » 09 Oct 2007 à 16:50

Salut,

Ca tourne chez moi avec un Lotus 7.0.2 et un Office 2003. Essai dans un access de faire un module et de mettre ce code msgbox application.version si cela ne fonctionne pas c'est que ta version ne le prend pas en compte. Dans Access faire F2 et rechercher Version dans la liste tu devrais trouvé Application => Version
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar abertisch » 10 Oct 2007 à 06:51

Bonjour,

Merci pour votre aide.

J'ai trouvé un forum qui parle de mon problème: http://www.developpez.net/forums/showth ... 785&page=3

Apparament la version d'access 2000 ne reconnait pas application.version :roll:

Mais j'ai trouvé ce bout de code sur le forum: http://www.developpez.net/forums/showth ... ost2293854

Peut être est-il mieux ?
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Stephane Maillard » 10 Oct 2007 à 10:05

Salut,

Oui c'est pas mal, perso j'aime pas trop utiliser fso sauf si on ne peux pas faire autrement.
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Messagepar Dammy » 05 Oct 2010 à 13:40

je crois que vous avez pas pensez qu'il pouvait y avoir plusieurs version d'Office d'installer sur le Pc !!!
Dammy
Premier posts
Premier posts
 
Message(s) : 10
Inscrit(e) le : 05 Oct 2010 à 10:52

Messagepar Michael DELIQUE » 05 Oct 2010 à 15:38

salut

en effet, ça n'a pas été prévus, le code va prendre la version référencé dans la base de registre (celle qui s'ouvre par défaut)

dans le cas d'une multi installation, hormis en allant trifouiller dans la base de registre je ne vois pas comment faire (sauf si tu connais les chemin d'installation des différentes versions)
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


Retour vers Importation/Exportation vers d'autres applications