Bonjour,
Mon sujet est assez simple mais très lourd.
En gros j'ai une liste de références dans l'onglet 1 (colonne A).
J'ai la base de données dans l'onglet 2 (référence colonne A et valeur colonne B).
Je voudrais tester mes références de l'onglet 1, prendre la valeur dans l'onglet 2 et copier le tout dans l'onglet 3.
J'ai le code assez simple pour ça mais j'ai une centaine de références à tester sur plus de 150000 références dans l'onglet 2. Et mon code prend trop de temps.
Auriez-vous une astuce? Par un tableau?
Voilà mon code qui fonctionne mais qui est lent.
Merci d'avance!!!
"Sub valeurs()
Sheets(1).Select
i = 1
j = 2
k = 2
Do While Range("A" & i).Value <> ""
ref_a_tester = Range("A" & i).Value
Sheets(2).Select
Do While Range("A" & j).Value <> ""
ref_base = Range("A" & j).Value
If pn_a_tester = pn_base Then
ref_val = Range("E" & i).Value
Sheets(3).Select
Range("A" & k).Value = ref_base
Range("B" & k).Value = ref_val
k = k + 1
End If
Sheets(2).Select
j = j + 1
Loop
Sheets(1).Select
i = i + 1
Loop
End Sub"
Mon sujet est assez simple mais très lourd.
En gros j'ai une liste de références dans l'onglet 1 (colonne A).
J'ai la base de données dans l'onglet 2 (référence colonne A et valeur colonne B).
Je voudrais tester mes références de l'onglet 1, prendre la valeur dans l'onglet 2 et copier le tout dans l'onglet 3.
J'ai le code assez simple pour ça mais j'ai une centaine de références à tester sur plus de 150000 références dans l'onglet 2. Et mon code prend trop de temps.
Auriez-vous une astuce? Par un tableau?
Voilà mon code qui fonctionne mais qui est lent.
Merci d'avance!!!
"Sub valeurs()
Sheets(1).Select
i = 1
j = 2
k = 2
Do While Range("A" & i).Value <> ""
ref_a_tester = Range("A" & i).Value
Sheets(2).Select
Do While Range("A" & j).Value <> ""
ref_base = Range("A" & j).Value
If pn_a_tester = pn_base Then
ref_val = Range("E" & i).Value
Sheets(3).Select
Range("A" & k).Value = ref_base
Range("B" & k).Value = ref_val
k = k + 1
End If
Sheets(2).Select
j = j + 1
Loop
Sheets(1).Select
i = i + 1
Loop
End Sub"