C'est possible :
Sub Test()
'Nécéssite d'activer la référence
'"Visual basic For Application Extensibility 5.3"
Dim VBComp As VBComponents
Dim VBTest As VBComponent
Set VBComp = ActiveWorkbook.VBProject.VBComponents
For Each VBTest In VBComp
'Vérification de la présence d'un module de classe
If VBTest.Type = vbext_ct_ClassModule Then
MsgBox "Il existe au moins un module de classe"
End If
'Vérification de la présence d'un module standard
If VBTest.Type = vbext_ct_StdModule Then
MsgBox "Il existe au moins un module standard"
End If
Next
End Sub
Là, je ne te compte pas les modules, et je ne le fais que pour le classeur actif. Mais en modifiant un tout petit peu le code, tu peux vérifier un autre fichier Excel (par contre, je pense qu'il faut l'ouvrir avant) et compter le nombre de modules.
Molenn