OVH Cloud OVH Cloud

Liste des procédures VBA

3 réponses
Avatar
Markos
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.

3 réponses

Avatar
YannX
Bonjour,

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.




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




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


.