Bonjour à tous
pb : je souhaiterais svp accélérer l’exécution de mon code.
données : j'ai une feuille 1 dans laquelle j'ai en colonne A les codes Articles, en B les numéros de non conformité (s'il y en a une), en C la date des non conformités et en D le nom de fournisseur de chaque code article. Ensuite en feuille 2 j'ai en colonne A des codes articles en B les noms de fournisseurs et en C des dates (ordre croissant).
code : je souhaiterais que lorsque dans la feuille 1, la colonne B est différente de vide je récupère la date dans la cellule adjacentes (variable 1) ainsi que le code article (variable 2) et le nom du fournisseur (variable 3) puis je vais dans la feuille 2. Maintenant je parcours la colonne C (les dates) et lorsque je trouve la première date supérieur à variable 1 à partir de cette cellule jusqu'à la fin je cherche dans la colonne A la variable 2 si je la trouve je vérifie que la cellule adjacente portant le nom du fournisseur est la même que variable 3 et si c'est le cas j'incrémente une variable (var) de 1 . une fois terminé je dis que la cellule E de la feuille 1 du code article concerné est égale à var.
voila un exemple que je viens de fabriquer pour vous aidez à comprendre: acc code.xlsx
maintenant voila ce que moi j'ai fait mais je vous préviens c'est très long :/ :
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 Sub RSC1() Dim LigneF2 As Long Dim LigneF4 As Long Dim i As Long, j As Long, N As Long Dim var As Integer Dim variable1 As Variant, variable2 As Variant LigneF2 = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row LigneF4 = Sheets("Feuil4").Range("A" & Rows.Count).End(xlUp).Row var = 0 For i = 1 To LigneF2 If Sheets("Feuil2").Cells(i, 4).Value <> "" Then variable1 = Sheets("Feuil2").Cells(i, 1).Value variable2 = Sheets("Feuil2").Cells(i, 5).Value variable3 = Sheets("Feuil2").Cells(i, 3).Value For j = 1 To LigneF4 If Sheets("Feuil4").Cells(j, 1).Value = variable1 Then If Sheets("Feuil4").Cells(j, 3).Value > variable2 Then If Sheets("Feuil4").Cells(j, 2).Value = variable3 Then var = var + 1 End If End If End If Next j Sheets("Feuil2").Cells(i, 8).Value = var End If var = 0 Next i End Sub
merci à vous
Partager