[VBA] Condition nécessaire assouplie

plombiero

XLDnaute Nouveau
Bonjour le forum :)

Je cherche à effectuer un test sous deux conditions nécessaires, et à copier la valeur si ces conditions sont vérifiées.

Ceci fonctionne :

Code:
Sub correlation_pnl_nom()

Dim L As Long
Dim i, j As Integer

i = j = 2

derlig = Worksheets("Feuilcalcul").Range("D" & Cells.Rows.Count).End(xlUp).Row
derligb = Worksheets("Conso").Range("A" & Cells.Rows.Count).End(xlUp).Row

For i = 2 To derlig

    For j = 2 To derligb
        If Worksheets("Source").Range("I" & j).Value = Worksheets("Feuilcalcul").Range("D" & i).Value And Worksheets("Conso").Range("E" & j).Value = Worksheets("Feuilcalcul").Range("C" & i).Value Then
        Worksheets("Conso").Range("N" & j).Value = Worksheets("Feuilcalcul").Range("E" & i).Value
        Worksheets("Conso").Range("O" & j).Value = Worksheets("Feuilcalcul").Range("F" & i).Value
        Worksheets("Conso").Range("P" & j).Value = Worksheets("Feuilcalcul").Range("G" & i).Value
        Worksheets("Conso").Range("Q" & j).Value = Worksheets("Feuilcalcul").Range("H" & i).Value
        Worksheets("Conso").Range("R" & j).Value = Worksheets("Feuilcalcul").Range("I" & i).Value
        Worksheets("Conso").Range("S" & j).Value = Worksheets("Feuilcalcul").Range("J" & i).Value
        Worksheets("Conso").Range("U" & j).Value = Worksheets("Feuilcalcul").Range("K" & i).Value
        
       
    End If
    
    Next j
    
Next i

End Sub

Mon problème, c'est que l'une des deux conditions, même si elle est nécessaire, est trop restrictive sur son test de valeur.

Code:
If Worksheets("Source").Range("I" & j).Value = Worksheets("Feuilcalcul").Range("D" & i).Value And Worksheets("Conso").Range("E" & j).Value = Worksheets("Feuilcalcul").Range("C" & i).Value Then

Il s'agit plus précisément de celle-ci :

Code:
Worksheets("Conso").Range("E" & j).Value = Worksheets("Feuilcalcul").Range("C" & i).Value

En pratique, j'aimerai que le "=" devienne un "sensiblement égal" avec 2% de marge globale (1% en moins, 1% en plus)

Par exemple, si j'ai :

E25 = 99,5
E26 = 100

J'aimerais que ma condition E25=E26 soit remplie quand même.

J'ai tenté avec des arrondis pour traiter les données dans les deux sens (avec un "ROUNDUP" et un "ROUNDDOWN" à chaque fois testé en condition suffisante), mais ça n'est pas convenable. Je n'arrive pas à gérer le pourcentage.

Quelqu'un aurait-il une idée ? Une piste ?

Je vous remercie par avance.

Amicalement,

Damien

PS: J'ai estimé que le code présenté était suffisamment clair pour ne pas joindre un fichier Excel, les données y étant totalement confidentielles. Si jamais il est nécessaire de le joindre, n'hésitez pas à me le faire savoir et je le retravaillerai avec grand plaisir (mais ça demande vraiment beaucoup de temps).
 

Statistiques des forums

Discussions
312 493
Messages
2 088 946
Membres
103 989
dernier inscrit
jralonso