Boucle for If
Résolu
Tristan
-
Tristan -
Tristan -
Bonjour,
Je cherche à tester des valeurs dans un tableur tel que sur une ligne s mes valeurs vérifient deux condition : supérieurs à une valeur donnée et inférieure à une autre valeur. Mon problème est que selon mon code même si la condition n'est pas respectée mon compteur s'incrémente.
Voici le code :
les valeurs d'encadrement ont été crées par un code
Par exemple dès la première ligne W = 30 WD = 3 et la valeur de la cellule "E"s est 44, la condition n'étant pas respecté le then ne devrais pas s'appliquer et la variable r ne devrait donc pas être incrémentée (ce qui n'est pas le cas ...)
r = 0
For s = 4 To 34 'cherche les correspondances au produit potentiel parmis ceux existants
If (W - WD) < Sheets("Suivi EF").Range("E" & s).Value < (W + WD) And _
(X - XD) < Sheets("Suivi EF").Range("K" & s).Value < (X + XD) And _
(Y - YD) < Sheets("Suivi EF").Range("M" & s).Value < (Y + YD) And _
(Z - ZD) < Sheets("Suivi EF").Range("N" & s).Value < (Z + ZD) Then
r = r + 1
End If
Next s
Sheets("Feuil1").Range("A" & q) = W
Sheets("Feuil1").Range("B" & q) = X
Sheets("Feuil1").Range("C" & q) = Y
Sheets("Feuil1").Range("D" & q) = Z
Sheets("Feuil1").Range("E" & q) = r
q = q + 1
Je cherche à tester des valeurs dans un tableur tel que sur une ligne s mes valeurs vérifient deux condition : supérieurs à une valeur donnée et inférieure à une autre valeur. Mon problème est que selon mon code même si la condition n'est pas respectée mon compteur s'incrémente.
Voici le code :
les valeurs d'encadrement ont été crées par un code
Par exemple dès la première ligne W = 30 WD = 3 et la valeur de la cellule "E"s est 44, la condition n'étant pas respecté le then ne devrais pas s'appliquer et la variable r ne devrait donc pas être incrémentée (ce qui n'est pas le cas ...)
r = 0
For s = 4 To 34 'cherche les correspondances au produit potentiel parmis ceux existants
If (W - WD) < Sheets("Suivi EF").Range("E" & s).Value < (W + WD) And _
(X - XD) < Sheets("Suivi EF").Range("K" & s).Value < (X + XD) And _
(Y - YD) < Sheets("Suivi EF").Range("M" & s).Value < (Y + YD) And _
(Z - ZD) < Sheets("Suivi EF").Range("N" & s).Value < (Z + ZD) Then
r = r + 1
End If
Next s
Sheets("Feuil1").Range("A" & q) = W
Sheets("Feuil1").Range("B" & q) = X
Sheets("Feuil1").Range("C" & q) = Y
Sheets("Feuil1").Range("D" & q) = Z
Sheets("Feuil1").Range("E" & q) = r
q = q + 1
A voir également:
- Boucle for If
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
3 réponses
Bonjour
VBA ne connait pas les doubles inégalités (du moins au sens où on l'entend)
Essaies ceci (pour le premier encadrement
Cdlmnt
VBA ne connait pas les doubles inégalités (du moins au sens où on l'entend)
Essaies ceci (pour le premier encadrement
For s = 4 To 34 'cherche les correspondances au produit potentiel parmis ceux existants If (W - WD) < Sheets("Suivi EF").Range("E" & s).Value And Sheets("Suivi EF").Range("E" & s).Value < (W + WD) And _
Cdlmnt