Bonjour,
Je remonte une fois de plus mon thread pour compléter les informations et poser des questions. J'ai quelques petits soucis avec cette méthode :
1) J'ai couplé ce bout de code à un programme de scan de disque pour sortir tous les fichiers Excel. Ca marche pas trop mal, cependant, dans sa version basique, il ne ferme pas les instances Excel ouvertes et donc ca propovque rapidement une gros problème de mémoire.
Pour résoudre ce problème, il suffit de fermer les instances et les documents à l'aide de ces quelques lignes :
1 2 3 4
| Set Wb = Nothing
xlApp.Workbooks.Close
xlApp.Quit
Set xlApp = Nothing |
Il relance Excel à chaque fichier xls scanné, mais au moins, il n'en n'ouvre pas des centaines. Si quelqu'un arrive à fermer uniquement le fichier tout en conservant Excel ouvert, je suis preneur. Quand j'ai essayé, il m'a ralé dessus parce qu'il n'aimait pas avoirt deux fichiers nommés pareil ouverts en même temps. C'est donc que je n'ai pas réussi à uniquement fermer les fichiers sans fermer Excel.
2) Après le scan de certains fichiers comportant des macros, il me demande si je veux enregistrer les modifs. Il suffit de faire croire à Excel que le classeur a été sauvegardé à l'aide de la ligne
xlApp.ActiveWorkbook.Saved = True
juste avant le close.[/code]
3) Certains fichiers Excel ont une macro qui s'éxécute à l'ouverture. Ca me pose problème car je ne sais pas comment désactiver ça. Quelqu'un a une idée?
EDIT : Il suffit d'ajouter la ligne
xlApp.EnableEvents = False
4) Il faudrait aussi que je scanne les macros des fichiers Word et Access. , je suppose qu'il faut évidemment changer l'application lancée. Par contre, ça m'étonnerait que la propriété Workbooks marche sous Word et Excel et je ne connais pas les méthodes d'accès pour ces applis.
Merci de m'aider pour ces problèmes
Boris
Partager