Bonjour,

Il n'est pas trop compliqué de rajouter une référence dans le code VBA après détection de la présence de par exemple MS Project.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Public Function TestMSProject() As Boolean
 
    Dim objTmp  As Object
    Dim Ref     As Reference
 
On Error GoTo Err_TestMSProject
 
    'Test la présence de MS Project et déclenche une erreur si absent
    Set objTmp = CreateObject("MSProject.Application")
    Set objTmp = Nothing
 
    'Test la présence de la référence MS Project
    For Each Ref In APPLICATION.References
        If Ref.NAME = "MSProject" Then
            TestMSProject = True
            GoTo Exit_TestMSProject
        End If
    Next Ref
 
    'Installe la référence MS Project
    References.AddFromFile ("C:\Program Files\Microsoft Office\Office\MSPRJ9.OLB") 
    ' ou \Office12\MSPRJ12.OLB pour la version 2007
    TestMSProject = True
 
Exit_TestMSProject:
    Exit Function
 
Err_TestMSProject:
 
    'Test la présence de la référence MS Project
    For Each Ref In APPLICATION.References
        'Supprime la référence MS Project
        If Ref.NAME = "MSProject" Then References.Remove References!MSProject
    Next Ref
    TestMSProject = False
    Resume Exit_TestMSProject
 
End Function
Ce code détecte la présence de MS Project 2000 (ou 2007) et ajoute le fichier OLB dans les références du code.

MAIS... cela fonctionne si le code n'est pas compilé (mde)

Quelqu'un peux me dire comment ajouter/supprimer une référence ou éviter que mon programme se plante si une référence à un programme absent est référencée dans mon fichier mde (compilé).

Un grand merci,

Philippe.