Bonjour à tous,

A partir d'une colonne I :
1300
1320
1380
1560
1600
2000
3000
je dois classer ces quantités, en 2 partis (colonne J, et L) :
-dans la colonne J, je dois avoir toutes les quantités ayant moins de 60 de différence entre soit son précédent, soit son suivant.
- dans la colonne L, je dois avoir toutes celles qui ne respectent pas cette contrainte.

Je dois donc avoir ce résultat :
J L
1300 2000
1320 3000
1380
1560
1600

pour cela, je fais cette macro :

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
Public Sub sort()
Dim i As Long
Dim j As Long
Dim l As Long
i = 3
j = 6
l = 6
Sheet2.Range("k6:v200").ClearContents
While Sheet2.Cells(i, 1) <> ""
If ((Cells(i + 1, 7) - Cells(i, 7)) <= 60) Or ((Cells(i, 7) - Cells(i - 1, 7)) <= 60) Then
        Sheet2.Cells(j, 11) = Sheet2.Cells(i, 1)
        Sheet2.Cells(j, 12) = Sheet2.Cells(i, 3)
        Sheet2.Cells(j, 13) = Sheet2.Cells(i, 4)
        Sheet2.Cells(j, 14) = Sheet2.Cells(i, 5)
        Sheet2.Cells(j, 15) = Sheet2.Cells(i, 7)
        Sheet2.Cells(j, 16) = Sheet2.Cells(i, 9)
        j = j + 1
Else
        Sheet2.Cells(l, 17) = Sheet2.Cells(i, 1)
        Sheet2.Cells(l, 18) = Sheet2.Cells(i, 3)
        Sheet2.Cells(l, 19) = Sheet2.Cells(i, 4)
        Sheet2.Cells(l, 20) = Sheet2.Cells(i, 5)
        Sheet2.Cells(l, 21) = Sheet2.Cells(i, 7)
        Sheet2.Cells(l, 22) = Sheet2.Cells(i, 9)
        l = l + 1
        End If
i = i + 1
Wend 
End Sub
Cette macro fait bien un trie, cependant, elle ne fonctionne pas pour le 3000
elle me donne ce résultat :
J L
1300 2000
1320
1380
1560
1600
3000

Car elle considère que la cellule suivant 3000 est égal à 0, donc 0-3000, est bien inférieur à 60. Alors qu'elle ne devrait pas y etre étant donnée que 3000-1600 > 60.

je suis novice dans vba excel, je pense qu'il y a une solution simple, mais je ne la trouve pas !!!

merci d'avance