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

Macros et VBA Excel Discussion :

Structure Do While loop [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut Structure Do While loop
    Bonjour

    Voilà j'ai un problème avec ma fonction Do while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Test()
    Dim i as Integer
     
    i=1
     
    Do While Worksheets("Feuil2").Range("A" & i) <> "" Or Worksheets("Feuil1").Range("B1") <> Worksheets("Feuil2").Range("A" & i)
                i = i + 1
    Loop
     
    'Après j'ai d'autres boucles, notamment un :
     
    If Worksheets("Feuil1").Range("B1") = Worksheets("Feuil2").Range("A" & i)
     
    '..etc
     
    End Sub
    Mais lorsque je lance la macro ça mouline et je suis obligé de forcer la sorti pour arréter comme si il y avait un problème dans le TantQue, qu'il n'arrivait pas à en sortir.
    Dans ma tête ça devrait faire

    SI Worksheets("Feuil2").Range("A" & i) = ""
    ALORS je sors et je vais dans la boucle SI
    OU

    SI Worksheets("Feuil1").Range("B1") Worksheets("Feuil2").Range("A" & i)
    ALORS je sors et je vais dans la boucle SI
    Peut être que ma tête et la traduction en VB n'est pas bonne...

    Une idée la dessus

    Merci beaucoup

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Tu as regardé ce que ça donne en mode pas-à-pas? Tu mets un point d'arrêt sur ton Do While, tu executes, et tu fais [F5] pour passer à la boucle suivante. Voire [F8] pour faire ligne de code par ligne de code. Pour ce genre de debuggage, c'est bien plus efficace qu'une analyse du code : on le voit marcher.

    Evidemment, il faut sauvegarder avant, des fois que la parti qui boucle soit entre deux points d'arrêt. Si ça arrive, rajoute plus de points d'arrêts. Et vois ton algo fonctionner. C'est très instructif, et on voit tout de suite ses erreurs.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Merci,

    Mais comment fais tu pour faire un point d'arret ? je ne vois pas ce que tu veux dire.
    Car en faisant F5 ça mouline sans s'arrêter !

    En faisant F8 je vous que ça ne cesse de boucler dans le do while, ça ne sort jamais !

    La question que je me pose est :
    Est ce que pour i = 1
    Worksheets("Feuil2").Range("A" & i) est bien égale Feuil2.A1 ?

    est ce que celà fonctionne correctement ?

    Merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Long
     
    i = 1
    Do While Sheets("Feuil2").Range("A" & i).Value <> "" And Sheets("Feuil2").Range("A" & i).Value <> Sheets("Feuil1").Range("B1").Value
    i = i + 1
    Loop
    MsgBox i
    La condition avec Or ne serait pas pas satisfaite. mettre un And

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 26
    Par défaut
    Merci,

    Je crois que c'est bon ça fonctionne !

    En route pour le prochain problème... Vlookup

    Merci

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

Discussions similaires

  1. Problème avec une boucle de type Do While =>Loop
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 23/09/2011, 08h53
  2. [XL-2010] Do while Loop
    Par gigalia dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/06/2011, 10h39
  3. continue; et incrementation dans une while loop !
    Par el_bacha dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2011, 01h23
  4. boucle while loop trop lente et pennible
    Par jm_force dans le forum Access
    Réponses: 3
    Dernier message: 10/08/2006, 17h36
  5. Réponses: 13
    Dernier message: 20/03/2006, 16h26

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