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
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 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
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...
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
voilà en espérant avoir été assez clair et merci d'avance pour vos avis éclairés !
A bientôt
Partager