Office VBA : Suppression Références manquantes

zenixNT

XLDnaute Nouveau
Bonjour,

Je suis à la recherche d'une solution (pour changer) concernant un problème de gestion des références.
J'ai un document Word contenant des références, dont une est MANQUANTE. J'aimerai automatiser le traitement de suppression de cette référence qui ne sert à rien dans mon code (System Monitor Control) puisque je ne fais pas de monitoring sur ce genre de document.
J'ai trouvé beaucoup de solutions pour supprimer les réferences, notamment en utilisant le lien suivant, la boucle

Code:
For Each chkRef In vbProj.References
 
      ' If the reference is broken, send the name to the Immediate Window.
      If chkRef.IsBroken Then
         vbProj.References.Remove chkRef
      End If
 
   Next

Ce code ne fonctionne pas car la référence ne peut pas être "atteinte" car elle n'est pas renseignée dans le registre (effectivement le GUID est absent du registre)... Du coup impossible de supprimer cette référence du projet puisqu'elle est absente du registre...

Y a-t-il quelqu'un qui aurait une idée sur la méthode de suppression d'une référence absente du registre ?

Je vous remercie beaucoup pour votre réponse et vous souhaite une bonne journée!

zenixNT
 

Staple1600

XLDnaute Barbatruc
Re : Office VBA : Suppression Références manquantes

Bonsoir à tous

Testé sur un *.doc avec la référence cochée (avec Word 2013)
Après exécution du code ci-dessous la référence n'est plus cochée.
Code:
Sub RemoveReference()
     Dim Reference As Object
     For Each Reference In ActiveDocument.VBProject.References
           If Reference.Description = "System Monitor Control" Then
                 ActiveDocument.VBProject.References.Remove Reference
           End If
     Next
End Sub

PS: Il faut que soit cochée cette référence:
Microsoft Visual Basic for Application Extensibility 5.3
et que dans Sécurité Macros ceci soit coché.
approuve.png
 

zenixNT

XLDnaute Nouveau
Re : Office VBA : Suppression Références manquantes

Bonjour Staple1600 et merci beaucoup pour ta réponse et le temps pris pour le test !

Je suis tout à fait d'accord que ce code fonctionne si la référence est initialement cochée et fonctionnelle. Cependant, le code que j'utilise et le tien, ne fonctionnent pas si la référence est notée comme MANQUANTE dans la liste des références. A ce moment, aucun moyen de la décocher puisqu'elle est absente du registre... C'est vraiment le fait qu'elle soit MANQUANTE qui m'empêche de supprimer la référence...
J'avoue que le cas de test est assez difficile à recréer, mais pour ceux qui en auront le courage, je vous remercie de votre aide !

Cordialement, et vous souhaitant beaucoup de courage et ténacité pour résoudre tous les problèmes,

zenixNT
 

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 975
dernier inscrit
denry