desactiver par vba une reference de la bibliotheque

fredl

XLDnaute Impliqué
Bonjour à tous,
J'ai un fichier excel avec macros qui doit successivement etre utilisé par 2 PC. Le premier avec office2010 puis le 2eme avec office 2003 (et malheureusement pas l'inverse...)
Je rencontre donc des problèmes de fonctionnement liés aux references (de la bibliothèque de ref sous vba)necessaires à son bon fonctionnement.
Quels conseils préconisez vous dans cette situation?
je pensais désactiver les ref à la fermeture du fichier sous 2010 et reactiver les refs sous 2003
j'ai testé le code :
nomRef = "C:\Program Files\MicrosoftOffice\Office14\MSWORD.OLB"
ThisWorkbook.VBProject.References.AddFromFile nomRef
ou ThisWorkbook.VBProject.References.Remove nomRef
mais cela ne marche pas et le message d'erreur suivant apparait :
"L'acces par programme au projet visual basic n'est pas fiable"...

Merci d'avance pour tous vos conseils qui j'espère m'aideront à me sortir de cette impasse.

Cordialement

Frédéric
 

fredl

XLDnaute Impliqué
Re : desactiver par vba une reference de la bibliotheque

Salut Michel et kjin ,
merci pour vos conseils,
Pour ce qui est du tien ,Michel, en fait j'étais parti de ces infos sur le forum...
Quand à ton conseil, kjin, je ne vois pas à quoi cela correspond dans excel/Sécurité : pas de cochage possible "Faire confiance au projet dans le menu sécurité des macros...
je ne m'en sort pas...
je crois que je suis mal.
Si vous voyez autre chose.
En tous les cas, merci pour votre aide.
Cordialement.
Fred
 

MJ13

XLDnaute Barbatruc
Re : desactiver par vba une reference de la bibliotheque

Re Fredl, Bonjour Kjin

En fait, il faut cocher sous XL2010 ces paramètres (voir images de XL2007, mais cela doit être pareil sous 2010). Par contre sur XL2003, je ne sais plus :eek:.
 

Pièces jointes

  • Options_Macros_XL2007.jpg
    Options_Macros_XL2007.jpg
    31 KB · Affichages: 368

tototiti2008

XLDnaute Barbatruc
Re : desactiver par vba une reference de la bibliotheque

Bonjour fredl, Bonjour kjin, Bonjour Michel,

Sur XL2003, c'est dans
Menu Outils-Macros-Sécurité
Onglet Editeurs approuvés
Cocher Faire confiance au projet Visual Basic,

Pas vu le lien vers le site de Fredéric Sigonneau, mais pour éviter le problème des références entre plusieurs versions d'Excel (et donc les versions des références qui changent), le mieux est de les décocher et de faire appel aux objets au travers l'instruction CreateObject

Par exemple, remplacer le code là qui nécessite la référence Microsoft Word XX.X Object Library

Code:
Sub AppelWord()
Dim WordApp As New Word.Application
    WordApp.Visible = True
    With WordApp
        .Documents.Add
        If .ActiveWindow.ActivePane.View.Type = wdNormalView Or .ActiveWindow.ActivePane.View.Type = wdOutlineView Then
            .ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
        .ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End With
    Set WordApp = Nothing
End Sub

par le code là qui ne necéssite aucune référence

Code:
Sub AppelWord()
Dim WordApp As Object
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    With WordApp
        .Documents.Add
        If .ActiveWindow.ActivePane.View.Type = 1 Or .ActiveWindow.ActivePane.View.Type = 2 Then
            .ActiveWindow.ActivePane.View.Type = 3
        End If
        .ActiveWindow.ActivePane.View.SeekView = 9
    End With
    Set WordApp = Nothing
End Sub
 

Statistiques des forums

Discussions
312 488
Messages
2 088 860
Membres
103 978
dernier inscrit
bderradji