begin process at 2012 02 17 02:09:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBA

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

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


 Information sur la source

Note :
Aucune note
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 :9 206

Auteur : Gwen8

Ecrire un message privé
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

 Sources de la même categorie

Source avec Zip Source avec une capture OUTLOOK ATTACHEMENT SAVER par MoiLafouine
Source avec Zip GESTION PERSONNEL par oudlarbi
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TOURS DE HANOI (JEU) SOUS EXCEL (VBA) par rtoukkys
METTRE EN FORME DU TEXTE WORD DEPUIS EXCEL EN VBA par phanoulevoyou
Source avec Zip Source avec une capture [VBA VB6] FORCER L'OUVERTURE D'UN COMBOBOX par lermite222
Source avec Zip Source avec une capture [VBA] EXCEL - DÉMO - TIRER 1, 2 OU 3 DÉS + APIS par lermite222
Source avec Zip Source avec une capture Source .NET (Dotnet) NOMBRE EN LETTRES par lermite222

Commentaires et avis

Commentaire de Gwen8 le 21/12/2006 11:16:09

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

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.

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)

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

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 VBA EXCEL [ par scromania ] Bonjour, Je vous résume le problème,nous passons de 2000 Pro avec office 2003 sur du vista entreprise office 2007. Certain fichier excel possède des 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 vba nouvele feuille de données [ par viannfcna ] bonjour à tous je suis dans vba sous excel j'ai utilisé les feuilles proposées pour faire des programmes et là j'aimerai en faire une autre sans ouvr colorier une cellule excel en vba [ par stNONO ] Bonjour chers amis.je sur en train de faire un projet en VBA. Et sur un userform, je place 5 optionbuttons.je voudrais qu'à chaque sélection d'un opti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales