Bonjour à tous,
Je dispose de deux tableaux sur deux feuilles de calcul différentes:
-Feuille1: 3 colonnes modele/ numerodeserie / datelivraison (+ d'autres colonnes)
- Feuille 2: 3 colonnes: modele/numerodeserie/datelivraison (+ d'autres colonnes)
(voir classeur exemple en PJ de ce post)
Je cherche une fonction qui permettrait, tant que le tableau de données de la feuille une n'est pas vide, de recopier la datedelivraison correspondant au bon modele/numerodeserie de la feuille2 dans la colonne numerodeserie de la feuille1.
J'ai réussi à la faire à l'aide de boucle While et If, mais lorsque le tableau de données est grand cela prend beaucoup de temps (environ 5000 dossiers à traiter):
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 Do While Sheets(feuille1).Range("A1").Offset(M, 0) <> "" modele = Sheets(feuille1t).Range("F1").Offset(M, 0) numerodeserie = Sheets(feuille1t).Range("G1").Offset(M, 0) N = 1 While Sheets(feuille2).Range("A1").Offset(N, 0) <> "" If Sheets(feuille2).Range("A1").Offset(N, 0) = modele And Sheets(feuille2).Range("B1").Offset(N, 0) = numerodeserie Then datelivraison = CDbl(Sheets(feuille2).Range("C1").Offset(N, 0)): Worksheets(feuille1).Range("J1").Offset(M, 0) = datelivraison End If N = N + 1 Wend M = M + 1 Loop
Pourriez vous m'aider à optimiser mon code pour que la recherche/recopie soit beaucoup plus rapide?
Merci à vous,
Camille
Partager