Skakaline
Messages postés16Date d'inscriptionjeudi 3 août 2006StatutMembreDernière intervention26 juin 2008
-
4 août 2006 à 17:59
Skakaline
Messages postés16Date d'inscriptionjeudi 3 août 2006StatutMembreDernière intervention26 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
Messages postés16Date d'inscriptionjeudi 3 août 2006StatutMembreDernière intervention26 juin 2008 4 août 2006 à 18:17
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 août 2006 à 18:31
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