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
A voir également:
- Boucle Do while qui ne marche pas
- Pc qui s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
2 réponses
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 cellules
d'un autre coté tu as ton test qui permet de savoir dans quel cas écrire ton valide ou non valide
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.
"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 cellules
While ((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.
Concerant la déclaration false, je ne sais pas j'ai vu qu'elle était égale a 0 tout simplement.
concernant l'utilisation du TRUE et FALSE, essaye de les utiliser seulement pour des test booléen (imagine ce que ça donnerais si tu comparait une lettre à FALSE ...)
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
Désolé si je ne suis pas assez clair.