KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Samedi 17 mai 2008 - 18:14:31

[VBA] Boucle While

Rechercher : dans
[VBA] Boucle While
par modjibe
 Fil de Discussions
Statut : Non résolu
mardi 31 juillet 2007 à 15:29:43
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...
Configuration: Windows XP
Internet Explorer 7.0
Répondre à modjibe  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Lupin.A, le mardi 31 juillet 2007 à 22:23:05 Fil de Discussions
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
Répondre à Lupin.A

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par modjibe, le mercredi 1 août 2007 à 12:16:46 Fil de Discussions
Bon ben je vais parenthéser à mort alors :)
Répondre à modjibe

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par modjibe, le mercredi 1 août 2007 à 12:35:32 Fil de Discussions
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 ...
Répondre à modjibe

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Lupin.A, le mercredi 1 août 2007 à 15:28:28 Fil de Discussions 
re:

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

Lupin
Répondre à Lupin.A
Discussions pertinentes trouvées dans le forum
28/12 21h21[VBA] Boucle "do while not" et appel recProgrammation28/12 21h402
03/03 19h05Algorithme d'une factorielle - boucle whileProgrammation14/05 15h2311
21/11 18h31[VBA] + boucle simpleProgrammation21/11 21h361
14/02 11h54[Bash] Boucle while - export variableProgrammation15/02 07h453
Plus de discussions sur « [VBA] Boucle While » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide