IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Arrêt d'une boucle "if"


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 137
    Points : 74
    Points
    74
    Par défaut Arrêt d'une boucle "if"
    J'ai un problème en VBA, dans la lecture d'un fichier excel qui contient les données.
    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 16 To 50
     
                     If wbExcel.ActiveSheet.Cells(7, i) = Current Then
     
                         Exit For
                     End If
     
                 Next
    Mon interrogation est :
    La boucle for s'arrête-t-elle quand le test d'égalité est vérifié ? Parce que je voudrais juste sauvegarder la position, c'est pour ça que il n'y a rien après le "then". Est ce que la logique est valide ?

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut Re: Arrêt d'une boucle "if"
    Citation Envoyé par Aurèl90
    La boucle for s'arrête-t-elle quand le test d'égalité est vérifié ? Parce que je voudrais juste sauvegarder la position, c'est pour ça que il n'y a rien après le "then". Est ce que la logique est valide ?
    Pour moi, tu n'as pas "rien" après le then, mais tu as Exit For .
    Pour savoir si la boucle s'arrête, travaille avec une Msgbox qui te renvoit "i".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For i = 16 To 50 
     
                     If wbExcel.ActiveSheet.Cells(7, i) = Current Then 
                         MsgBox i
                         Exit For 
                     End If 
     
                 Next i
    et tu verifies avec la réalité, une fois la phase de conception bonne, tu peux supprimer la MsgBox.

    De plus pourquoi ne pas aussi insérer dans ta boucle, l'enregistrement de la position

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Bonjour !

    c'est la même chose que

    For i = 16 to i = 50

    Mais si tu n'ai pas convaincu, tu peux essayer ce que t'expliquai Aurel90.

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 137
    Points : 74
    Points
    74
    Par défaut
    Sisi, je suis convaincu ; j'avais compris car pour moi, ça marchait comme ça

    Je vais essayer l'idée de la msgbox.

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 137
    Points : 74
    Points
    74
    Par défaut
    Je viens d'essayer et le "Exit for" permet effectivement de sortir de la boucle et donc l'incrémentation de i s'arrête.
    Mais alors, mon pb ne vient pas de là !

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    au fait je crois que je n'ai pas saisi ton problème

    Tu voulais sortir de la boucle, et ça marche

    Donc ton problème vient plutôt de la méthode que tu utilises pour sauvegarder ta position je pense. Ou plutôt du fait que tu ne sauvegardes pas dans une variable ta position, ce qui fait que tu perds ton "i".

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 137
    Points : 74
    Points
    74
    Par défaut
    Sisi je sauvegarde bien la position dans la suite du code. J'avais juste un doute sur le fait que la boucle s'arrête quand le if est vérifié et maintenant, c'est bon !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LabVIEW 8.6] Arrêt d'une boucle for
    Par zohariel dans le forum LabVIEW
    Réponses: 6
    Dernier message: 29/07/2009, 12h41
  2. [LabVIEW 8.2][Débutant] Arrêt d'une boucle
    Par ptit_knard dans le forum LabVIEW
    Réponses: 4
    Dernier message: 04/12/2008, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo