Je vous écris car j'ai un code VBA qui est de plus en plus long en traitement. En faite, tous les jours des fichiers se mettent dans un dossier, ensuite grâce au code ci dessous je les récupère tous j'en reçois 14 par jour j'en ai deja plus de 200 en 15 jours ça promet
Chose faite :
Pour améliorer j'ai rajouté application.screenUpdating vu sur exceldownload mais ca n'accélère pas trop la rapidité de cette macro
Auriez vous d'autres bout de code tel que le screenUpldating permettant d'améliorer la macro?
Aussi, comment serait -il possible d'intégrer un contrôle de doublons, en faite ce code efface tout et reprend tous les fichiers et ça tous les jours. je pense que de ne prendre que les fichiers récents améliorerait la rapidité de l'exécution...
Déjà la première chose à faire est de déclarer tes variables et leurs type, celà te permettra de gagner en mémoire, donc en temps d'éxécution.
Utilise l'option explicit pour être sur de toutes les avoir déclarer.
Après oui je pense que le faite de tous supprimer puis de tout réimporter prends plus de temps que de mettre seulement les nouveaux fichiers.
Pourrais tu joindre un ichier pour que ce soit plus simple à comprendre ton code?
J'ai pris note des modifications qui tu m'as conseillé simraill, faut que j'identifie les variables dans le code chu un peu une quiche en vba, j'essaye petit à petit mais ce code je l'ai recuperé sur un forum..
sousRépertoire / Set maitre / Repertoire ce sont bien les variables présentes?
Merci Efgé aussi pour ces explications détaillées, je changé ce que tu m'as conseillé de faire, et ça n'a rien à voir ! ça va beaucoup plus vite !
J'ai mis mon fichier en pièce jointe, j'ai deux codes, l'un récupère les fichiers(avec Modif de Efgé), et l'autre qui envoie un mail avec des champs spécifiques récupérés sur le résultat des fichiers excel.
Aussi, je vais regarder comment faire pour qu'il n'ouvre pas à chaque fois l'ensemble des fichiers, parce qu'à la fin de l'année ça fera 5110(14*365jrs) fichiers à ouvrir ça prendra un certain temps.
Les fichiers que j'enregistre ressemble à ça "Export-20130115-085844589.xls"
J'ai fais un ptit truc surement très long pour recuperer la date du jour "15-1-2013" de chaque fichier.
Apres l'idée que j'ai est de mettre dans une bdd à chaque fois que je lance la macro la date du jour, et dans le code final, pourrait prendre cette variable pour recuperer mes fichiers non recuperer jusqu'alors.
Je sais pas ce que vous en pensez? si c'est trop farfelu..
Code:
Sub t()
'Cell(1,1) en locurence est le nom du fichier excel, je l'ai mis en a1 pour tester le code
Dim jour As Integer
Dim Mois As Integer
Dim Année As Integer
Année = (Mid(Cells(1, 1), 8, 4))
Mois = (Mid(Cells(1, 1), 12, 2))
jour = (Mid(Cells(1, 1), 14, 2))
MsgBox jour & "-" & Mois & "-" & Année
End Sub
Je vais voir ce que je trouve et le mettrais à la suite du code.
Re, Bonjour simraill
J'ai laissé une ou deux idées dans le code aaaaa
Pas trop le temps d'aller plus loin, mais la meilleure solution reste de vérifier les classeurs à traiter...
Cordialement