Boucle Do while qui ne marche pas
tomethod
Messages postés
4
Statut
Membre
-
vordano Messages postés 1981 Statut Membre -
vordano Messages postés 1981 Statut Membre -
Bonjour, si quelqu'un peu m'aider cette boucle ne marche pas. Elle s'arrete des que je rencontre une valeur différente de 0 en colonne 1
Sub TEST()
'numéro de la première ligne du calcul
ligne = 1
'boucle tant que cells(ligne,1)=0 go to ligne+1 jusqu'à 49
Do While Cells(ligne, 1) = False And ligne < 50
ligne = ligne + 1
'test si cellule1 < cellule2 alors cellule5="valide"
If Cells(ligne, 1).Value < Cells(ligne, 2).Value Then
Cells(ligne, 5) = "valide"
End If
Loop
MsgBox (ligne)
End Sub
Sub TEST()
'numéro de la première ligne du calcul
ligne = 1
'boucle tant que cells(ligne,1)=0 go to ligne+1 jusqu'à 49
Do While Cells(ligne, 1) = False And ligne < 50
ligne = ligne + 1
'test si cellule1 < cellule2 alors cellule5="valide"
If Cells(ligne, 1).Value < Cells(ligne, 2).Value Then
Cells(ligne, 5) = "valide"
End If
Loop
MsgBox (ligne)
End Sub
2 réponses
-
en même temps c'est normal qu'elle s'arrête quand elle rencontre autre chose que 0 puisque tu lui as dis de le faire... (cf: cells(ligne,1)=0 )
d'ailleur pourquoi tu as mis cells(ligne,1)=FALSE au lieu de 0 comme dans ton commentaire ???-
-
-
je souhaite effectuer un test qui compare une valeur à une autre fixe et qui si elle est inférieur inscrit sur la même ligne dans une autre colonne "valide",mon problème principale est que si je compare une cellule vide à une donnée fixe ademmetons 5 le test serait toujours vrai dès que la cellule est vide hors je souhaite que le test se passe des cellules vide et ne se fasse une annotation "valide" que sur les cellules ayant une donnée inférieur ou supérieur "non valide" à ma donnée fixe.
Si vous pouvez m'aider en utilisant le même mode de rédaction que le mien cela me serait grandement profitable le but étant de comprendre mes erreurs et apprendre à me débrouiller seul.
Par avance merci -
-
c'est lorsque la cellule est vide ou du moins égal a 0 je pense. Le test tel que je souhaite réaliser comparerai les données dans une colonne contenant des dates et des cellules vide a une autre date(celle du jour) et lorsqu'il y aurai une valeur dans la colonne inférieur à la date référence(celle du jour) alors je pourrai inscrire valide sinon je passe à la cellule suivante. C'est la tout mon problème puisque toute cellule vide est inférieur à la date du jour "cells(12,7).value" la date étant une valeur numérique dans excel je bugg.
Désolé si je ne suis pas assez clair.
-
-
là tu as ta réponse :)
"c'est lorsque la cellule est vide ou du moins égal a 0 je pense"
donc d'un coté tu as ta boucle qui permet de parcourir tes cellulesWhile ((Cells(ligne, 1) <> "" And Cells(ligne, 1) <> "0") or (Cells(ligne, 2) <> "" And Cells(ligne, 2) <> "0")) 'on vérifie la date de la première colonne mais aussi de la seconde (au cas où) wend
d'un autre coté tu as ton test qui permet de savoir dans quel cas écrire ton valide ou non valide'test si cellule1 < cellule2 alors cellule5="valide" If Cells(ligne, 1).Value <= Cells(ligne, 2).Value Then Cells(ligne, 5) = "valide" else Cells(ligne, 5) = "non valide" End If ligne = ligne + 1
il ne te reste plus qu'à mettre le if dans le while et ça devrais le faire
remarque que j'ai rajouté un = dans la condition du if ainsi qu'une incrémentation de ligne a la fin.