Boucle Do while qui ne marche pas
tomethod
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
vordano Messages postés 1685 Date d'inscription Statut Membre Dernière intervention -
vordano Messages postés 1685 Date d'inscription Statut Membre Dernière intervention -
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
- My people do - Télécharger - Organisation
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- Smart tv qui s'allume et s'éteint en boucle - Forum Téléviseurs
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 ???
d'ailleur pourquoi tu as mis cells(ligne,1)=FALSE au lieu de 0 comme dans ton commentaire ???
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.