Posez votre question Signaler

[VBA] Boucle While

modjibe 41Messages postés 20 juillet 2007Date d'inscription - Dernière réponse le 1 aoû 2007 à 15:28
Bonjour,
Je ne comprends pas pourquoi ma boucle plante.
Voilà la condition :
Do While a > b And Left(cellExcel.Value, 5) <> "Total"
Au niveau logique le And me choque mais ca ne marche pas avec un Or (les conditions ne peuvent pas être vraies en même temps....).
Cette boucle parcourt les lignes d'un tableau à la recherche de "Total". En passant dessus ça ne s'arrête pas et ça plante puisque à l'intérieur de ma boucle je traite la valeur cellExcel.Value en partant du principe que c'est un entier. Alors voilà ...
Y'a -t-il des choses à savoir ? J'ai essayé en séparant mes blocs par des parenthèses etc mais ça ne marche pas. C'est mon dernier bug avant que mon petit programme soit exploitable...
Lire la suite 

[VBA] Boucle While »

4 réponses
Réponse
+3
moins plus
Bonjour,

chez moi, de cette façon, le [And] et le [Or] fonctionne !

Option Explicit

Sub Test()

    Dim cellExcel As Range
    Dim a As Long, b As Long

    Set cellExcel = Range("A1")

    a = 10: b = 5
    While ((a > b) Or (Left(cellExcel.Value, 5) <> "Total"))
        '...
        DoEvents
        a = (a - 1)
        ActiveCell.Offset(1, 0).Select
        Set cellExcel = ActiveCell
    Wend
    
    Set cellExcel = Nothing
    
End Sub
'

Sub Test2()

    Dim cellExcel As Range
    Dim a As Long, b As Long

    Range("A1").Select
    Set cellExcel = ActiveCell

    a = 7: b = 5
    While ((a > b) And (Left(cellExcel.Value, 5) <> "Total"))
        '...
        DoEvents
        a = (a - 1)
        ActiveCell.Offset(1, 0).Select
        Set cellExcel = ActiveCell
    Wend
    
    Set cellExcel = Nothing
    
End Sub
'

Lupin
modjibe - 1 aoû 2007 à 12:16
Bon ben je vais parenthéser à mort alors :)
Ajouter un commentaire
Réponse
+0
moins plus
Chez moi ça ne marche pas, il me fait une boucle alors que :

a = 612
b = 611
Left(cellExcel.Value,5) = "Total"

Je comprends pas ...
Ajouter un commentaire
Réponse
+0
moins plus
re:

As-tu utilisé la version [ And ] ou la version [ Or ] ( Test ou Test2 ) ?

Lupin
Ajouter un commentaire
Ce document intitulé « [VBA] Boucle While » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?