Rechercher une ligne de code vba dans différents fichiers excel?

alol.ita

XLDnaute Nouveau
Bonjour,
J'ai dans C:\Files des fichiers excel contenant des macros vba.
Est-il possible à partir d'une macro vba de lancer une recherche de ligne de
code vba dans les différents fichiers excel?
Par exemple j'aimerais retrouver la ligne de code vba :
Application.ScreenUpdating = True
Ensuite mettre en colonne A de ma feuill1 les différents noms des fichiers
excel possédant cette ligne de code...voire même changer le code en :
Application.ScreenUpdating = false
Est-ce possible ou existe t-il un soft permettant de réaliser ce type de recherche?
Merci de votre aide
 

MichelXld

XLDnaute Barbatruc
Re : Rechercher une ligne de code vba dans différents fichiers excel?

bonsoir

Tu peux tester cette macro pour rechercher un mot dans les procedures d'un classeur.
Il te restera justa à boucler sur les classeurs de ton répertoire

Code:
Sub rechercheVBE()
'
'Nécessite d'activer la reference:
'"Visual basic For Application Extensibility 5.3"
'
Dim i As Integer, x As Integer
Dim Fichier As String, Recherche As String, Msg As String
Dim Ligne As String
Dim VBCmp As VBComponent

Fichier = "Nom classeur.xls"
Recherche = "MotTest"

For Each VBCmp In Workbooks(Fichier).VBProject.VBComponents
    Msg = VBCmp.Name
    
    x = Workbooks(Fichier).VBProject.VBComponents(Msg). _
        codemodule.CountOfLines
    
    For i = 1 To x
        Ligne = Workbooks(Fichier). _
            VBProject.VBComponents(Msg).codemodule.Lines(i, 1)
        
        If InStr(1, Ligne, Recherche, vbTextCompare) Then
            MsgBox "Trouvé"
            Exit Sub
        End If
    
    Next i
  
Next VBCmp

MsgBox "Pas trouvé"
End Sub


Bonne soirée
MichelXld
 

alol.ita

XLDnaute Nouveau
Re : Rechercher une ligne de code vba dans différents fichiers excel?

J'ai bien activé la reference:
'"Visual basic For Application Extensibility 5.3"

Je teste la macro mais j'ai une erreur à la ligne
For Each VBCmp In Workbooks(Fichier).VBProject.VBComponents
Erreur d'exécution '9'
L'indice n'appartient pas à la sélection?
Pour moi, Fichier ="test.xls".
Est-ce un problème de path...j'ai essayé sur C:\ ou mes Documents..même problème? ou Workbooks?
Je ne saisis pas?
 

alol.ita

XLDnaute Nouveau
Re : Rechercher une ligne de code vba dans différents fichiers excel?

Oups...je pense qu'il faut lancer le classeur en question...
Workbooks.Open Filename:="C:\Documents and Settings\test.xls
Il faudrait qu'il soit activé...mais pas ouvert (car à l'ouverture certains fichiers xls lancent autmatiquement une macro)?
 

MichelXld

XLDnaute Barbatruc
Re : Rechercher une ligne de code vba dans différents fichiers excel?

rebonsoir

tu peux désactiver l'évènement du classeur (Workbook_Open) ainsi

Code:
  Application.EnableEvents = False
  Workbooks.Open Filename:= "C:\dossier\NomClasseur.xls"
  Application.EnableEvents = True


Bonne soirée
MichelXld
 

alol.ita

XLDnaute Nouveau
Re : Rechercher une ligne de code vba dans différents fichiers excel?

Re re Bonsoir!!!
J'ai choisi pour l'instant un fichier excel contenant une macro (sans Worbook_Open)
Maintenant toujours sur la même ligne j'ai un autre message d'erreur
For Each VBCmp In Workbooks(Fichier).VBProject.VBComponents
Erreur d'exécution '1004'
L'accès par programme au projet Visual Basic n'est pas fiable

Je suis sous excel2003.
 

Discussions similaires

Réponses
6
Affichages
387

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260