Vba : gestion de version d'office pour les références (ms word xx.x object library)

Contenu du snippet

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 / Exemple :


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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.