Bibliothèque d'objets [Résolu]

Messages postés
16
Date d'inscription
jeudi 3 août 2006
Dernière intervention
26 juin 2008
- - Dernière réponse : Skakaline
Messages postés
16
Date d'inscription
jeudi 3 août 2006
Dernière intervention
26 juin 2008
- 16 août 2006 à 11:21
Bonjour,

Je cherche à lister à partir d'excel les macros d'une autre application.
Malheureusement, je reçois une erreur lors de l'exécution dès que je fait référence à la propiété CodeModule de l'objet VBComponent.
Err.number : -2143719779
Err.Description : Bibliothèque d'objets non enregistré
Pourtant, j'ai bien la bibliothèque "Microsoft Visual Basic for Applications Extensibility 5.3" ?!?
Quelqu'un peut il m'aider ?

Skakaline
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
16
Date d'inscription
jeudi 3 août 2006
Dernière intervention
26 juin 2008
3
Merci
J'ai supprimé les déclarations VBIDE et celà semble marché...
Encore un mystère non résolu !

Skakaline

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Skakaline
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
17
0
Merci
Salut,

c'est quoi ton code ?
Pour info, tu ne peux "toucher" à un projet avec mot de passe !

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Commenter la réponse de mortalino
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
17
0
Merci
Ah, et il faut charger la bibliothèque VBIDE !

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Commenter la réponse de mortalino
Messages postés
16
Date d'inscription
jeudi 3 août 2006
Dernière intervention
26 juin 2008
0
Merci
Salut,


Code où survient le problème

Dim MonProjet as VBIDE.VBproject
Dim MonComposant as VBIDE.VBComponent
Dim MonCode as VBIDE.CodeModule
Dim MonModue as String
...
Call AjoutModule 'teste et ajoute le module MonModule
set MonComposant = MonProjet.VBComponents(MonModule)
set MonCode = MonComposant.CodeModule
 =>le problème est là ! Dés que je fait référence à CodeModule : ERREUR !




Skakaline
Commenter la réponse de Skakaline
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
17
0
Merci
Comment s'appelle le Module ?
(ex : Module1, ModuleProcedures, etc..)

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Commenter la réponse de mortalino
Messages postés
16
Date d'inscription
jeudi 3 août 2006
Dernière intervention
26 juin 2008
0
Merci
Essai

Skakaline
Commenter la réponse de Skakaline
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
17
0
Merci
Essaie cette procédure :

<small>
Coloration syntaxique automatique </small>
Sub Lire_Code() 
    Dim MonStr           As String 
    Dim MonBook       As Workbook 
    Dim VBP               As VBIDE.VBProject
    Dim RechercheFile As FileDialog
    Dim refItemSelectionne As FileDialogSelectedItems

On Error GoTo Fin 

Application.ScreenUpdating = False 

' création de la boite de dialogue de type 'Choix du Fichier'
        Set RechercheFile = Application.FileDialog(msoFileDialogFilePicker) 

    With RechercheFile 
        .Filters.Add "Fichiers excel", "*.xls", 1  'Type de l'extension
        .InitialFileName = ThisWorkbook.Path  'la racine est celle de ce fichier
        .AllowMultiSelect = False  'on ne permet qu'une seule sélection de fichier
        .Title = "Quel est le fichier à traiter ?"  'titre de la boite de dialogue
        If .Show = -1 Then  'on l'affiche
            FichierATraiter = .SelectedItems.Item(1)  'référence le nom du fichier choisi
        Else 
        End If 
    End With 

        Set RechercheFile = Nothing  'vide la mémoire

    Workbooks.Open (FichierATraiter) 

        Set MonBook = ActiveWorkbook 
        Set VBP = MonBook.VBProject 

With VBP.VBComponents("Essai").CodeModule  'tu peux remplacer le nom du
' par UserForm1, Feuil2, MonModuleDeClasse1 etc...

    MonStr = .Lines(1, .CountOfLines) 
    MsgBox MonStr 
End With

On Error GoTo 0 

MonBook.Close False   '<<== moi j'ai mis à False 
' pour ne pas enregistrer et permettre plusieurs le test
        Set VBP = Nothing 
        Set MonBook = Nothing
Application.ScreenUpdating = True 
Application.EnableEvents = True 
    Exit Sub 

Fin: 
    MsgBox "ERREUR dans la lecture du code du Module", _ 
    vbOKOnly + vbCritical 
MonBook.Close False 
        Set VBP = Nothing 
        Set MonBook = Nothing 
Application.ScreenUpdating = True 
Application.EnableEvents = True 
End Sub

<small>
Coloration syntaxique automatique </small>

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Commenter la réponse de mortalino
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
17
0
Merci
Mini erreur, avant le
Application.ScreenUpdating = False
mettre
Application.EnableEvents = False

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Commenter la réponse de mortalino

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.