Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VBA : GESTION DE VERSION D'OFFICE POUR LES RÉFÉRENCES (MS WORD XX.X OBJECT LIBRARY)


Information sur la source

Catégorie :VBA Classé sous : reference, vba, version, office, excel Niveau : Débutant Date de création : 21/12/2006 Date de mise à jour : 22/12/2006 02:33:32 Vu : 7 130

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Ce tout petit bout de code permet de régler des problèmes de portabilité d'un ordinateur à un autre avec un environnement Office différent, quant il est fait appelle à une reference MS xxxxxxx Object library

Il est adapté pour pouvoir piloter Word depuis Excel, pour les différentes versions de Word de 97 à 2003, mais le principe doit pouvoir être étendu à Excel, Access, etc.

N'ayant pas trouvé de code me convenant jusque là, je vous laisse celui-ci, si vous êtes intéressés

J'y fait appel au lancement de mon application (ici Excel dans WorkBook_Open())

Attention, pour que celà marche, il faut cocher l'option "Faire confiance au projet visual basic" dans Outils -> Macro -> Sécurité -> deuxième onglet, sinon plantage (sécurité qui empêche d'utiliser VBProject).

Voilà, c'est pas du haut niveau mais ça peut éventuellement servir à d'autres grands débutants comme moi
 

Source

  • Private Sub gestion_ref()
  • On Error Resume Next 'Si la référence est déjà installée évite l'erreur qui suit
  • Dim x As Object
  • Dim word_object As Object
  • 'Efface les references "Broken"
  • For Each x In ThisWorkbook.VBProject.References
  • If x.IsBroken = True Then ThisWorkbook.VBProject.References.Remove x
  • Next x
  • Set x = ThisWorkbook.VBProject.References
  • Set word_object = CreateObject("word.application") 'On recherche la version de Word installée
  • If word_object.Version = "8.0" Then 'Word 97
  • x.AddFromFile word_object.Path & "\MSWORD8.OLB"
  • ElseIf word_object.Version = "9.0" Then 'Word 2000
  • x.AddFromFile word_object.Path & "\MSWORD9.OLB"
  • ElseIf word_object.Version = "10.0" Then 'Word XP
  • x.AddFromFile word_object.Path & "\MSWORD" & ".OLB"
  • ElseIf word_object.Version = "11.0" Then 'Word 2003
  • x.AddFromFile word_object.Path & "\MSWORD" & ".OLB"
  • End If
  • Set x = Nothing
  • Set word_object = Nothing
  • End Sub
Private Sub gestion_ref()
On Error Resume Next 'Si la référence est déjà installée évite l'erreur qui suit
Dim x As Object
Dim word_object As Object

'Efface les references "Broken"
For Each x In ThisWorkbook.VBProject.References
    If x.IsBroken = True Then ThisWorkbook.VBProject.References.Remove x
Next x

Set x = ThisWorkbook.VBProject.References

Set word_object = CreateObject("word.application") 'On recherche la version de Word installée
If word_object.Version = "8.0" Then 'Word 97
    x.AddFromFile word_object.Path & "\MSWORD8.OLB"
ElseIf word_object.Version = "9.0" Then 'Word 2000
    x.AddFromFile word_object.Path & "\MSWORD9.OLB"
ElseIf word_object.Version = "10.0" Then 'Word XP
    x.AddFromFile word_object.Path & "\MSWORD" & ".OLB"
ElseIf word_object.Version = "11.0" Then 'Word 2003
     x.AddFromFile word_object.Path & "\MSWORD" & ".OLB"
End If

Set x = Nothing
Set word_object = Nothing
  
End Sub

Historique

22 décembre 2006 02:16:37 :
Amélioration
22 décembre 2006 02:25:50 :
Correction bug répertoires Excel et Word différents
22 décembre 2006 02:33:32 :
Amélioration

Commentaires et avis

signaler à un administrateur
Commentaire de Gwen8 le 21/12/2006 11:16:09

N'exitez pas a le dire si sa marche chez vous ou non.

signaler à un administrateur
Commentaire de econs le 21/12/2006 11:50:42 administrateur CS

Salut,

Pas grand chose à dire si ce n'est ceci :
As tu vérifié que "Set x = ThisWorkbook.VBProject.References" était accessible depuis toutes les versions d'Excel ? C'est possible ... et même souhaitable. N'ayant pas pu faire le test, je demande ...
Ce code ne fonctionnera que si Word et Excel ont été installés dans le même répertoire (C:\Program Files ... ). Dans 99% des cas, c'est fait ainsi. Pas de problème en soit.

Trim("8") = "8"
Trim("9") = "9"
Donc pas besoin d'utiliser Trim()

Enfin, tu as écrit une procédure (Sub), pas une fonction (Function). Aucun paramètre n'est retourné.

Bon p'tit prog dans l'ensemble. Surement utile.

signaler à un administrateur
Commentaire de Gwen8 le 22/12/2006 02:30:39

Merci pour tes remarques, j'ai corrigé les Trim, le Sub et pour ce qui est des dossiers pouvant être différents, Application.Path est remplacé par word_object.Path.

Je n'ai effectivement pas testé sur toutes les versions pour le VBProject.References. Il se peut que celà bug (97?). Sinon, ne pas oublier de cocher l'option "Faire confiance au projet visual basic" dans Outils -> Macro -> Sécurité -> deuxième onglet (ou quelquechose de similaire suivant la version, ici Excel 2003)

signaler à un administrateur
Commentaire de Gwen8 le 22/12/2006 03:00:37

J'ai fait une brève recherche sur le net et il semble que le niveau de controle sur la manipulation du VBE soit apparue avec Excel 2002 (XP?).
La manipulation de VBE (VBProject) est possible depuis EXCEL 97, mais pas avant (EXCEL 95 et antérieures). Donc il ne devrait pas y avoir de problème.

Source : http://www.cpearson.com/excel/vbe.htm

signaler à un administrateur
Commentaire de thierrydkk le 22/12/2006 22:37:32

Merci pour la source proposé j'avais demandé il y a un momment(plusieurs mois) si il y avait une possibilité de choisir la version du fichier "*.OLB".tu viens de proposer une solution je vais essayer.

merci encore.

thierrydkk

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Excel Interop [ par SeKo54 ] Bonsoir,J'ai compilé un .exe avec VB2008 sous vista possedant Office 2007. J'ai passé cette application a un amis qui fonctionne sous XP avec une anci Version de VBA pour EXCEL [ par esipa07 ] Bonjour à toutes et à tous,Chez moi, je bosse sous XP et avec EXCEL 2000.Au bureau, je bosse sous W98 et Excel 97.Partant du principe que qui peut le reference librairie EXCEL qnad chgt de version [ par polair_ours ] BonjourJ'ai un petit(gros...) soucis avec une appli VB6 qui attaque Outlook et excel ..Cette appli a été développé avec Office 200 Différentes version d'excel [ par pjouy ] Bonjour,J'ai un gros problème avec les différentes versions d'Excel. Je m'explique : je programme le tout chez moi, l'exécute et il n'y a aucun problè Probleme de Reference manquante VBA [ par helpvb ] Bonjour,J ai développé des macros VBA et suis sous environnement Office 11J ai besoin d assurer la compatibilité descendante dans la mesaure ou plusie migration application VBA et macro excel Office 97 to 2003 [ par Benyohan ] Bonjour, j'ai pour mission de migrer des applications en VBA excel et access version 9è vers du2003aparement lors de mon arrivé office 2003 sera deja VBA(urgent) [ par nadia2080 ] bonjour tout le mondedans mon projet je veux transferer le contenu d'un listview à un fichier excel le probleme que j'ai un erreur de declaraton de Mi macros VBA/Excel [ par flo8526 ] Bonjour,j'utilise des macros de vba sous excel et je les affecte à des boutons, jusque là pas de problème.Par contre je souhaite affecter deux macros VBA et excel [projet gestion de dossier de société] [ par UltrAzimut ] Bonsoir a tous, je suis tout nouveau sur le forum.Présentation rapide : je bidouille en info, je code un peu (surtout php/mysql) mais je suis loin d'e lire cellule vista vba excel [ par MasterCent ] Bonjour,Oui je sais, en cherchant un peu, j'aurais pas eu à poser cette question, mais,- j'ai cherché, et le sujet est trop simple que pour cibler les


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.