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

Runtime Discussion :

[2007]Pb ajout référence par le code


Sujet :

Runtime

  1. #1
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut [2007]Pb ajout référence par le code
    Bonjour à tous,

    J'utilise le code de la FAQ pour contrôler les références d'une appli tournant en runtime 2007.(Lister, ajouter, supprimer).
    Executé en mde ou sur un poste en runtime (xp ou vista) l'ajout me génère une erreur
    Requested type library or wizard is not a VBA project
    .
    La liste peut aussi me générer ce genre d'erreur (sur le poste xp).
    La compilation ne donne pas d'erreur.
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Private Sub cmdListerReferences_Click()
    GetReferences
    End Sub
    Function GetReferences()
    Dim Ref As Reference
    On Error GoTo Err_GetReferences
    For Each Ref In Application.References
        MsgBox "Référence : " & Ref.Name & " - Version : " & Ref.Major & "." _
                                                & Ref.Minor & " - FullPath : " & Ref.FullPath, , "xxx"
    Debug.Print "Réf : " & Ref.Name & " - Version : " & Ref.Major & "." _
                                                & Ref.Minor & " - FullPath : " & Ref.FullPath
    Next Ref
    Exit_GetReferences:
       Exit Function
    Err_GetReferences:
        MsgBox "Erreur Form_frmAccueil_GetReferences n°: " & Err.Number & vbCrLf & Err.Description, , "xxx"
        Resume Exit_GetReferences
    End Function
    Private Sub cmdSupprimerReference_Click()
     SupprimerReferences
    End Sub
    Public Sub SupprimerReferences()
     
              Dim Ref As Reference, NomRef As String
     
    On Error GoTo Err_SupprimerReferences
         NomRef = InputBox("Nom de la référence", "xxx - Suppression d'une référence")
         Debug.Print "Nom "; NomRef
         If ExisteReference(NomRef) Then
              Set Ref = References(NomRef)
              References.Remove Ref
              MsgBox "Référence supprimée", , "xxx - Suppression d'une référence"
        Else
            MsgBox "La référence n'a pas été trouvée", , "xxx - Suppression d'une référence"
         End If
     
     MsgBox "Il y a " & Application.References.Count & " références cochées.", , "xxx"
        For Each Ref In References
            If Ref.IsBroken Then
                MsgBox "GUID des références rompues:" & Ref.GUID, , "xxx"
            End If
        Next Ref
    Exit_SupprimerReferences:
       Exit Sub
    Err_SupprimerReferences:
        MsgBox "Erreur Form_frmAccueil_SupprimerReferences n°: " & Err.Number & vbCrLf & Err.Description, , "xxx"
        Resume Exit_SupprimerReferences
    End Sub
    Private Function ExisteReference(NomRef As String) As Boolean
         Dim Ref As Reference
         ExisteReference = False
         For Each Ref In Application.References
              If Ref.Name = NomRef Then
                   ExisteReference = True
              End If
         Next Ref
    End Function
    Private Sub cmdAjouterReferences_Click()
    On Error GoTo Err_cmdAjouterReferences_Click
        AjouterReferences
    Exit_cmdAjouterReferences_Click:
       Exit Sub
    Err_cmdAjouterReferences_Click:
        MsgBox "Erreur Form_frmAccueil_cmdAjouterReferences_Click n°: " & Err.Number & vbCrLf & Err.Description, , "xxx"
        Resume Exit_cmdAjouterReferences_Click
    End Sub
    Private Sub AjouterReferences()
        Dim CheminReference As String
         CheminReference = OuvrirDialogueFichier()
         Debug.Print "CheminReference " & CheminReference
         AjouterReference (CheminReference)
         'AjouterReference ("C:\Program Files\Microsoft Office\Office12\VVIEWER.DLL")
         'AjouterReference ("C:\Windows\system32\scrrun.dll")
     
    End Sub
    Private Sub AjouterReference(CheminRef As String)
         References.AddFromFile (CheminRef)
         MsgBox "Référence ajoutée : " & CheminRef, , "xxx"
    End Sub
    Auriez-vous une idée?

    Merci de votre attention

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 644
    Points : 34 352
    Points
    34 352
    Par défaut
    salut,
    petite astuce, plus rapide pour les references, tu peux voir la fonction isborken normalement, ca t'évite de parcourir toute les références de ton projet. Quant à la fonction OuvrirDialogueFichier() le code vérifie-t-il que le retour n'est pas null (clic sur annuler)... ?

  3. #3
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    Vu pour isBroken, ça donne cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub cmdBroken_Click()
    Dim Ref As Reference, cptRef As Long
    cptRef = 0
        For Each Ref In References
            If Ref.IsBroken Then
                MsgBox "GUID des références rompues:" & Ref.Guid, , "xxx"
            Else
                cptRef = cptRef + 1
            End If
        Next Ref
        MsgBox "non rompues : " & cptRef, , "xxx - Références rompues"
    End Sub
    J'ai aussi ajouté un test d'annulation de OuvrirDialogueFichier, mais cela ne resoud pas mon problème...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 644
    Points : 34 352
    Points
    34 352
    Par défaut
    oki,
    en pas à pas, sais-tu d'où l'erreur surgit inopinément ?

  5. #5
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    C'est à dire qu'en runtime je ne sais pas faire de debugage!
    Sur le poste de developpement tout est ok.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 644
    Points : 34 352
    Points
    34 352
    Par défaut
    d'accord,
    je ne suis pas spécialiste pour la partie runtime.
    Mais si c'est pas trop contraignant tu peux faire des debug.print tout du long (ligne par ligne ou instruction par instruiction) pour voir à jusqu'où le code tourne correctement.

  7. #7
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Tu me donnes une idée:
    Je ne l'ai jamais fait mais je vais générer mon package sans faire un mde et voir si je peux debugger!

  8. #8
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Le package généré avec le mdb au lieu du mde fonctionne sur le poste en runtime.
    Il s'agit donc d'un pb lié à la compilation mde.
    C'est une appli de test qui ne comporte qu'un formulaire et les boutons pour lancer les fonctions: lister, creer, supprimer, lister les ref rompues.
    Plus les modules pour la fonction OuvrirDialogueFichier.
    Tout est en Option Explicit.
    Aucune erreur à la compilation.

    Peut-il s'agir d'un pb de référence?
    Je rappelle l'erreur donnée par la gestion d'erreur:
    n°40179;La biblio de type ou l'assist requis n'est pas un projet VBA
    .
    J'effectue mes tests en ajoutant/supprimant CDO (cdosys.dll) ou MSForms (FM20.dll).


    Merci de votre aide. Je pense que si je peux corriger ce pb "simple" j'aurai des clés pour la kyrielle d'autre pb qui se présente à moi!

    EDIT: j'ai viré tout ce que je pouvais (OuvrirDialogueFichier et modules associés), j'ai mis le chemein en dur
    Private Sub AjouterReferences()

    On Error GoTo Err_AjouterReferences

    AjouterReference ("C:\Windows\system32\FM20.dll")
    Exit_AjouterReferences:
    Exit Sub
    Err_AjouterReferences:
    MsgBox "Erreur Form_frmAccueil_AjouterReferences n°: " & Err.Number & vbCrLf & Err.Description, , "ANAsoft"
    Resume Exit_AjouterReferences

    End Sub
    et c'est pareil!
    Je suis maudit ou quoi!

  9. #9
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    J'ai lu, ici même, que les modifications de références sont tout bonnement impossibles en mde!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout de variable (par le code) dans les Paramètres d'application
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 13
    Dernier message: 31/07/2007, 16h50
  2. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  3. [VBA Excel] Ajouter un AddIn par du code
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/11/2006, 17h30
  4. Activer une référence par le code
    Par repié dans le forum Général VBA
    Réponses: 12
    Dernier message: 28/06/2006, 16h12
  5. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39

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