Bonjour,
Je n'ai pas de problème sur le fonctionnement du code que j'ai écrit: ça marche mais c'est d'une lenteur...
Bref je voudrais savoir si la méthode que j'applique est la bonne :
Je fais des extractions sous SAP r3 mais celles-ci ne contiennent pas toutes les infos nécessaires, j'utilise donc des tables de correspondance.
Mes extractions sont très volumineuses (+ de 80.000 lignes) et donc j'ai très vite abandonner l'idée des formules qui faisaient planté excel 1x sur 2 pour adopter un traitement ligne par ligne via un code VBA.
En gros mon code, pour chaque ligne, va regarder dans les différentes tables de correspondances et renvoyé une valeur en 'value' en bout de ligne.
Ca marche, pas de soucis, mais c'est lennnnnnnt.... exemple 91.000 lignes : 30 minutes... et blocage d'Excel au sens ou je ne peux pas charger d'autre fichier (j'ai mis une boite de dialogue qui m'informe sur l'avancée).
la méthode que j'applique est très basique un:
(...)
max_ligne = ActiveSheet.UsedRange.Rows.Count
for ligne_à_regarder = 2 to max_ligne
val_rech=cells(ligne_à_regarder, 1)
ligne_table = Application.WorksheetFunction.Match(val_rech, Workbooks(VBAfile).Sheets(CATSheet).Range("A1:A" & CATligne), 0)
cells(ligne_à_regarder,10)=Workbooks(VBAfile).Sheets(CATSheet).cells(ligne_table,4)
(...)
Next
Voila, existe-t-il une autre fonction/façon qui permettrait d'accèlerer drastiquement le traitement des données.
Ou sinon, existe-il une solution pour lancer la macro dans une session excel isolée qui ne m'empêcherait plus d'utiliser excel par ailleurs tant que le traitement n'est pas terminé.
Merci.