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

Nombre lignes de code dans VBE

10 réponses
Avatar
khinoa
Bonjour à tous,

J'utilise Excel 2002 et je voudrais compter les lignes de code d'un projet
(avec les codes contenus dans les feuilles Microsoft Excel Objets et
ThisWorkbook). Sur le site de Frédéric Sigonneau j'ai récupéré le code
suivant mais il ne fonctionne pas :

Sub NbLignesProjet()
Dim VBComp As Object, Nb As Long

With Workbooks("Toto.xls").VBProject
For Each VBComp In .VBComponents
Nb = Nb + VBComp.CodeModule.CountOfLines
Next
End With

MsgBox Nb

End Sub


J'ai coché la référence Microsoft Visual Basic for Applications
Extensibility 5.3, mais sans plus de résultat. J'ai le message d'erreur
suivant : Erreur 1004 : la méthode VBProject de l'objet Workbook a échoué.
Pourquoi ce message?

Où faut-il installer ce code ? Dans un module du classeur à tester ou dans
un autre classeur? Et s'il doit être installé dans le classeur à tester, les
lignes du code seront-elles comptabilisées elles aussi?

D'avance merci pour vos réponses

khinoa

10 réponses

Avatar
papou
Bonjour
Pour ma part ce code fonctionne correctement.
Le classeur Toto.xls est-il ouvert ?
Tu peux positionner le code dans le classeur à tester mais du coup je n'en
vois pas l'intérêt ?
Mais si tu y tiens, effectivement le test inclura les lignes de code, tu
pourras également modifier la ligne
With Workbooks("Toto.xls").VBProject
Par

With Thisworkbook.VBProject

Sinon, si tu as ajouté une référence à Microsoft Visual Basic for
Applications Extensibility 5.3, tu peux déclarer plus précisément
Dim VbComp As VbComponent

Cordialement
pascal

"khinoa" a écrit dans le message de news:
4465a169$0$17381$
Bonjour à tous,

J'utilise Excel 2002 et je voudrais compter les lignes de code d'un projet
(avec les codes contenus dans les feuilles Microsoft Excel Objets et
ThisWorkbook). Sur le site de Frédéric Sigonneau j'ai récupéré le code
suivant mais il ne fonctionne pas :

Sub NbLignesProjet()
Dim VBComp As Object, Nb As Long

With Workbooks("Toto.xls").VBProject
For Each VBComp In .VBComponents
Nb = Nb + VBComp.CodeModule.CountOfLines
Next
End With

MsgBox Nb

End Sub


J'ai coché la référence Microsoft Visual Basic for Applications
Extensibility 5.3, mais sans plus de résultat. J'ai le message d'erreur
suivant : Erreur 1004 : la méthode VBProject de l'objet Workbook a échoué.
Pourquoi ce message?

Où faut-il installer ce code ? Dans un module du classeur à tester ou dans
un autre classeur? Et s'il doit être installé dans le classeur à tester,
les lignes du code seront-elles comptabilisées elles aussi?

D'avance merci pour vos réponses

khinoa



Avatar
anonymousA
Bonjour

Tu peux installer cette macro ou bon te semble.Si tu l'installes sur le
classeur dont tu veux compter le nombre de lignes de code il est clair
que cette macro sera aussi comptabilisée.
Pour ce qui est de ton plantage, il faut en dire plus sur les conditions
du contexte car la syntaxe de la proc est evidemment correcte.

A+

Bonjour à tous,

J'utilise Excel 2002 et je voudrais compter les lignes de code d'un projet
(avec les codes contenus dans les feuilles Microsoft Excel Objets et
ThisWorkbook). Sur le site de Frédéric Sigonneau j'ai récupéré le code
suivant mais il ne fonctionne pas :

Sub NbLignesProjet()
Dim VBComp As Object, Nb As Long

With Workbooks("Toto.xls").VBProject
For Each VBComp In .VBComponents
Nb = Nb + VBComp.CodeModule.CountOfLines
Next
End With

MsgBox Nb

End Sub


J'ai coché la référence Microsoft Visual Basic for Applications
Extensibility 5.3, mais sans plus de résultat. J'ai le message d'erreur
suivant : Erreur 1004 : la méthode VBProject de l'objet Workbook a échoué.
Pourquoi ce message?

Où faut-il installer ce code ? Dans un module du classeur à tester ou dans
un autre classeur? Et s'il doit être installé dans le classeur à tester, les
lignes du code seront-elles comptabilisées elles aussi?

D'avance merci pour vos réponses

khinoa




Avatar
Jacky
Bonjour,

Comment est lancé le code ??

JJ

"khinoa" a écrit dans le message de
news:4465a169$0$17381$
Bonjour à tous,

J'utilise Excel 2002 et je voudrais compter les lignes de code d'un projet
(avec les codes contenus dans les feuilles Microsoft Excel Objets et
ThisWorkbook). Sur le site de Frédéric Sigonneau j'ai récupéré le code
suivant mais il ne fonctionne pas :

Sub NbLignesProjet()
Dim VBComp As Object, Nb As Long

With Workbooks("Toto.xls").VBProject
For Each VBComp In .VBComponents
Nb = Nb + VBComp.CodeModule.CountOfLines
Next
End With

MsgBox Nb

End Sub


J'ai coché la référence Microsoft Visual Basic for Applications
Extensibility 5.3, mais sans plus de résultat. J'ai le message d'erreur
suivant : Erreur 1004 : la méthode VBProject de l'objet Workbook a échoué.
Pourquoi ce message?

Où faut-il installer ce code ? Dans un module du classeur à tester ou dans
un autre classeur? Et s'il doit être installé dans le classeur à tester,
les

lignes du code seront-elles comptabilisées elles aussi?

D'avance merci pour vos réponses

khinoa




Avatar
khinoa
Bonjour,

Pour ce qui est de ton plantage, il faut en dire plus sur les conditions
du contexte car la syntaxe de la proc est evidemment correcte.


J'ai donc deux classeurs un appelé Toto dont je voudrais compter les lignes
de code et celui qui contient le code. Les deux classeurs sont ouverts.

J'ai toujours l'erreur 1004.

J'avais déjà renoncé dans le passé à compter les lignes par ce procédé.


Pou répondre à Jacky : le code est lancé manuellement avec F5 dans un autre
classeur que Toto. Mais toujours même message d'erreur.

Je ne vois pas de solution.

Quelles références autres que Microsoft VBA Extensibility 5.3 doivent être
installées ? J'ai cru comprendre que l'Extensibility n'était pas de toutes
façons nécessaire.

Qu'en pensez-vous?

khinoa

Avatar
anonymousA
Il n'est pas nécéssaire d'avoir autre chose que les essentiels ( mais tu
les as forcément en fonction) Excel library et VBA library.
Est-ce qu'il peut y avoir une histoire de sécurité sur VBA ? Je sais que
sur 2002 ( moi j'ai 2000) il y a une histoire de "Accepter ..." dans
l'environnement de VBE.
Attendons qu'un contributeur ayant 2002 t'en dise plus.

Cordialement et désolé de ne pouvoir t'aider +

A+

Bonjour,


Pour ce qui est de ton plantage, il faut en dire plus sur les conditions
du contexte car la syntaxe de la proc est evidemment correcte.



J'ai donc deux classeurs un appelé Toto dont je voudrais compter les lignes
de code et celui qui contient le code. Les deux classeurs sont ouverts.

J'ai toujours l'erreur 1004.

J'avais déjà renoncé dans le passé à compter les lignes par ce procédé.


Pou répondre à Jacky : le code est lancé manuellement avec F5 dans un autre
classeur que Toto. Mais toujours même message d'erreur.

Je ne vois pas de solution.

Quelles références autres que Microsoft VBA Extensibility 5.3 doivent être
installées ? J'ai cru comprendre que l'Extensibility n'était pas de toutes
façons nécessaire.

Qu'en pensez-vous?

khinoa






Avatar
khinoa
Il n'est pas nécéssaire d'avoir autre chose que les essentiels ( mais tu
les as forcément en fonction) Excel library et VBA library.
Est-ce qu'il peut y avoir une histoire de sécurité sur VBA ? Je sais que
sur 2002 ( moi j'ai 2000) il y a une histoire de "Accepter ..." dans
l'environnement de VBE.
Attendons qu'un contributeur ayant 2002 t'en dise plus.

Cordialement et désolé de ne pouvoir t'aider +



Merci quand même.

Avatar
Jacky
Re...
Personnellement je ne rencontre pas de problème avec ce code.
Ni sur xl97 ni sur 2000

JJ

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

Bonjour,

Comment est lancé le code ??

JJ

"khinoa" a écrit dans le message de
news:4465a169$0$17381$
Bonjour à tous,

J'utilise Excel 2002 et je voudrais compter les lignes de code d'un
projet
(avec les codes contenus dans les feuilles Microsoft Excel Objets et
ThisWorkbook). Sur le site de Frédéric Sigonneau j'ai récupéré le code
suivant mais il ne fonctionne pas :

Sub NbLignesProjet()
Dim VBComp As Object, Nb As Long

With Workbooks("Toto.xls").VBProject
For Each VBComp In .VBComponents
Nb = Nb + VBComp.CodeModule.CountOfLines
Next
End With

MsgBox Nb

End Sub


J'ai coché la référence Microsoft Visual Basic for Applications
Extensibility 5.3, mais sans plus de résultat. J'ai le message d'erreur
suivant : Erreur 1004 : la méthode VBProject de l'objet Workbook a
échoué.
Pourquoi ce message?

Où faut-il installer ce code ? Dans un module du classeur à tester ou
dans
un autre classeur? Et s'il doit être installé dans le classeur à tester,
les

lignes du code seront-elles comptabilisées elles aussi?

D'avance merci pour vos réponses

khinoa








Avatar
JpPradier
Bonjour khinoa

Chez moi, ça marche bien avec Excel 2002. Vérifie dans le classeur : Outils/Macro/Sécurité
onglet 'sources fiables' que les deux cases sont bien cochées.
Sinon quelle ligne est en jaune avec ton erreur ?

j-p
Avatar
khinoa
Bonsoir Jp,

Chez moi, ça marche bien avec Excel 2002. Vérifie dans le classeur :
Outils/Macro/Sécurité
onglet 'sources fiables' que les deux cases sont bien cochées.


Tu es mon sauveur, tu as trouvé ! Mille mercis. Il fallait cocher cette case
(l'autre case était déjà cochée). Dans ma question j'avais omis de préciser,
il est vrai, et cela aurait peut être mis les autres contributeurs sur la
voie, que parfois et je ne sais plus dans quelles conditions, un message
(plutôt confus) d'erreur m'avait parlé de sources fiables. Je n'y avais rien
compris. Mais comme le message avait disparu au profit de "erreur 1004 : la
méthode VbProject de l'objet Workbooks a échoué", je pensais que ce problème
n'existait pas ou plus.

Tu m'enlèves une bonne épine du pied, car pour obtenir le nombre de lignes
j'étais obligé de copier mes modules, le ThisWorkbook et les codes des
feuilles dans Word, ce qui n'est pas, tout le monde en conviendra, des plus
simples et des plus rapides.

Encore grand merci de m'avoir répondu, je ne pensais plus d'ailleurs obtenir
de nouvelle réponse avant ta décisive contribution.

khinoa

Avatar
JpPradier
;-)
Sur MPFE, il ne faut jamais desespérer !

j-p