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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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" <laurent.girardeau@ac-bordeaux.fr> a écrit dans le message de
news: mn.439f7d7bf8e6dfd0.82407@ac-bordeaux.fr...
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
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
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
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
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
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
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" <cpapounospamthanx@lapostenospamthanks.net> a écrit dans le message
de news: eXK5sphIIHA.2100@TK2MSFTNGP03.phx.gbl...
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" <laurent.girardeau@ac-bordeaux.fr> a écrit dans le message de
news: mn.439f7d7bf8e6dfd0.82407@ac-bordeaux.fr...
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
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
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
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" <laurent.girardeau@ac-bordeaux.fr> a écrit dans le message de
news: mn.43d57d7b59aeaaa7.82407@ac-bordeaux.fr...
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
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