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

Auditer une feuille excel

21 réponses
Avatar
Bruno
Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno

10 réponses

1 2 3
Avatar
Modeste
Bonsour® Bruno avec ferveur ;o))) vous nous disiez :

Est-il possible de copier sur une feuille Excel par une macro ou une
formule simple l'ensemble des formules et macros d'une feuille Excel
afin d'en comprendre le fonctionnement ?
Menu Outils > Options> Onglet affichage > fenetres : cocher Formules

ensuite ajuster la taille des lignes et colonnes


Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?
Menu Outils > Audit de formules

ensuite selectionner l'option désirée

quant à la manière formelle de retrouver la logique de la feuille .... ????
c'est celle du concepteur de la feuille ;o)))
Excel ne t'aidera pas beaucoup... :-(((
sauf si l'auteur a inséré des commentaires



--
--
@+
;o)))

Avatar
LSteph
Bonjour,

Les formules (copie la feuille si tu veux):

Outils options Affichage Formule

Les macros:

Ne sont pas là mais dans le VBE Visual Basic Editor
(Alt+F11 pour l'afficher)
Tu trouve chaque objet dans l'explorateur de projet sur ta droite,
son code en doble cliquant dessus s'affiche dans le CodeModule à droite

Voici une macro complémentaire qui récapitule toutes les macros d'un
Projet(Classeur)dans une feuille.

http://cjoint.com/?jcsFLEBJmi

Pour ceux qui suivraient ce fil au delà de ce lien le code:

'''''Thisworkbook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EffaceCommande
End Sub

Private Sub Workbook_Open()
Call EffaceCommande
Call Preparation
End Sub

'''''Module1
Option Explicit

Sub Preparation()
Dim cBc As CommandBar
On Error Resume Next
With ThisWorkbook.VBProject.References
Application.DisplayAlerts = False
.AddFromFile "C:Program FilesFichiers communsMicrosoft
SharedVBAVBEEXT1.OLB"
End With
Application.DisplayAlerts = True
On Error GoTo 0
Call AjouteCommande
End Sub

Sub RapportProj()

Dim oMod As VBComponent, J As Integer
Dim myProc As String, myCell As Range, wbn As String
Application.ScreenUpdating = False
On Error Resume Next
wbn = ActiveWorkbook.Name
On Error GoTo 0
If Len(wbn) = 0 Then MsgBox "Fonctionne sur classeur actif": Exit Sub
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With
For Each oMod In ActiveWorkbook.VBProject.VBComponents
With oMod.CodeModule
For J = 1 To .CountOfLines
If Len(.Lines(J, 1)) > 1 And _
.ProcOfLine(J, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(J, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(J, 1)
End If
Next J
End With
Next
Columns("A:C").AutoFit
End Sub

Sub AjouteCommande()
Call EffaceCommande
With
Application.CommandBars(1).Controls("Outils").Controls.Add(msoControlButton)
.Caption = "ListeProjet"
.OnAction = "RapportProj"

End With



End Sub

Sub EffaceCommande()
On Error Resume Next
Application.CommandBars(1).Controls("Outils").Controls("ListeProjet").Delete
End Sub

'lSteph


Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno


Avatar
jps
bonjour bruno
regarde aussi cela :
HTH
jps

Sub CopieDansWord()
'Cette macro de LL 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
"Bruno" a écrit dans le message de news:

Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une
formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno


Avatar
Bruno
Merci, cà marche . J'ai sur une feuille crée par la macro trois champs :
Nom de module Procèdure Detail Ligne.
Module 10 razf_dab sub razf_()

A priori, ces procédures correspondents à des boutons qui permettent
d'éffacer un ou plusieurs cellules contenant un chiffre "dab" : Comment
puis-je en être sur et comment identifier les cellules concernées si il y en
a plusieurs ?

Merci de votre aide,
Bruno


Bonjour,

Les formules (copie la feuille si tu veux):

Outils options Affichage Formule

Les macros:

Ne sont pas là mais dans le VBE Visual Basic Editor
(Alt+F11 pour l'afficher)
Tu trouve chaque objet dans l'explorateur de projet sur ta droite,
son code en doble cliquant dessus s'affiche dans le CodeModule à droite

Voici une macro complémentaire qui récapitule toutes les macros d'un
Projet(Classeur)dans une feuille.

http://cjoint.com/?jcsFLEBJmi

Pour ceux qui suivraient ce fil au delà de ce lien le code:

'''''Thisworkbook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EffaceCommande
End Sub

Private Sub Workbook_Open()
Call EffaceCommande
Call Preparation
End Sub

'''''Module1
Option Explicit

Sub Preparation()
Dim cBc As CommandBar
On Error Resume Next
With ThisWorkbook.VBProject.References
Application.DisplayAlerts = False
..AddFromFile "C:Program FilesFichiers communsMicrosoft
SharedVBAVBEEXT1.OLB"
End With
Application.DisplayAlerts = True
On Error GoTo 0
Call AjouteCommande
End Sub

Sub RapportProj()

Dim oMod As VBComponent, J As Integer
Dim myProc As String, myCell As Range, wbn As String
Application.ScreenUpdating = False
On Error Resume Next
wbn = ActiveWorkbook.Name
On Error GoTo 0
If Len(wbn) = 0 Then MsgBox "Fonctionne sur classeur actif": Exit Sub
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With
For Each oMod In ActiveWorkbook.VBProject.VBComponents
With oMod.CodeModule
For J = 1 To .CountOfLines
If Len(.Lines(J, 1)) > 1 And _
.ProcOfLine(J, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(J, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(J, 1)
End If
Next J
End With
Next
Columns("A:C").AutoFit
End Sub

Sub AjouteCommande()
Call EffaceCommande
With
Application.CommandBars(1).Controls("Outils").Controls.Add(msoControlButton)
.Caption = "ListeProjet"
.OnAction = "RapportProj"

End With



End Sub

Sub EffaceCommande()
On Error Resume Next
Application.CommandBars(1).Controls("Outils").Controls("ListeProjet").Delete
End Sub

'lSteph


Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno





Avatar
LSteph
..fais alt+F11 et va voir ce que raconte ce module10

Merci, cà marche . J'ai sur une feuille crée par la macro trois champs :
Nom de module Procèdure Detail Ligne.
Module 10 razf_dab sub razf_()

A priori, ces procédures correspondents à des boutons qui permettent
d'éffacer un ou plusieurs cellules contenant un chiffre "dab" : Comment
puis-je en être sur et comment identifier les cellules concernées si il y en
a plusieurs ?

Merci de votre aide,
Bruno


Bonjour,

Les formules (copie la feuille si tu veux):

Outils options Affichage Formule

Les macros:

Ne sont pas là mais dans le VBE Visual Basic Editor
(Alt+F11 pour l'afficher)
Tu trouve chaque objet dans l'explorateur de projet sur ta droite,
son code en doble cliquant dessus s'affiche dans le CodeModule à droite

Voici une macro complémentaire qui récapitule toutes les macros d'un
Projet(Classeur)dans une feuille.

http://cjoint.com/?jcsFLEBJmi

Pour ceux qui suivraient ce fil au delà de ce lien le code:

'''''Thisworkbook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EffaceCommande
End Sub

Private Sub Workbook_Open()
Call EffaceCommande
Call Preparation
End Sub

'''''Module1
Option Explicit

Sub Preparation()
Dim cBc As CommandBar
On Error Resume Next
With ThisWorkbook.VBProject.References
Application.DisplayAlerts = False
..AddFromFile "C:Program FilesFichiers communsMicrosoft
SharedVBAVBEEXT1.OLB"
End With
Application.DisplayAlerts = True
On Error GoTo 0
Call AjouteCommande
End Sub

Sub RapportProj()

Dim oMod As VBComponent, J As Integer
Dim myProc As String, myCell As Range, wbn As String
Application.ScreenUpdating = False
On Error Resume Next
wbn = ActiveWorkbook.Name
On Error GoTo 0
If Len(wbn) = 0 Then MsgBox "Fonctionne sur classeur actif": Exit Sub
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With
For Each oMod In ActiveWorkbook.VBProject.VBComponents
With oMod.CodeModule
For J = 1 To .CountOfLines
If Len(.Lines(J, 1)) > 1 And _
.ProcOfLine(J, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(J, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(J, 1)
End If
Next J
End With
Next
Columns("A:C").AutoFit
End Sub

Sub AjouteCommande()
Call EffaceCommande
With
Application.CommandBars(1).Controls("Outils").Controls.Add(msoControlButton)
.Caption = "ListeProjet"
.OnAction = "RapportProj"

End With



End Sub

Sub EffaceCommande()
On Error Resume Next
Application.CommandBars(1).Controls("Outils").Controls("ListeProjet").Delete
End Sub

'lSteph


Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno






Avatar
LSteph
"Ne gère pas la Classe Automation..."
pourtant les ref sont cochées.

:?

@...

bonjour bruno
regarde aussi cela :
HTH
jps

Sub CopieDansWord()
'Cette macro de LL 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
"Bruno" a écrit dans le message de news:

Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une
formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno






Avatar
jps
micro climat? qui veut vérifier si, de son côté, ça baigne?
merci pour bruno
jps

"LSteph" a écrit dans le message de news:
%
"Ne gère pas la Classe Automation..."
pourtant les ref sont cochées.

:?

@...

bonjour bruno
regarde aussi cela :
HTH
jps

Sub CopieDansWord()
'Cette macro de LL 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
"Bruno" a écrit dans le message de
news:
Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une
formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno







Avatar
Philippe.R
Bonsoir za tous,

La macro ouvre Word mais me laisse devant une splendide copie blanche !
(les références étant bien entendu cochées et la macro installée dans le
classeur en question)

Avec la macro complémentaire, j'obtiens un fort vilain "jaune Schoum" sur
cette ligne :
For Each oMod In ActiveWorkbook.VBProject.VBComponents
et bien sur bernique au delà de la création de la feuille et de ses titres
--
Avec plaisir
Philippe.R

"jps" a écrit dans le message de
news:eL%
micro climat? qui veut vérifier si, de son côté, ça baigne?
merci pour bruno
jps

"LSteph" a écrit dans le message de news:
%
"Ne gère pas la Classe Automation..."
pourtant les ref sont cochées.

:?

@...

bonjour bruno
regarde aussi cela :
HTH
jps

Sub CopieDansWord()
'Cette macro de LL 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
"Bruno" a écrit dans le message de
news:
Bonjour,
Est-il possible de copier sur une feuille Excel par une macro ou une
formule
simple l'ensemble des formules et macros d'une feuille Excel afin d'en
comprendre le fonctionnement ?

Existe-t-il un outil d'audit qui reconstruirait de manière formelle la
logique de la feuille ?

Merci de vos réponses,
Bruno










Avatar
Modeste
Bonsour® jps avec ferveur ;o))) vous nous disiez :

micro climat? qui veut vérifier si, de son côté, ça baigne?
merci pour bruno




http://cjoint.com/?jcvGQ8lOq8

pour permettre l'utilisation sur un autre calsseur que celui contenant la macro,
il faut activer le classeur à analyser
j'ai aussi changé :
For Each VBC In ThisWorkbook.VBProject.VBComponents
par
For Each VBC In ActiveWorkbook.VBProject.VBComponents


@+
;o)))

Avatar
LSteph
...
:(
Erreur 430

"La Classe ne gère pas Automation ou l'interface attendue"

...

Bonsour® jps avec ferveur ;o))) vous nous disiez :

micro climat? qui veut vérifier si, de son côté, ça baigne?
merci pour bruno




http://cjoint.com/?jcvGQ8lOq8

pour permettre l'utilisation sur un autre calsseur que celui contenant la macro,
il faut activer le classeur à analyser
j'ai aussi changé :
For Each VBC In ThisWorkbook.VBProject.VBComponents
par
For Each VBC In ActiveWorkbook.VBProject.VBComponents


@+
;o)))





1 2 3