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

Documentation technique VBA

25 réponses
Avatar
Pounet95
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un moyen
de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même s'il y a
des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de procédures (ou
fonctions ), le nombre de lignes de code, le nombre de feuilles avec code
dans procédures évènementielles, puis pour chaque userform le type et le
nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré, je
crois à nouveau en toi ( ou toit ! )

Pounet95

10 réponses

1 2 3
Avatar
isabelle
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" & Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil
qui permettrait de lister l'ensemble des objets et d'en faire des
stats, ce serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures (ou fonctions ), le nombre de lignes de code, le nombre de
feuilles avec code dans procédures évènementielles, puis pour chaque
userform le type et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis ,
juré, je crois à nouveau en toi ( ou toit ! )

Pounet95


Avatar
FdeCourt
Salut,
Il existe l'outil MZTools qui te permet, en autre, de générer un
documents XML que tu n'a plus qu'a compléter.

http://www.mztools.com/

Cordialement,
F.
Avatar
Pounet95
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même s'il
y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de procédures
(ou fonctions ), le nombre de lignes de code, le nombre de feuilles avec
code dans procédures évènementielles, puis pour chaque userform le type
et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95




Avatar
Mgr T. Banni
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée ici
par notre ange émettrice de bisou (las! au singulier!), je te propose celle
de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même s'il
y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de procédures
(ou fonctions ), le nombre de lignes de code, le nombre de feuilles avec
code dans procédures évènementielles, puis pour chaque userform le type
et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95







Avatar
fetnat
C'est d'enfer, Mgr...

Je sais maintenant que Monseigneur a existé, alors que pour Dieu, je
doute toujours.

Le 16/12/2009 11:07, Mgr T. Banni a écrit :
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée ici
par notre ange émettrice de bisou (las! au singulier!), je te propose celle
de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name<> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "=================================="& vbCrLf$& _
"Nom du module : "& VBC.Name& vbCrLf$ _
& "=================================="& vbCrLf$& _
vbCrLf$& .Lines(1, .CountOfLines)& vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}"& Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt& "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt& "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc<> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-"&
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même s'il
y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de procédures
(ou fonctions ), le nombre de lignes de code, le nombre de feuilles avec
code dans procédures évènementielles, puis pour chaque userform le type
et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95













--
fetnat
Avatar
Mgr T. Banni
:-)))))))))))))))))))
T.B.

"fetnat" a écrit dans le message de news:


C'est d'enfer, Mgr...

Je sais maintenant que Monseigneur a existé, alors que pour Dieu, je doute
toujours.

Le 16/12/2009 11:07, Mgr T. Banni a écrit :
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée
ici
par notre ange émettrice de bisou (las! au singulier!), je te propose
celle
de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name<> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "=================================="& vbCrLf$& _
"Nom du module : "& VBC.Name& vbCrLf$ _
& "=================================="& vbCrLf$& _
vbCrLf$& .Lines(1, .CountOfLines)& vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}"& Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt& "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt& "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc<> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-"&
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il
y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil
qui
permettrait de lister l'ensemble des objets et d'en faire des stats,
ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures
(ou fonctions ), le nombre de lignes de code, le nombre de feuilles
avec
code dans procédures évènementielles, puis pour chaque userform le
type
et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis ,
juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95













--
fetnat


Avatar
Pounet95
Bonsoir Mgr ,

Qu'entends-tu par notre cher "disparu" ?
C'est juste en ce qui concerne le forum j'espère !

Pounet95


"Mgr T. Banni" a écrit dans le message de
news:
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée ici
par notre ange émettrice de bisou (las! au singulier!), je te propose
celle de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures (ou fonctions ), le nombre de lignes de code, le nombre de
feuilles avec code dans procédures évènementielles, puis pour chaque
userform le type et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95











Avatar
Mgr T. Banni
vi, vi, mon fils....le bougre est trop occupé à se goinfrer de poulets de
bresse et bien que ça rime avec messe, je l'y vois guère
Mgr T.B.

"Pounet95" a écrit dans le message de news:

Bonsoir Mgr ,

Qu'entends-tu par notre cher "disparu" ?
C'est juste en ce qui concerne le forum j'espère !

Pounet95


"Mgr T. Banni" a écrit dans le message de
news:
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée
ici par notre ange émettrice de bisou (las! au singulier!), je te propose
celle de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil
qui permettrait de lister l'ensemble des objets et d'en faire des
stats, ce serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures (ou fonctions ), le nombre de lignes de code, le nombre de
feuilles avec code dans procédures évènementielles, puis pour chaque
userform le type et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis ,
juré, je crois à nouveau en toi ( ou toit ! )

Pounet95














Avatar
Pounet95
Ouf, pour lui surtout, sa famille je suppose et tant pis pour les poulets.
Bonnes vêpres Mgr !
Pounet95

"Mgr T. Banni" a écrit dans le message de
news:
vi, vi, mon fils....le bougre est trop occupé à se goinfrer de poulets de
bresse et bien que ça rime avec messe, je l'y vois guère
Mgr T.B.

"Pounet95" a écrit dans le message de news:

Bonsoir Mgr ,

Qu'entends-tu par notre cher "disparu" ?
C'est juste en ce qui concerne le forum j'espère !

Pounet95


"Mgr T. Banni" a écrit dans le message de
news:
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée
ici par notre ange émettrice de bisou (las! au singulier!), je te
propose celle de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil
qui permettrait de lister l'ensemble des objets et d'en faire des
stats, ce serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures (ou fonctions ), le nombre de lignes de code, le nombre de
feuilles avec code dans procédures évènementielles, puis pour chaque
userform le type et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis ,
juré, je crois à nouveau en toi ( ou toit ! )

Pounet95


















Avatar
Pounet95
Bonjour Mgr ............ et tout le monde bien sûr,

Vista/Excel 2007

S'il vous reste quelques forces après avoir sonné matines , j'aimerais
savoir comment ça fonctionne car :
- j'ai copié la procédure dans un module standard d'un classeur Excel
vierge,
- j'ai ajouté les références citées,
- j'ai ouvert un classeur dans lequel il y a 4 modules standards,,
- je me suis positionné dans la procédure et l'ai lancé pas à pas

résultat : la boucle 'For each VBC' n'est pas exécutée.

j'ai donc essayé en copiant la procédure dans un nouveau module standard du
classeur vouly ( donc 5 modules maintenant )
re lancé la procédure, et même cause, même effet : rien, nada ;o(((

les modules sont ouverts, un document word est en attente d'être rempli mais
c'est tout ce qui se passe de positif.

Dites-moi et je vous en serai très reconnaissant : don de 10 navets et 3
pommes de terre à Office ;o))))) ( c'est bof, mais perso, j'aime )

Pounet95



"Mgr T. Banni" a écrit dans le message de
news:
bonjour pounet
ne comprenant pas trop comment fonctionne la macro d'Alain Cros donnée ici
par notre ange émettrice de bisou (las! au singulier!), je te propose
celle de notre cher disparu, Laurent Longre
la voici (non testée sur XL 2007 dont le Vatican ne nous a toujours pas
équipé)
HTH
Mgr T. Banni

Sub CopieDansWord()
'Cette macro installe dans Word le détails de tous
'les modules ouverts du VBE
'Cette procédure suppose que tu ajoutes au projet VBA une référence à la
'bibliothèque d'objets de Word ("Microsoft Word X.0 Object Library")
'ainsi qu'à la bibliothèque "Microsoft Visual Basic For Applications
'Extensibility "."
Dim VBC As VBComponent, W As Word.Application
Dim s As Word.Selection
On Error Resume Next
Set W = GetObject(Class:="Word.Application")
On Error GoTo 0
If W Is Nothing Then
Set W = New Word.Application
W.Visible = True
End If
W.ScreenUpdating = False
On Error GoTo fin
W.Activate
If W.Documents.Count = 0 Then W.Documents.Add
Set s = W.ActiveWindow.Selection
For Each VBC In ThisWorkbook.VBProject.VBComponents
With VBC.CodeModule
If .CountOfLines And .Name <> "CopieCodeVersWord" Then
s.InsertAfter vbCrLf _
& "==================================" & vbCrLf$ & _
"Nom du module : " & VBC.Name & vbCrLf$ _
& "==================================" & vbCrLf$ & _
vbCrLf$ & .Lines(1, .CountOfLines) & vbCrLf$
End If
End With
Next VBC
fin:
W.ScreenUpdating = True
End Sub
"Pounet95" a écrit dans le message de news:
%
Merci beaucoup à tous deux

Je vais mettre ça en oeuvre rapidement
Merci aussi pour le "bisou*"

Bonnes fêtes de fin 2009 à toutes et tous
Pounet95


"isabelle" a écrit dans le message de
news:uA7s%
bonjour Pounet,

il y a celle-ci de Alain Cross pour listé tout les macro et raccouci

Sub ListeMacros_2()
Dim Macro As String, Racc As String
Dim Rpt As String, I As Integer
Dim Wbk As Workbook

Application.ScreenUpdating = False
' Set Wbk = Workbooks.Add
ActiveWorkbook.ActiveSheet.[A1:B1] = [{"Procédure","Raccourci"}]
SendKeys "%{F8}%a{PGUP}{TAB}{ESC}", True

Do
Rpt = "%{F8}{TAB}" & Application.Rept("{DOWN}", I)
I = I + 1
SendKeys Rpt & "%n^c{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 1).Activate
ActiveSheet.Paste
Macro = ActiveCell.Value
If Macro = ActiveCell.Offset(-1).Value Then
ActiveCell.Clear
Exit Do
End If
SendKeys Rpt & "%t^c{ESC}{ESC}", True
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Activate
ActiveSheet.Paste
Racc = ActiveCell.Value
If Racc <> Macro Then
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Value = "Ctrl-" &
Racc
Else
ActiveWorkbook.ActiveSheet.Cells(I + 1, 2).Clear
End If

Loop

With Columns("A:B")
.AutoFit
.Sort [A1], Header:=xlYes
' .CurrentRegion.AutoFormat xlRangeAutoFormatColor2
End With
Application.ScreenUpdating = True
End Sub 'Alain Cross

je te souhaite de très joyeuses fêtes, bisou*
isabelle

Pounet95 a écrit :
Bonsoir à toutes et tous,
XL2000 et XL2007 sous Vista

Venant de mettre à disposition une application en VBA, je cherche un
moyen de faire de façon fiable et rapide une documentation technique.
J'entend par là, écrire un document qui détaillerait le code ( même
s'il y a des commentaires dedans ) tant sur son pourquoi que comment.
Si dans un premier temps quelqu'un(e) avait des tuyaux sur un outil qui
permettrait de lister l'ensemble des objets et d'en faire des stats, ce
serait super.
Ainsi, je n'aurais pas à recopier module par module, procédure par
procédure, l'ensemble du code et ensuite compter le nombre de
procédures (ou fonctions ), le nombre de lignes de code, le nombre de
feuilles avec code dans procédures évènementielles, puis pour chaque
userform le type et le nombre de contrôles utilisés.

Pére Noël ( ou Mère Noëlle ), si tu as ça dans ta hotte, promis , juré,
je crois à nouveau en toi ( ou toit ! )

Pounet95











1 2 3