Je suis nouveau à exceller VBA et j'ai une tâche que j'ai besoin de compléter en utilisant VBA. Je cherche à comparer les valeurs dans la même colonne. Je veux commencer la comparaison avec la dernière rangée et remonter. Les critères de filtrage sont les suivants: si la différence en% entre le nombre actuel et le dernier nombre est supérieure à 3%, copiez et collez la valeur sur une autre ligne. Une fois qu'une valeur est copiée et collée, les valeurs dans les données doivent être comparées à la valeur copiée et collée précédente lors de la vérification de la différence de 3%. Exemple ci-dessous Merci d'avance.Excel VBA - Comparaison de lignes dans la même colonne
Par exemple, si ma gamme de données sont présentées ci-dessous
1100
1285
1290
3005
1500
2020
2030
2040
2050
2060
2070
2080
2100
2500
3000
Cela devrait être mon résultat:
1100
1290
1500
2030
2100
2500
3000
Les résultats que j'ai droit ont maintenant 3005 là-dedans (la différence entre 3000 et 3005 est inférieur à 3% pour cent (3005/3000) donc 3005 ne devrait pas figurer dans la liste), alors qu'il ne devrait pas figurer dans la liste.
1100
1290
3005
1500
2030
2100
2500
3000
Ceci est le code que j'ai pour le moment. Merci d'avance.
Sub main2()
Dim row_a As Long
Dim row_b As Long
Dim l_2
row_b = Range("D5000").End(xlUp).Row
Cells(row_b, "d").Copy Cells(row_b, "P")
l_2 = row_b - 1
For i = row_b To 3 Step -1
a = Cells(row_b, "d").Value
For j = l_2 To 3 Step -1
If a/Cells(j, "d") <= 0.97 Or a/Cells(j, "d") >= 1.03 Then
Cells(j, "d").Copy Cells(j, "p")
a = Cells(j, "d").Value
End If
Next j
Next i
End Sub
selon votre propre cahier des charges, 3005 devrait être mis sur la liste parce que la différence entre 3005 et 1290 et la différence entre 3005 et 1500 sont à la fois plus que 3% ... s'il vous plaît repenser votre spécification – jsotola
@ Jonathon-Sidwell, It wou Je serais utile pour tout lecteur de ce post si vous pouviez décrire au moins ce que vous utilisez votre requête. car il semble y avoir quelques difficultés à spécifier l'approche voulue. –