IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Question Compilation conditionnelle


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Par défaut Question Compilation conditionnelle
    Bonjour,

    Est-ce que quelqu'un connait un moyen de modifier l'argument de compilation conditionnelle autre que depuis l'interface Outils> Propriétés de VBA Project?

    Question subsidiaire : ()

    Qq'un connait un moyen de supprimer de la liste des références cochées, une référence manquante sur le pc?

    Avec le code suivant, il ne me supprime pas la référence manquantes, bien qu'il passe dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub cleanReference(theGUID As String)
         Dim x As Object
         Dim n As Integer
         n = Application.VBE.ActiveVBProject.References.count
         Do While  n > 0
           On Error Resume Next
           Set x = Application.VBE.ActiveVBProject.References.Item(n)
                  If x.GUID = theGUID Then
               Application.VBE.ActiveVBProject.References.Remove x
           End If
           n = n - 1
         Loop
    End Sub
    Mercii

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir


    pour désactiver les références manquantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Ref As Reference
     
    'La procédure boucle sur la collection de références et supprime celles qui sont
    'spécifiées manquantes.  
    For Each Ref In ThisWorkbook.VBProject.References
        If Ref.IsBroken = True Then _
            ThisWorkbook.VBProject.References.Remove Ref
    Next Ref


    bonne soirée
    michel

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Par défaut
    Merci, mais ça ne marche pas très bien chez moi, je ne sais pas pourquoi

    Quand il tombe sur une référence manquante, au moment d'exécuter le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.References.Remove Reff
    Il génère l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur d'exécution '-2147319779(8002801d)':
     
    Erreur Automation
    Bibliothèque non inscrite.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Par défaut
    Bonjour,
    J'ai la même erreur et suis très interessé par une solution à ce problème
    A+

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    Trouver qu'une référence est absente est relativement simple.

    je ne connais par contre personnellement (et apparemment personne d'autre non plus) aucune méthode permettant le "décochage" dynamique d'une référence absente ...

    La solution ? ===>> traiter en "late binding", avec les inconvénients que cela induit :

    1- perte des facilités de l'IntelliSense en mode design
    2- impossibilité d'utiliser nomément les constantes VB (obligé de se référer à leur valeur numérique directe, en lieu et place)

    Voilà !
    Si le "Late Binding" ne plait pas, il ne reste qu'une solution : faire dénoncer l'absence (par le code) puis décocher manuellement...

    Si quelqu'un d'autre a trouvé une solution miracle, qu'il ait l'amabilité de l'exposer ici ...

Discussions similaires

  1. Compilation conditionnelle
    Par srvremi dans le forum Langage
    Réponses: 10
    Dernier message: 23/02/2006, 18h51
  2. Compilation conditionnelle
    Par owsion dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2005, 17h15
  3. [LG] Compilation conditionnelle et multiples unités
    Par Alcatîz dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2005, 08h58
  4. syntaxe pour compilation conditionnelle ?
    Par tintin72 dans le forum C
    Réponses: 9
    Dernier message: 17/05/2005, 18h12
  5. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo