L'index "module3" n'est pas représentatif du véritable index comptabilisé par excel... il y a ThisWorkbook, les modules feuilles et de classe.
Je m'en vais de ce pas me coucher ! ;-)))
Salutations
"LSteph" a écrit dans le message de news:
...serait mieux ainsi:
Function CountModulines(VbCmp As String, _ WbName As String) As Long CountModulines = Workbooks(WbName).VBProject. _ VBComponents(VbCmp).CodeModule.CountOfLines End Function
Sub test() Dim vbc As String vbc = "Module1" MsgBox CountModulines(vbc, ThisWorkbook.Name) _ & " lignes dans " & vbc End Sub
:o)
ici c'est bientôt, bonne nuit!
@+
Merci à vous deux,
Désolé. Et oui, Vous avez raison...
J'utilisais l'index (3) du module plutôt que son nom ....
L'index "module3" n'est pas représentatif du véritable index comptabilisé
par excel... il y a ThisWorkbook, les modules feuilles et de classe.
Je m'en vais de ce pas me coucher ! ;-)))
Salutations
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
OfMDLyfBIHA.1356@TK2MSFTNGP03.phx.gbl...
...serait mieux ainsi:
Function CountModulines(VbCmp As String, _
WbName As String) As Long
CountModulines = Workbooks(WbName).VBProject. _
VBComponents(VbCmp).CodeModule.CountOfLines
End Function
Sub test()
Dim vbc As String
vbc = "Module1"
MsgBox CountModulines(vbc, ThisWorkbook.Name) _
& " lignes dans " & vbc
End Sub
L'index "module3" n'est pas représentatif du véritable index comptabilisé par excel... il y a ThisWorkbook, les modules feuilles et de classe.
Je m'en vais de ce pas me coucher ! ;-)))
Salutations
"LSteph" a écrit dans le message de news:
...serait mieux ainsi:
Function CountModulines(VbCmp As String, _ WbName As String) As Long CountModulines = Workbooks(WbName).VBProject. _ VBComponents(VbCmp).CodeModule.CountOfLines End Function
Sub test() Dim vbc As String vbc = "Module1" MsgBox CountModulines(vbc, ThisWorkbook.Name) _ & " lignes dans " & vbc End Sub
Mousnynao
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value = "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With
Range("A1").Select Sheets(Feuille).Select Application.ScreenUpdating = True Message = "Voir la feuille ListeModules" MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function ------------------------------------------
Cordialement mousnynao
Désolé, voir mon autre message pour explications.
Merci de ta participation.
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue
une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
--------------------------------
Function ScanListeModule()
Dim VBP As Variant
Dim VBC As VBComponent
Dim NomModule As String, Plage As String
Dim Feuille As String, Compteur As Long
With ActiveSheet
.Rows(1).Font.Bold = True
.Rows(1).Font.Size = 9
.Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type
du module")
With VBP
Compteur = 1
For Each VBC In .VBComponents
ActiveCell.Offset(Compteur, 0).Value = VBC.Name
With
ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule
ActiveCell.Offset(Compteur, 1).Value = .CountOfLines
End With
Select Case VBC.Type
Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module"
Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class
Module"
Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm"
Case 100: ActiveCell.Offset(Compteur, 2).Value =
"Document Module"
End Select
Compteur = (Compteur + 1)
Next VBC
End With
.Range("A1").CurrentRegion.Columns.AutoFit
End With
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value = "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With
Range("A1").Select Sheets(Feuille).Select Application.ScreenUpdating = True Message = "Voir la feuille ListeModules" MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function ------------------------------------------
Cordialement mousnynao
Désolé, voir mon autre message pour explications.
Merci de ta participation.
MichDenis
Merci pour ta proposition. Bonne journée.
"Mousnynao" a écrit dans le message de news:
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With
Range("A1").Select Sheets(Feuille).Select Application.ScreenUpdating = True Message = "Voir la feuille ListeModules" MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function ------------------------------------------
Cordialement mousnynao
Désolé, voir mon autre message pour explications.
Merci de ta participation.
Merci pour ta proposition. Bonne journée.
"Mousnynao" <Mousnynao@discussions.microsoft.com> a écrit dans le message de news:
1FDF668E-0188-4328-A62A-B36D8B3AAED1@microsoft.com...
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue
une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
--------------------------------
Function ScanListeModule()
Dim VBP As Variant
Dim VBC As VBComponent
Dim NomModule As String, Plage As String
Dim Feuille As String, Compteur As Long
With ActiveSheet
.Rows(1).Font.Bold = True
.Rows(1).Font.Size = 9
.Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type
du module")
With VBP
Compteur = 1
For Each VBC In .VBComponents
ActiveCell.Offset(Compteur, 0).Value = VBC.Name
With
ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule
ActiveCell.Offset(Compteur, 1).Value = .CountOfLines
End With
Select Case VBC.Type
Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module"
Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class
Module"
Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm"
Case 100: ActiveCell.Offset(Compteur, 2).Value "Document Module"
End Select
Compteur = (Compteur + 1)
Next VBC
End With
.Range("A1").CurrentRegion.Columns.AutoFit
End With
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With
Range("A1").Select Sheets(Feuille).Select Application.ScreenUpdating = True Message = "Voir la feuille ListeModules" MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function ------------------------------------------
Cordialement mousnynao
Désolé, voir mon autre message pour explications.
Merci de ta participation.
Mousnynao
re :
depuis le temps ou je vous vois sur le site, je me doute bien que vous aviez ou auriez trouvé une solution sans mon intervention.
J'ai d'ailleurs testé votre point, [ Bouton de cmd sous VBE ]. :-)
Bonne continuité. mousnynao
Merci pour ta proposition. Bonne journée.
"Mousnynao" a écrit dans le message de news:
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value > "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With
Range("A1").Select Sheets(Feuille).Select Application.ScreenUpdating = True Message = "Voir la feuille ListeModules" MsgBox FINAL & vbCrLf & vbCrLf & Message
End Function ------------------------------------------
Cordialement mousnynao
Désolé, voir mon autre message pour explications.
Merci de ta participation.
re :
depuis le temps ou je vous vois sur le site, je me doute bien que vous
aviez ou auriez trouvé une solution sans mon intervention.
J'ai d'ailleurs testé votre point, [ Bouton de cmd sous VBE ]. :-)
Bonne continuité.
mousnynao
Merci pour ta proposition. Bonne journée.
"Mousnynao" <Mousnynao@discussions.microsoft.com> a écrit dans le message de news:
1FDF668E-0188-4328-A62A-B36D8B3AAED1@microsoft.com...
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue
une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
--------------------------------
Function ScanListeModule()
Dim VBP As Variant
Dim VBC As VBComponent
Dim NomModule As String, Plage As String
Dim Feuille As String, Compteur As Long
With ActiveSheet
.Rows(1).Font.Bold = True
.Rows(1).Font.Size = 9
.Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type
du module")
With VBP
Compteur = 1
For Each VBC In .VBComponents
ActiveCell.Offset(Compteur, 0).Value = VBC.Name
With
ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule
ActiveCell.Offset(Compteur, 1).Value = .CountOfLines
End With
Select Case VBC.Type
Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module"
Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class
Module"
Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm"
Case 100: ActiveCell.Offset(Compteur, 2).Value > "Document Module"
End Select
Compteur = (Compteur + 1)
Next VBC
End With
.Range("A1").CurrentRegion.Columns.AutoFit
End With
depuis le temps ou je vous vois sur le site, je me doute bien que vous aviez ou auriez trouvé une solution sans mon intervention.
J'ai d'ailleurs testé votre point, [ Bouton de cmd sous VBE ]. :-)
Bonne continuité. mousnynao
Merci pour ta proposition. Bonne journée.
"Mousnynao" a écrit dans le message de news:
Bonjour,
Pour faire suite à votre remarque, et pour tous ceux qui cherche ...
J'ai publié en 2004 un classeur VisioXLA sur Excel-DownLoad, qui effectue une liste de la plupart des objets Excel, dont les modules, les macros, etc...
Voici encore une fonction tiré de celui-ci :
-------------------------------- Function ScanListeModule()
Dim VBP As Variant Dim VBC As VBComponent Dim NomModule As String, Plage As String Dim Feuille As String, Compteur As Long
With ActiveSheet .Rows(1).Font.Bold = True .Rows(1).Font.Size = 9 .Range("A1:C1").Value = Array("Nom module", "Nombre Lignes", "Type du module")
With VBP Compteur = 1 For Each VBC In .VBComponents ActiveCell.Offset(Compteur, 0).Value = VBC.Name With ActiveWorkbook.VBProject.VBComponents(VBC.Name).CodeModule ActiveCell.Offset(Compteur, 1).Value = .CountOfLines End With Select Case VBC.Type Case 1: ActiveCell.Offset(Compteur, 2).Value = "Module" Case 2: ActiveCell.Offset(Compteur, 2).Value = "Class Module" Case 3: ActiveCell.Offset(Compteur, 2).Value = "UserForm" Case 100: ActiveCell.Offset(Compteur, 2).Value > "Document Module" End Select Compteur = (Compteur + 1) Next VBC End With .Range("A1").CurrentRegion.Columns.AutoFit End With