Vérification de la version Excel et chargement de library via code VBA
Bonjour,
J’utilise un fichier excel partagé en réseau par 3 utilisateurs avec 2 versions d’excel différentes :
- 2007 (12.0.6787.5000) SP3 MSO (12.0.6785.5000) 32 bits
ET
- 2016 (16.0.4954.1000) MSO (16.0.4939.1000) 32 bits
Jusqu’à présent (version 2007), lors de l’utilisation de ce fichier les library suivantes sont requises :
- Microsoft Outlook 12.0 Object Library,
- Microsoft Word 12.0 Object Library,
Lorsque l’on utilise la version 2016 les bibliothèques suivantes sont insérées par défaut (automatiquement) sans problème:
- Microsoft Outlook 16.0 Object Library,
- Microsoft Word 16.0 Object Library,
Malheureusement, en retournant ensuite sur une version 2007, il recherche la version 16.0 qui évidement n’existe pas… et donc génère un bug.
Je peux recharger manuellement les bibliothèques 12.0 pour régler le problème mais j’aimerai savoir si, par le code, on peut lui faire charger la bibliothèque ad hoc en fonction de la version.
En vous remerciant par avance,
Déclaration des variables
Citation:
Envoyé par
Qwazerty
Salut
Et oui logique puisque c'est une constante et que la déclaration de cette constante est faite dans les références.
Deux solutions,
Tu dois aussi pouvoir en utilisant la méthode donnée par Philippe, déclarer ce nom de constante (avec la valeur associée) dans le cas ou IsLateBinding est true
[Edit]
@Philippe : ça pourrait être intéressant de traiter ce cas dans ton billet peut-être
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ' Compilation conditionnelle
#If IsLateBinding Then
Dim appWrd As Object
Dim wrdDoc As Object
Set appWrd = CreateObject("Word.Application")
Const wdGoToBookmark = -1
#Else
' Phase de test
' Nécessite le référencemant de Microsoft Word xx.n Object Library
Dim appWrd As Word.Application
Dim wrdDoc As Word.Document
Set appWrd = New Word.Application
MsgBox "Phase de test EarlyBinding"
#End If |
Non testé
[/Edit]
++
Qwaz
Bonjour,
En effet, j'ai déclaré les variables par leurs valeurs et tout fonctionne nickel (pour l'instant ;-) ) ,... mais j'ai pas encore tout vérifié,...
Code:
1 2 3 4
|
Public Const wdPasteText = 2
Public Const wdGoToBookmark = -1 |
Merci beaucoup pour votre aide