Bonjour à tous,
Existe t'il une fonction en VBA, permettant de savoir si un module est présent ou absent dans un classeur
par exemple, dans une condition if je cherche a savoir si le Module1 est présent.
Merci
Bonjour à tous,
Existe t'il une fonction en VBA, permettant de savoir si un module est présent ou absent dans un classeur
par exemple, dans une condition if je cherche a savoir si le Module1 est présent.
Merci
Bonjour,
Test ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub cherche_module() Dim VBC As Object With ActiveWorkbook.VBProject For Each VBC In .VBComponents If VBC.Name = "Module1" Then MsgBox VBC.Name & " est présent" Else MsgBox VBC.Name & " n'existe pas" End If Next VBC End With End Sub
j'ai un message d'erreur au niveau de la ligne
Erreur d'exécution '1004' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part With ActiveWorkbook.VBProject
Erreur définie par l'application ou par l'objet
ah ? Etrange, j'ai testé avant de te le proposer et ça fonctionne nickel chez moi (Excel 2000). Il me semble pourtant que ce code a déjà tourné sur des versions d'excel plus récentes.
Bonjour
en complément de la solution de fring qui marche trés bien,je vous suggère ce code qui liste tout les modules standard présents dans le classeur active.
Bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub ModulesExiste() Dim VBComp As Object Set VBmodule = ThisWorkbook.VBProject.VBComponents For Each VBComp In VBmodule If VBComp.Type <> 100 Then MsgBox VBComp.Name & " : >> Existe dans ce classeur" End If Next End Sub
Abed_H![]()
Bonjour,
J'ai eu le même pb aujourdh'ui, il faut
aller dans Excel, Outils, Macro, Securité,
L'onglet source fiable et cocher la case : faire confiance à VB
Si t'as encore des pb et qu'il te faut une référence à VBIDE, c'est dans VBE
Outils, références
coche la case "Microsoft Visual Basic for Applications Extensibility 5.3"
Voilà, @plus
bonsoir
avec un peu de retard ... ;o)
il n'est pas nécessaire de boucler sur les modules pour vérifier s'il existe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub Test() 'Nécéssite d'activer la référence '"Visual basic For Application Extensibility 5.3" ' MsgBox VerifierExistenceModule(Workbooks("NomClasseur.xls"), "Module2") End Sub Function VerifierExistenceModule(Wb As Workbook, Mdl As String) As Boolean Dim VBComp As VBComponent On Error Resume Next Set VBComp = Wb.VBProject.VBComponents(Mdl) If VBComp Is Nothing Then VerifierExistenceModule = False Else VerifierExistenceModule = True End If End Function
http://silkyroad.developpez.com/VBA/...cEditor/#LIV-B
bonne journée
michel
Partager