Bonjour,
Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes
des feuilles et des userForms... d'une application VBA.
Car je commence à avoir quelques problèmes pour me repérer notamment dans
les mises à jour, corrections diverses.
Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple
indiquer seulement sur une sorte de sommaire la date de la modif et son
résumé.
NG m'a fait connaitre cet outil, qui possède une version pour VBA http://www.mztools.com/v3/features.htm YannX
"Markos" a écrit dans le message de news:
Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple indiquer seulement sur une sorte de sommaire la date de la modif et son résumé.
Merci par avance.
Bonjour,
NG m'a fait connaitre cet outil,
qui possède une version pour VBA
http://www.mztools.com/v3/features.htm
YannX
"Markos" <markos.psb@tiscali.fr> a écrit dans le message de
news:OHAyGSZ1EHA.1292@TK2MSFTNGP10.phx.gbl...
Bonjour,
Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes
des feuilles et des userForms... d'une application VBA.
Car je commence à avoir quelques problèmes pour me repérer notamment dans
les mises à jour, corrections diverses.
Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple
indiquer seulement sur une sorte de sommaire la date de la modif et son
résumé.
NG m'a fait connaitre cet outil, qui possède une version pour VBA http://www.mztools.com/v3/features.htm YannX
"Markos" a écrit dans le message de news:
Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple indiquer seulement sur une sorte de sommaire la date de la modif et son résumé.
Merci par avance.
Michel Pierron
Bonjour Markos;
Sub VBProjectList() Dim FullFileName As String, FileName As String FullFileName = Application.GetOpenFilename("Fichiers Excel (*.xls),*.xls") If Len(FullFileName) <= 8 Then Exit Sub If Dir(FullFileName) = "" Then MsgBox "Fichier non trouvé !", 48 Exit Sub End If FileName = Mid(FullFileName, lPos(FullFileName, "") + 1) If Not IsOpen(FileName) Then Workbooks.Open FullFileName If Workbooks(FileName).VBProject.Protection Then MsgBox "Projet verrouillé, abandon !", 48 Exit Sub End If Application.ScreenUpdating = False Workbooks.Add Call ListModules(FileName) End Sub
Private Function IsOpen(FileName As String) As Boolean Dim i As Integer For i = 1 To Workbooks.Count IsOpen = (Workbooks(i).Name = FileName) If IsOpen Then Exit Function Next i End Function
Sub ListModules(BookName As String) Dim oVB As Object, y&, x% For Each oVB In Workbooks(BookName).VBProject.VBComponents If x Then ActiveWorkbook.Sheets.Add y = 1 Cells(y, 1) = Workbooks(BookName).FullName Cells(y, 1).Font.Bold = True y = y + 1 Cells(y, 1) = oVB.Name & " Type: " & ModuleType(oVB) ActiveSheet.Name = oVB.Name Call ModuleCodeList(BookName, oVB.Name, y) x = x + 1 Next oVB End Sub
Private Function ModuleType(oVB As Object) As String Select Case oVB.Type Case 1: ModuleType = "Standard Module" Case 2: ModuleType = "Class Module" Case 3: ModuleType = "MS Form" Case 100: ModuleType = "Document" End Select End Function
Private Sub ModuleCodeList(BookName$, ModuleName$, y&) Dim StartLine& With Workbooks(BookName).VBProject.VBComponents(ModuleName).CodeModule StartLine = 1 Do Until StartLine > .CountOfLines y = y + 1 Cells(y, 1) = .Lines(StartLine, 1) StartLine = StartLine + 1 Loop End With End Sub
Private Function lPos%(Chain$, Char$) Dim iPos As Integer Do iPos = InStr(lPos + 1, Chain, Char, 1) If iPos = 0 Then Exit Do Else lPos = iPos Loop End Function
MP
"Markos" a écrit dans le message de news:
Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple indiquer seulement sur une sorte de sommaire la date de la modif et son résumé.
Merci par avance.
Bonjour Markos;
Sub VBProjectList()
Dim FullFileName As String, FileName As String
FullFileName = Application.GetOpenFilename("Fichiers Excel (*.xls),*.xls")
If Len(FullFileName) <= 8 Then Exit Sub
If Dir(FullFileName) = "" Then
MsgBox "Fichier non trouvé !", 48
Exit Sub
End If
FileName = Mid(FullFileName, lPos(FullFileName, "") + 1)
If Not IsOpen(FileName) Then Workbooks.Open FullFileName
If Workbooks(FileName).VBProject.Protection Then
MsgBox "Projet verrouillé, abandon !", 48
Exit Sub
End If
Application.ScreenUpdating = False
Workbooks.Add
Call ListModules(FileName)
End Sub
Private Function IsOpen(FileName As String) As Boolean
Dim i As Integer
For i = 1 To Workbooks.Count
IsOpen = (Workbooks(i).Name = FileName)
If IsOpen Then Exit Function
Next i
End Function
Sub ListModules(BookName As String)
Dim oVB As Object, y&, x%
For Each oVB In Workbooks(BookName).VBProject.VBComponents
If x Then ActiveWorkbook.Sheets.Add
y = 1
Cells(y, 1) = Workbooks(BookName).FullName
Cells(y, 1).Font.Bold = True
y = y + 1
Cells(y, 1) = oVB.Name & " Type: " & ModuleType(oVB)
ActiveSheet.Name = oVB.Name
Call ModuleCodeList(BookName, oVB.Name, y)
x = x + 1
Next oVB
End Sub
Private Function ModuleType(oVB As Object) As String
Select Case oVB.Type
Case 1: ModuleType = "Standard Module"
Case 2: ModuleType = "Class Module"
Case 3: ModuleType = "MS Form"
Case 100: ModuleType = "Document"
End Select
End Function
Private Sub ModuleCodeList(BookName$, ModuleName$, y&)
Dim StartLine&
With Workbooks(BookName).VBProject.VBComponents(ModuleName).CodeModule
StartLine = 1
Do Until StartLine > .CountOfLines
y = y + 1
Cells(y, 1) = .Lines(StartLine, 1)
StartLine = StartLine + 1
Loop
End With
End Sub
Private Function lPos%(Chain$, Char$)
Dim iPos As Integer
Do
iPos = InStr(lPos + 1, Chain, Char, 1)
If iPos = 0 Then Exit Do Else lPos = iPos
Loop
End Function
MP
"Markos" <markos.psb@tiscali.fr> a écrit dans le message de
news:OHAyGSZ1EHA.1292@TK2MSFTNGP10.phx.gbl...
Bonjour,
Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes
des feuilles et des userForms... d'une application VBA.
Car je commence à avoir quelques problèmes pour me repérer notamment dans
les mises à jour, corrections diverses.
Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple
indiquer seulement sur une sorte de sommaire la date de la modif et son
résumé.
Sub VBProjectList() Dim FullFileName As String, FileName As String FullFileName = Application.GetOpenFilename("Fichiers Excel (*.xls),*.xls") If Len(FullFileName) <= 8 Then Exit Sub If Dir(FullFileName) = "" Then MsgBox "Fichier non trouvé !", 48 Exit Sub End If FileName = Mid(FullFileName, lPos(FullFileName, "") + 1) If Not IsOpen(FileName) Then Workbooks.Open FullFileName If Workbooks(FileName).VBProject.Protection Then MsgBox "Projet verrouillé, abandon !", 48 Exit Sub End If Application.ScreenUpdating = False Workbooks.Add Call ListModules(FileName) End Sub
Private Function IsOpen(FileName As String) As Boolean Dim i As Integer For i = 1 To Workbooks.Count IsOpen = (Workbooks(i).Name = FileName) If IsOpen Then Exit Function Next i End Function
Sub ListModules(BookName As String) Dim oVB As Object, y&, x% For Each oVB In Workbooks(BookName).VBProject.VBComponents If x Then ActiveWorkbook.Sheets.Add y = 1 Cells(y, 1) = Workbooks(BookName).FullName Cells(y, 1).Font.Bold = True y = y + 1 Cells(y, 1) = oVB.Name & " Type: " & ModuleType(oVB) ActiveSheet.Name = oVB.Name Call ModuleCodeList(BookName, oVB.Name, y) x = x + 1 Next oVB End Sub
Private Function ModuleType(oVB As Object) As String Select Case oVB.Type Case 1: ModuleType = "Standard Module" Case 2: ModuleType = "Class Module" Case 3: ModuleType = "MS Form" Case 100: ModuleType = "Document" End Select End Function
Private Sub ModuleCodeList(BookName$, ModuleName$, y&) Dim StartLine& With Workbooks(BookName).VBProject.VBComponents(ModuleName).CodeModule StartLine = 1 Do Until StartLine > .CountOfLines y = y + 1 Cells(y, 1) = .Lines(StartLine, 1) StartLine = StartLine + 1 Loop End With End Sub
Private Function lPos%(Chain$, Char$) Dim iPos As Integer Do iPos = InStr(lPos + 1, Chain, Char, 1) If iPos = 0 Then Exit Do Else lPos = iPos Loop End Function
MP
"Markos" a écrit dans le message de news:
Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple indiquer seulement sur une sorte de sommaire la date de la modif et son résumé.
Merci par avance.
Modeste
Bonsour® Markos, concernant les modifications des modules si tu ne t'astreint pas à documenter dans chaque module, dans chaque proc les modifications effectueées, ainsi que les dates... nul outil ne te permettra de recouvrer ces informations les dates enregistrées sont les dates de creation, de modification et d'accès au classeur .. Point !!
un excellent outil gratuit et performant de documentation et "reverse enginering" là : http://www.bmsltd.ie/DLCount/DLCount.asp? fileÊllTree97.exe
This routine reads all of the modules in selected open workbooks, extracting a complete list of procedures and the calls between them. From this it generates some pivot tables, enabling you to easily identify which procedures call, or are called by another procedure and how many calls there are between the modules. Finally, it displays a procedure flow diagram for the workbook in a tree structure. The zip file contains a single xls file, which is hidden when opened. This update fixes a few problems reported by some users and also handles multi-workbook projects (when referenced using Tools, References). Documentation is included in the zip file.
@+
-----Message d'origine----- Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes
des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans
les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple
indiquer seulement sur une sorte de sommaire la date de la modif et son
résumé.
Merci par avance.
.
Bonsour® Markos,
concernant les modifications des modules
si tu ne t'astreint pas à documenter dans chaque module,
dans chaque proc les modifications effectueées, ainsi que
les dates...
nul outil ne te permettra de recouvrer ces informations
les dates enregistrées sont les dates de creation, de
modification et d'accès au classeur .. Point !!
un excellent outil gratuit et performant de documentation
et "reverse enginering" là :
http://www.bmsltd.ie/DLCount/DLCount.asp?
file=CallTree97.exe
This routine reads all of the modules in selected open
workbooks, extracting a complete list of procedures and
the calls between them. From this it generates some pivot
tables, enabling you to easily identify which procedures
call, or are called by another procedure and how many
calls there are between the modules. Finally, it displays
a procedure flow diagram for the workbook in a tree
structure. The zip file contains a single xls file, which
is hidden when opened. This update fixes a few problems
reported by some users and also handles multi-workbook
projects (when referenced using Tools, References).
Documentation is included in the zip file.
@+
-----Message d'origine-----
Bonjour,
Existe t-il un moyen pour faire la liste de l'ensemble
des modules, codes
des feuilles et des userForms... d'une application VBA.
Car je commence à avoir quelques problèmes pour me
repérer notamment dans
les mises à jour, corrections diverses.
Je ne souhaite pas à chaque modifs imprimer les modules,
mais par exemple
indiquer seulement sur une sorte de sommaire la date de
la modif et son
Bonsour® Markos, concernant les modifications des modules si tu ne t'astreint pas à documenter dans chaque module, dans chaque proc les modifications effectueées, ainsi que les dates... nul outil ne te permettra de recouvrer ces informations les dates enregistrées sont les dates de creation, de modification et d'accès au classeur .. Point !!
un excellent outil gratuit et performant de documentation et "reverse enginering" là : http://www.bmsltd.ie/DLCount/DLCount.asp? fileÊllTree97.exe
This routine reads all of the modules in selected open workbooks, extracting a complete list of procedures and the calls between them. From this it generates some pivot tables, enabling you to easily identify which procedures call, or are called by another procedure and how many calls there are between the modules. Finally, it displays a procedure flow diagram for the workbook in a tree structure. The zip file contains a single xls file, which is hidden when opened. This update fixes a few problems reported by some users and also handles multi-workbook projects (when referenced using Tools, References). Documentation is included in the zip file.
@+
-----Message d'origine----- Bonjour, Existe t-il un moyen pour faire la liste de l'ensemble des modules, codes
des feuilles et des userForms... d'une application VBA. Car je commence à avoir quelques problèmes pour me repérer notamment dans
les mises à jour, corrections diverses. Je ne souhaite pas à chaque modifs imprimer les modules, mais par exemple
indiquer seulement sur une sorte de sommaire la date de la modif et son