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 :

Problème avec la boucle "Do-Loop Until"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut Problème avec la boucle "Do-Loop Until"
    Bonjour!

    Je vous expose mon problème. Lorsque sup20= vbNo, ou sup21=vbNo, le programme s'arrete au lieu de reprendre la boucle. Pouvez-vous me dire pourquoi, merci d'avance.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Private Sub CommandButton1_Click()
    Dim sup2
    sup2 = InputBox("entrer le nom du commercial attitré")
     
    Do
     
    If sup2 = "Zielyk Daniel" Then
     
    'on commence par remplir les heures d'éric
    Dim sup16
    sup16 = MsgBox("voulez-vous remplir les heures d'Eric Lastennet?", vbYesNo + vbDefaultButton1 + vbQuestion)
    If sup16 = vbYes Then
    Cells(10, 4) = InputBox("saisir le nombre d'heures d'étude de temps effectuées")
    Cells(11, 4) = InputBox("saisir le nombre d'heures de démonstrations effectuées")
    Cells(12, 4) = InputBox("saisir le nombre d'heures de support technique effectuées")
    Cells(14, 4) = InputBox("saisir le nombre d'heures d'applications effectuées")
    Cells(15, 4) = InputBox("saisir le nombre d'heures d'exposition effectuées")
    Cells(16, 4) = InputBox("saisir le nombre d'heures d'installation effectuées")
    Cells(17, 4) = InputBox("saisir le nombre d'heures de show room maitenance effectuées")
    Cells(19, 4) = InputBox("saisir le nombre d'heures de permanence téléphonique effectuées")
    Cells(20, 4) = InputBox("saisir le nombre d'heures de traduction effectuées")
    Cells(21, 4) = InputBox("saisir le nombre d'heures de SAV effectuées")
    Cells(22, 4) = InputBox("saisir le nombre d'heures de Formation clients effectuées")
    Cells(23, 4) = InputBox("saisir le nombre d'heures de Formation du personnel effectuées")
    Cells(24, 4) = InputBox("saisir le nombre d'heures de Réception clefs-en-main effectuées")
    Cells(26, 4) = InputBox("saisir le nombre d'heures de Formation professionnelle effectuées")
    End If
     
    'si on ne veut pas remplir les heures d'éric, alors on remplit les heures de fabrice
    If sup16 = vbNo Then
     Dim sup17
     sup17 = MsgBox("voulez-vous remplir les heures d'Fabrice Crassin?", vbYesNo + vbDefaultButton1 + vbQuestion)
     If sup17 = vbYes Then
      Cells(10, 13) = InputBox("saisir le nombre d'heures d'étude de temps effectuées")
      Cells(11, 13) = InputBox("saisir le nombre d'heures de démonstrations effectuées")
      Cells(12, 13) = InputBox("saisir le nombre d'heures de support technique effectuées")
      Cells(14, 13) = InputBox("saisir le nombre d'heures d'applications effectuées")
      Cells(15, 13) = InputBox("saisir le nombre d'heures d'exposition effectuées")
      Cells(16, 13) = InputBox("saisir le nombre d'heures d'installation effectuées")
      Cells(17, 13) = InputBox("saisir le nombre d'heures de show room maitenance effectuées")
      Cells(19, 13) = InputBox("saisir le nombre d'heures de permanence téléphonique effectuées")
      Cells(20, 13) = InputBox("saisir le nombre d'heures de traduction effectuées")
      Cells(21, 13) = InputBox("saisir le nombre d'heures de SAV effectuées")
      Cells(22, 13) = InputBox("saisir le nombre d'heures de Formation clients effectuées")
      Cells(23, 13) = InputBox("saisir le nombre d'heures de Formation du personnel effectuées")
      Cells(24, 13) = InputBox("saisir le nombre d'heures de Réception clefs-en-main effectuées")
      Cells(26, 13) = InputBox("saisir le nombre d'heures de Formation professionnelle effectuées")
      Dim sup21
    sup21 = MsgBox("voulez-vous arréter de remplir la fiche horraire?", vbYesNo + vbDefaultButton1 + vbQuestion)
     If sup21 = vbYes Then
      Exit Sub
     End If
     End If
     
    End If
     
    End If
     
    If sup17 = vbNo Then
    Dim sup20
    sup20 = MsgBox("voulez-vous arréter de remplir la fiche horraire?", vbYesNo + vbDefaultButton1 + vbQuestion)
     If sup20 = vbYes Then
      Exit Sub
     End If
    End If
     
    Loop Until sup20 = vbNo Or sup21 = vbNo
     
    End Sub

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Pour ton problème,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop Until sup20 = vbNo Or sup21 = vbNo
    Ca te met sur la voie ?

    Cette ligne veut dire que ta boucle continue tant que sup20 <> vbNo ou sup21 <> vbNo. Dans le cas contraire, ben fin de la procédure...

    Bonne continuation.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut
    hump désolé je ne suis encore que débutant dans toutes sortes de programmations, donc non ça ne me met pas sur la voie ... tu pourrais m'expliquer un peu mieux stp ??

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Until sup20 = vbNo Or sup21 = vbNo
    et laisse juste le et vois ce que ça donne.

    En gros, tu as une condition de sortie de ta boucle qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Until sup20 = vbNo Or sup21 = vbNo
    Lorsque c'est le cas, le programme quitte la boucle tout simplement et s'arrête donc puisque c'est la fin.

    Et vu ton code, lorsque tu arrives à sup20 et sup21, peu importe ta réponse, le programme s'arrête.

    En gros, laisse juste le Loop et ça devrait marcher

    Tiens moi au courant (et ne m'électrocute pas... Oula, la fin de journée est rude )

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 43
    Par défaut
    je viens de tester ta solution, malheureusement, cela ne marche pas il m'affiche :
    Erreur de compilation:
    Attendu: While ou Until ou fin d'instruction

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Ah oui, en effet, c'est ma faute J'avais oublié

    Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop Until sup20 = "HiHi" Or sup21 = "HoHo"
    On risque pas de sortir de la boucle comme ça

    Après, c'est pas la bonne méthode mais j'ai pas envie de tout changer Si quelqu'un veut prendre ça

+ 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. Problème avec une boucle Do.. Loop Until
    Par gta126 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/12/2007, 11h27
  3. [MySQL] Problème avec une boucle
    Par yayacameleon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/03/2006, 09h53
  4. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

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