Se connecter avec
S'enregistrer | Connectez-vous

Rechercher toute les macros

Dernière réponse : dans Programmation

Bonjour,

j'en appel a vous car je voudrais connaître un moyen de rechercher toute les macros qui se situe sur un même serveur, j'ai eu beau chercher je n'ai pas trouvé.
J'ai fais une recherche de tous les fichiers excel se trouvant sur le serveur il y en a 50000, je ne me vois pas tous les ouvrir un par un pour voir si il contiennent une macro.
Sil vous plait, aidez moi..

Autres pages sur : rechercher macros

Lassé par la pub ? Créez un compte
Expert Programmation

Je veux bien t'aider, et le ferai volontiers, pourvu que tu acceptes cet état des choses : ce forum est réservé à l'entraide entre développeurs. Si tu n'appartiens pas encore à ce monde, il te faudra au moins accepter d'y être considéré comme novice et non pas comme étranger. Certes, la différence est subtile.

Si les macros VBA/Excel ne sont pas ton fort, quel langage maîtrises-tu ?
Si "aucun" est la réponse, on tâchera de faire au plus simple. On commencera ton noviciat par le VBA/Excel ;) 
Expert Programmation

Ah oui ? Il faut donc que je te le fasse pour toi et toi, tu te contentes de patienter. Et si ça convient, j'aurai un "Merci c'est gentil" !!!

Ben i'y en a des qui s'emmerdent pas, hein ! :pfff: 

Bon, puisque j'ai un peu regardé, je vais te livrer quelques réflexions.
Parcourir les fichiers, c'est facile : demerden sie sich comme disent les teutons.

Je te conseille l'utilisation des méthodes Files et SubFolders de l'objet FileSystemObject.Folder de la référence Microsoft Scripting Runtime (scrrun.dll).

Pour ce qui est de savoir si tel fichier XLS contient une macro, c'est bien moins simple, et mal documenté. Alors voilà un ptit coup de pouce.

Le principe : ouvrir le fichier comme un classeur puis vérifier si des lignes de codes sont présentes dans au moins un des différents objets susceptibles d'en contenir. Penser ensuite à refermer le classeur.

  1. Function ContientVBA(ByVal wb As Workbook) As Boolean
  2. Dim comp As VBComponent
  3.  
  4. For Each comp In wb.VBProject.VBComponents
  5. If comp.CodeModule.CountOfLines > 0 Then
  6. ContientVBA = True
  7. Exit Function
  8. End If
  9. Next
  10. ContientVBA = False
  11. End Function


L'objet VBComponent est défini dans la référence Microsoft Visual Basic Extensibility (VBE6EXT.OLB jusqu'à Excel 2003).
Expert Programmation

Salut,

Ben tu te fais une fonction en VB pour parcourir tous tes répertoires, dans chacun de ces répertoires, tu ouvres les classeurs qui s'y trouvent, et tu appliques la fonction ContientVBA() sur chacun d'eux. Cette fonction renvoie Vrai s'il y a du code VBA dans le classeur.
Lassé par la pub ? Créez un compte