Bonjour,
Avant tout pardon par mon français parce que je le parle depuis quelque temps.
Je vous écris pour voir si la macro que j'ai fait peut être amelioré ou s'elle est bien comme ça.
En effet, il s'agit d'une macro d'extraction de deux fichiers spool depuis SAP. Après sucesives traitements de fichiers j'obtiens des listes des données numeriques. Une colonne materiaux (numeros et lettres) et pleussieurs colonnes avec des données numeriques.
Ma macro tourne dans moins de 20' sauf quand le fichiers ont plus de 2000 lignes. Elle peu tarder 3 ou 6 minutes pour s'executer (10000 lignes).
C'est au moment d'executer ces For imbriqués, (regarder ci-dessous) qu'elle prends plus de temps:
Pourriez vous m'indiquer soit:
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 'Formule que va chercher les données DLigneA; pour les croise avec les données (non uniques) de DLigneN dans Range= N et donner un resultat. DLigneA = Range("A1000000").End(xlUp).Row DLigneN = Range("N1000000").End(xlUp).Row For Op = 1 To DLigneA Step 1 For P = DLigneN To 1 Step -1 If Cells(Op, 1) = Cells(P, 12) Then Cells(Op, 11).Value = Cells(P, 14).Value Cells(Op, 10).Value = Cells(P, 13).Value Exit For End If Next P Next Op
- une façon alternative pour executer cette formule et qu'elle prends pas beaucoup de temps.
- soit, qu'elle est bien et que c'est normal le temps qu'elle prends.
J'espère vous avoir donnée tous les données qu'il faut. N'hesite pas à me demander plus d'information.
Merci d'avance.
Victoria
Partager