OVH Cloud OVH Cloud

Comment changer de bibliothèque Office ?

3 réponses
Avatar
Clive Lumb
Bonjour,

J'ai le souvenir d'avoir déjà vu la reponse à la question suivante, mais je
ne la trouve plus ...

Nous avons une application qui utilise Word pour imprimer le document final
(tableaux et images).
Nous devons la rendre compatible avec les différentes versions d'Office dans
l'entreprise (de 9 à 11).
Outre compiler un exe spécifique à chaque version, y-a-t'il un moyen de
changer de bibliothèque Office "à la volée" dans le code ?

Merci d'avance

Clive

3 réponses

Avatar
papou
Bonjour Clive
Le plus simple (mais ça n'est que mon avis), est de ne faire référence à
aucune bibliothèque et de déclarer ton appli Word en tant qu'objet.
Avantage : aucune prise de tête pour la compatibilité (mais attention
toutefois aux fonctionnalités non disponibles parfois dans les versions
antérieures).
Inconvénient : pas d'accès direct aux objets et méthodes de l'application
Sinon, il est possible de définir quelle version tourne sur le poste mais
dans ce cas, il faut aller chercher la bonne référence au bon endroit ?

A toi de voir
Cordialement
Pascal

"Clive Lumb" a écrit dans le message
de news: %
Bonjour,

J'ai le souvenir d'avoir déjà vu la reponse à la question suivante, mais
je
ne la trouve plus ...

Nous avons une application qui utilise Word pour imprimer le document
final
(tableaux et images).
Nous devons la rendre compatible avec les différentes versions d'Office
dans
l'entreprise (de 9 à 11).
Outre compiler un exe spécifique à chaque version, y-a-t'il un moyen de
changer de bibliothèque Office "à la volée" dans le code ?

Merci d'avance

Clive




Avatar
ng
Salut,

Outre compiler un exe spécifique à chaque version, y-a-t'il un moyen de
changer de bibliothèque Office "à la volée" dans le code ?



Oui il suffit d'utiliser du late binding à la place du early binding (cf la
FAQ), c'est à dire pas de référence à word, les objets sont déclaré comme
Object, et en utilise CreateObject() et non new pour instancier.

Dim oWord As Object
Set oWord = CreateObject("Word.Application")


Set oWord = Nothing

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
Clive Lumb
Merci à toi Nicolas et à Pascal.
C'est bien ce que je cherchais.


"ng" a écrit dans le message de
news:e$
Salut,

> Outre compiler un exe spécifique à chaque version, y-a-t'il un moyen de
> changer de bibliothèque Office "à la volée" dans le code ?

Oui il suffit d'utiliser du late binding à la place du early binding (cf


la
FAQ), c'est à dire pas de référence à word, les objets sont déclaré comme
Object, et en utilise CreateObject() et non new pour instancier.

Dim oWord As Object
Set oWord = CreateObject("Word.Application")


Set oWord = Nothing

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/