Bonjour à tous,

Je suis confronter à un nouveau problème:


j'ai un classeur Excel qui à besoin des références Word.

Le problème c'est qu'il peut etre ouvert sur Excel 2010 ou Excel 2003.

En fait c'est pour mon entreprise qui possède des ordinateur normaux avec des réseau dessus. Si on utilise Excel, c'est Excel 2010
Et des ordinateur dit TL (Terminaux Légers) qui ne possèdent pas de disque dur, cela va directemetn sur le réseau et tout s'ouvre avec 2003.


Du coup j'ai la référence Microsoft Word 14.0 sur Excel 2010 et Microsoft Word 9.0

Le problème c'est que lorsque je suis sur un TL, il n'arrive pas à activer la référence que je veux. Il dit qu'il ne la trouve pas... Elle est censée etre dans M:\program Files\Microsoft Office\Office\MSWORD9.OLE (c'est le chemin qui est marqué lorsque j'ai activé la référence) sauf que M:\program Files\Microsoft Office\Office\MSWORD9.OLE n'existe pas quand j'essaye de l'ouvrir. Ca doit être le disque dur de l'ordi qui n'existe pas... Y a -t-il un moyen de contourner le problème?

Autre problème si je n'active pas la référence Office 14.0 sur 2010 enregistre et ouvre via le TL, la référence Microsoft Office 9.0 n'apparait pas dans la liste des références...

en gros:
sous 2010: référence présente: uniquement microsoft word 14.0 chemin: C:\program Files\Microsoft Office\Office14\MSWORD.OL
sous TL: référence présente: uniquement microsoft word 9.0 chemin: M:\program Files\Microsoft Office\Office\MSWORD9.OLE

voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
If Val(Application.Version) < 12 Then
    'Si version d'Excel via TL
If Not ReferenceActive("Word") Then ActiverReference "MSWORD9.OLE" 'j'ai aussi essayé avec le chemin complet M:\program Files\Microsoft Office\Office\MSWORD9.OLE
Else
    'Si version d'Excel égale à 2007 ou supérieure
If Not ReferenceActive("Word") Then ActiverReference "MSWORD.OL" 
End If
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sub ActiverReference(NomComplet As String)
    ThisWorkbook.VBProject.References.AddFromFile NomComplet
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Function ReferenceActive(Nom As String) As Boolean
    Dim i As Integer
    Dim NbreRef As Integer
 
    NbreRef = ThisWorkbook.VBProject.References.Count
 
    For i = 1 To NbreRef
        If ThisWorkbook.VBProject.References(i).Name = Nom Then
            ReferenceActive = True
            Exit Function
        End If
    Next i
End Function

Merci de votre aide