macro pour vérifier que "VBA Extensibility 5.3 "

Le
girardeau
bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle
est bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Laurent Longre
Le #5027471
Bonjour,

Va dans le menu Outils -> Macros -> Sécurité, onglet "Editeurs approuvés", coche
l'option "Faire confiance au projet Visual Basic". Valide et relance ta macro.

Laurent

bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle
est bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide




papou
Le #5027441
Bonjour
Tu n'as pas besoin de t'inquiéter de cette référence.
Tu peux amender ton code de telle manière à ce qu'il fonctionne sans elle :

Sub ListModules()
Dim WS As Worksheet
Dim Rng As Range
dim vbcomp
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")
For Each vbcomp In ActiveWorkbook.VBProject.VBComponents
Rng(1, 1).Value = vbcomp.Name
Rng(1, 2).Value = ComponentTypeToString(vbcomp.Type)
Set Rng = Rng(2, 1)
Next vbcomp
End Sub

Function ComponentTypeToString(ComponentType As Long) As String
Select Case ComponentType
Case 11
ComponentTypeToString = "ActiveX Designer"
Case 2
ComponentTypeToString = "Class Module"
Case 100
ComponentTypeToString = "Document Module"
Case 3
ComponentTypeToString = "UserForm"
Case 1
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Cordialement
Pascal


"girardeau" news:
bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle est
bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide




girardeau
Le #5027421
Laurent Longre a couché sur son écran :
Bonjour,

Va dans le menu Outils -> Macros -> Sécurité, onglet "Editeurs approuvés",
coche l'option "Faire confiance au projet Visual Basic". Valide et relance ta
macro.

Laurent

bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle est
bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide


merci mais cela semble posé probleme sous excel 2007




papou
Le #5027411
Peut-être même que tu auras besoin de vérifier si chacun des composants
contient bien quelque chose ?

Dim rng As Range
Set rng = ActiveWorkbook.ActiveSheet.Range("A1")
For Each vbcomp In ActiveWorkbook.VBProject.VBComponents
rng(1, 1).Value = vbcomp.Name
rng(1, 2).Value = ComponentTypeToString(vbcomp.Type)
rng(1, 3).Value = vbcomp.CodeModule.CountOfLines
Set rng = rng(2, 1)
Next vbcomp

Cordialement
Pascal


"papou" de news:
Bonjour
Tu n'as pas besoin de t'inquiéter de cette référence.
Tu peux amender ton code de telle manière à ce qu'il fonctionne sans elle
:

Sub ListModules()
Dim WS As Worksheet
Dim Rng As Range
dim vbcomp
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")
For Each vbcomp In ActiveWorkbook.VBProject.VBComponents
Rng(1, 1).Value = vbcomp.Name
Rng(1, 2).Value = ComponentTypeToString(vbcomp.Type)
Set Rng = Rng(2, 1)
Next vbcomp
End Sub

Function ComponentTypeToString(ComponentType As Long) As String
Select Case ComponentType
Case 11
ComponentTypeToString = "ActiveX Designer"
Case 2
ComponentTypeToString = "Class Module"
Case 100
ComponentTypeToString = "Document Module"
Case 3
ComponentTypeToString = "UserForm"
Case 1
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Cordialement
Pascal


"girardeau" news:
bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle est
bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide








papou
Le #5027351
Si c'est l'option que tu ne trouves pas elle est là :
Onglet Développeur
Sécurité des macros
Paramètres des macros
Paramètres de macros pour les développeurs
Cocher "Accès approuvé au modèle d'objet du projet VBA"

Cordialement
Pascal


"girardeau" news:
Laurent Longre a couché sur son écran :
Bonjour,

Va dans le menu Outils -> Macros -> Sécurité, onglet "Editeurs
approuvés", coche l'option "Faire confiance au projet Visual Basic".
Valide et relance ta macro.

Laurent

bonjour
j'ai récupéré une macro pour lister les modules de mon classeur. "VBA
Extensibility 5.3" me pose problème, je n'ai pas la certitude qu'elle
est bien installée

j'ai une erreur 13 sur la ligne "Set VBProj = ActiveWorkbook.VBProject"

Sub ListModules()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim WS As Worksheet
Dim Rng As Range

Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")

For Each VBComp In VBProj.VBComponents
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub


Function ComponentTypeToString(ComponentType As
VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ActiveXDesigner
ComponentTypeToString = "ActiveX Designer"
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " &
CStr(ComponentType)
End Select
End Function

Merci pour votre aide


merci mais cela semble posé probleme sous excel 2007








Publicité
Poster une réponse
Anonyme