Bonjour,

tout d'abord je suis assez novice en vba ! j'ai consulté beaucoup les forums qui sont très riches sur ce sujet mais je commence à bloquer sérieusement...

voilà mon soucis

j'ai un dossier répertoire ou s'enregistre des fichiers Excel quelconques toujours au même format, toujours même nombre de cellule et de ligne.

J'ai récupéré une première macro qui récupère tout les fichiers qui s'ajoute dans ce répertoire pour les ajouter dans une feuille 1 d'un autre fichier fille : macro "extraction". A la fin il efface tout les fichiers mère de mon dossier répertoire.

Une deuxième macro (répertoire) ajoute au kilomètre mes lignes récupérées de cette feuille dans une autre feuille du même fichier dès qu'une cellule vient à changer dans la feuille 1 (plus ou moins bancales...), les cellules de la feuille 1 sont ensuite effacées.

je souhaite (car je ne sais pas si c'est vraiment possible) que mes macros fonctionnent l'une derrière l'autre dès qu'il y a un nouveau fichier type Excel detecté dans mon répertoire (puisque ceux qui sont traités sont supprimés). Et pourquoi pas avec ou sans bouton. C'est peut être un peu trop ambitieux...

Pour cela j'imaginais exécuter un auto open avec une boucle loop.


ce premier code tourne sans fin et le programme ne répond plus

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Sub Auto_open()
 
Do
Dim gestionFichier As New Scripting.filesystemobject
If gestionFichier.FilesExists("D:\Users\Desktop\repertoire\*.xls") = True Then
 call extraction
 call repertoire
End If
 
Loop
End sub
ce code là ne fait rien du tout... j'ai bien ajouté un module de classe pour la fonction recherche

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
 
Sub Auto_open()
 
Do
Dim MaRecherche As New Recherche
MaRecherche.Analyse "D:\Users\Desktop\repertoire"
For ctr = 1 To MaRecherche.ListeFichier.Count
If Right(MaRecherche.ListeFichier(ctr), 3) = ".xls" Then
    call extraction
    call repertoire
End If
Next
Set MaRecherche = Nothing
 
Loop
 
End Sub
après je sais pas si il faudrait pas le faire avec un filtre sur les fichiers excel avec la fonction fileexists... mais je ne sais pas si on peut combiner ces fonctions...

voilà en espérant avoir été assez clair et merci d'avance pour vos avis éclairés !
A bientôt