Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro pour vérifier que "VBA Extensibility 5.3 "

5 réponses
Avatar
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

5 réponses

Avatar
Laurent Longre
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




Avatar
papou
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" a écrit dans le message de
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




Avatar
girardeau
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




Avatar
papou
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" a écrit dans le message
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" a écrit dans le message de
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








Avatar
papou
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" a écrit dans le message de
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