bonjour
j'ai 2 tableaux,un de 1 800 lignes et un autre de 300 lignes environ
pour chacune des 300 lignes du 2° tableau, je dois checker chaque lignes du 1° tableau(1800 lignes) pour faire des comparaisons
j'ai désactivé tous ce que je pouvais, mais ma procédure prend 40 secondes pour s'exécuter
je sais qu'il y a moyen de créer "des tableaux virtuels", mais je ne maîtrise pas ce type d'élément
est ce que quelqu'un pourrait me donner un coût de main
voici mon code actuel
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Sub recherche_des_casiers_et_des_palettes_carton() Dim ligne, ligne_movex, ligne_suivi_atdec As Variant 'recherche des lot/ref identique For ligne_suivi_atdec = 1 To Workbooks("StkPF.xls").Worksheets("Sheet1").Range("an65536").End(xlUp).Row + 1 'If ligne_suivi_atdec = 86 Then Stop If Workbooks("StkPF.xls").Worksheets("Sheet1").Range("am" & ligne_suivi_atdec) <> "" Then For ligne_movex = 1 To Workbooks("StkPF.xls").Worksheets("Sheet1").Range("j65536").End(xlUp).Row + 1 'If ligne_movex = 242 Then Stop 'lot et ref identique If Val(Left(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("j" & ligne_movex), 8)) = Val(Left(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("am" & ligne_suivi_atdec), 8)) And Val(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("an" & ligne_suivi_atdec)) = Val(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("s" & ligne_movex)) Then If Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) <> "" Then Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) & " ou " & Workbooks("StkPF.xls").Worksheets("Sheet1").Range("u" & ligne_movex) If Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) = "" Then Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("u" & ligne_movex) 'statut Workbooks("StkPF.xls").Worksheets("Sheet1").Range("as" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("p" & ligne_movex) 'palette carton If Left(Right(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("j" & ligne_movex), 5), 1) = 9 Or Left(Right(Workbooks("StkPF.xls").Worksheets("Sheet1").Range("j" & ligne_movex), 2), 1) = 9 Then Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ao" & ligne_suivi_atdec) & "\C" End If 'ref Workbooks("StkPF.xls").Worksheets("Sheet1").Range("am" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("j" & ligne_movex) 'quantité Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ap" & ligne_suivi_atdec) = Workbooks("StkPF.xls").Worksheets("Sheet1").Range("w" & ligne_movex) 'check movex Workbooks("StkPF.xls").Worksheets("Sheet1").Range("ab" & ligne_movex) = "OK" End If Next ligne_movex End If Next ligne_suivi_atdec End Sub
Partager