Optimiser une macro

flipflip

XLDnaute Nouveau
Salut, j'ai créé une macro qui a pour but d'intégrer une image dans une colonne donnée. La recherche ce fait par rapport au contenu d'un colonne qui contient le nom du fichier à intégrer. Ma question est, est-ce qu'il est possible d'optimiser sont fonctionnement. L'utilisation de cette macro va se faire sur un fichier de 6000 lignes avec pratiquement autant d'images, hier après un petit test il a fallu bien 2 heures pour traiter la totalité du fichier. Je me demandais si en utilisant un tableau plutôt que la relecture du dossier ne serait pas plus rapide ? [file name=image_20060322160358.zip size=9497]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/image_20060322160358.zip[/file]
 

Pièces jointes

  • image_20060322160358.zip
    9.3 KB · Affichages: 10

edelweisseric

XLDnaute Occasionnel
Bonsoir flipflip
Bonsoir à tous

Je vais me permettre de donner un avis, bien que je ne sois pas un expert.

L'idée du tableau à deux entrées me parait une bonne chose, mais pour améliorer on peut mettre au début du code :

application.ScreenUpdating=false

et puisque nous sommes en train de chercher d'éconnomiser le moindre xième de seconde, à la place de :

Range('A65535').End(xlUp).Row
je mettrais :
Range.End(xldown).Row

Voilà, j'ai apporté ma toute petite contribution à ton projet (peut être...)

A+

Cordialement
 

flipflip

XLDnaute Nouveau
Merci edelweisseric d'avoir répondu. Pour ta proposition je pense que xldown veut dire que ça s'applique jusqu'a la derniere ligne qui contient quelque chose ? Pour ce qui est de application.ScreenUpdating=false en effet c'est pas mal, surtout que maintenant j'ai intégré une gestion d'erreur qui donne le numéro de ligne donc pas besoins de mettre à jour l'affichage mais il me faudrait un truc pour indiquer à l'utilisateur que c'est en travail.
 

flipflip

XLDnaute Nouveau
Salut, j'ai testé t'a proposition concernant le Range. J'ai remplacé :
Code:
For i = LigRech To Range('A65535').End(xlUp).Row

Par
Code:
For i = LigRech To Range.End(xlDown).Row

Mais lorsque je lance la macro j'ai l'erreur
Code:
Erreur de compilation
Argument non facultafif
Et il me surligne le Range.
 

Discussions similaires

Réponses
9
Affichages
400
Réponses
3
Affichages
299

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan