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 :

Boucle infinie [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut Boucle infinie
    Bonjour,

    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
    Private Sub Simulation_Click()
    Dim i as integer 
    'code pour le lancement des passe dans le tunel
     
    Recommencer:  If Range("B1").Value <> "" Then 'vérifie que B1 n'est pas vide
    Range("B7:T7").Value = "" 'réinitialise ton "tableau"
    i = 2 'valEUr de Ma première colonne du tableau
    Application.Wait Time + TimeSerial(0, 0, 1) 'attends 10 sec
    Do Until Range("T7") <> "" 'conditionne la boucle jusqu'à la dernière colonne de ton tableau
    If i > 2 Then Cells(7, i - 1).Value = Range("B1") 'mettre la valeur de B1 dans les cellule precedente
    Cells(7, i).Value = Range("B1").Value 'mets ta valeurs dans la cellule de ton tableau
    i = i + 1 'prochaine colonne
     
    Application.Wait Time + TimeSerial(0, 0, 1) 'attends 10 sec
    Loop
    Range("B3") = Range("B3") + Range("T7")
     
    GoTo Recommencer
     
    End If
    End Sub
    cette boucle est infinie je veux mettre un bouton sur lequel je clique et que cette boucle infinie s'arrête est ce que c'est possible ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    Bonjour,

    La boucle do Until ne m'a pas l'air infinie.
    Si j'ai bien comprit ton code, il va donner la valeur de B1 à toutes les cellules de C7 à T7.

  3. #3
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Non pas possible c'est le principe de ta boucle en même temps...

    A chaque fois qu'il fini la macro tu lui dit de retourner au départ avec ton goto

    Le seul moyen c'est de mettre une variable compteur qui s'incrémente à chacune des boucles est dit d’arrêter à un moment donner du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    compt = 1
    do until compt = 10
     
    ton code
     
    compt = compt + 1
    loop

  4. #4
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    Malheureusement Mazo sa marche pas y'a rien qui veux marcher aujourd’hui
    regarde ou j'ai mis ce que tu ma envoyer mais elle s’arrête pas
    Nom : CODE ARRET.PNG
Affichages : 1298
Taille : 32,5 KoNom : CODE ARRET.PNG
Affichages : 1298
Taille : 32,5 Ko

  5. #5
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    Comme l'a dit Al__22, c'est le Goto Recommencer qui pose problème
    Il te renvoi sans aucune condition à la ligne commençant par "Recommencer:"
    Je n'en vois d'ailleurs pas l'intérêt donc je te conseille de le virer

  6. #6
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    oui ta raison

    mais le problème si je le vire ma boucle va pas recommencer et moi je veux que une fois que T7 reçois la valeur , que la boucle recommence pour remplir B7 et ainsi de suite


  7. #7
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Citation Envoyé par bitissa1991 Voir le message
    Malheureusement Mazo sa marche pas y'a rien qui veux marcher aujourd’hui
    regarde ou j'ai mis ce que tu ma envoyer mais elle s’arrête pas
    Nom : CODE ARRET.PNG
Affichages : 1298
Taille : 32,5 KoNom : CODE ARRET.PNG
Affichages : 1298
Taille : 32,5 Ko
    Haha tu as oublié le compt = compt + 1 juste avant le goto

    Mais je suis d'accord avec MacKay, cette boucle à quoi elle te sert ?

    Citation Envoyé par bitissa1991 Voir le message
    oui ta raison

    mais le problème si je le vire ma boucle va pas recommencer et moi je veux que une fois que T7 reçois la valeur , que la boucle recommence pour remplir B7 et ainsi de suite

    En toute logique une fois que T7 est remplie B7 l'es aussi vu que tu enlève pas a valeur précédente dans ton code en déplacant le 53

  8. #8
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    Mazo est ce que je peux t'envoyer mon fichier excel pour que tu le vois c'est possible ou pas ?

  9. #9
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    B7 récupére tout le temps la valeur de B1 qui ne change pas.
    Si tu voulais parler de B3, va bien falloir que tu arrêtes de modifier sa valeur.
    Tu veux que B3 atteigne quelle valeur? Ou que la boucle s'effectue combien de fois au juste?

  10. #10
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    je peux dire que je veux Qu'il tourne jusqu’à que B3=530 :

    et regardez mon nouveau code j'ai fait des changement mais sa marche toujours pas j'arrive pas a appuyer sur le boutons stop Nom : code new.PNG
Affichages : 430
Taille : 38,6 Ko

  11. #11
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if range("B3") < 530 then
    goto Recommencer
    endif
    ou alors modifie ton do until :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do until range("T7") <> "" and range("B3") < 530
    Ca devrait marcher

  12. #12
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Citation Envoyé par bitissa1991 Voir le message
    Mazo est ce que je peux t'envoyer mon fichier excel pour que tu le vois c'est possible ou pas ?
    Oui vas y que je jette un coup d'oeil

    Citation Envoyé par bitissa1991 Voir le message
    je peux dire que je veux Qu'il tourne jusqu’à que B3=530 :

    et regardez mon nouveau code j'ai fait des changement mais sa marche toujours pas j'arrive pas a appuyer sur le boutons stop
    Toujours pareil tu lui dis jamais quand ta variable Arret deviens vrai

    MacKay elle va avoir un soucis avec ton 2e bout de code

    Ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do until range("T7") <> "" and range("B3") = 530

  13. #13
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    merci MacKay77
    mais sa marche pas est ce que je peux vous mettre mon ficher en piéce jointe svp pour le voir j'en peux plus depuis ce matin je galére avec ce problème?

    Mazo J'ai fait les deux proposition et ca marche pasCopie de boucle New f.xlsm
    voila le ficher svp regardez le et ditent moi svp

  14. #14
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Tu peux me donner l'énoncé aussi ?

    En attendant avec ce code :

    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
    Sub essaiss()
     
    If Range("B1").Value <> "" Then
    Range("B7:T7").Value = ""
     
    i = 2
    Do Until Range("T7") <> ""
    Cells(7, i).Value = Range("B1").Value
    i = i + 1
    Application.Wait Time + TimeSerial(0, 0, 1)
    Loop
     
    For i = 1 To 10
    j = 13
    Do Until Sheets(2).Cells(j, 3).Value = "" Or Sheets(2).Cells(j, 2).Value = i + 1
    If Sheets(2).Cells(j, 2).Value = i Then
    c = Sheets(2).Cells(j, 3).Value
    Set r = Sheets(2).Range("X:X").Find(c)
    Sheets(2).Cells(r.Row + 1, r.Column).Value = Sheets(2).Range("T7").Value
    End If: j = j + 1: Loop: Next i
     
    MsgBox ("Fini !")
     
    End If
     
    End Sub
    J'obtiens ceci :
    Nom : Capture.JPG
Affichages : 496
Taille : 137,8 Ko

  15. #15
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    Citation Envoyé par Al__22 Voir le message
    Toujours pareil tu lui dis jamais quand ta variable Arret deviens vrai

    MacKay elle va avoir un soucis avec ton 2e bout de code

    Ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do until range("T7") <> "" and range("B3") = 530
    Oups erreur d'inattention ^^'
    Je pensais plutôt à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do until range("T7") <> "" and range("B3") >= 530

  16. #16
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    c'est bon le problème de la boucle infinie est résolu j'ai sait un bouton stop sur lequel je clique et il m'arréte la boucle a n'importe quel moment que je voulais

  17. #17
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Ah ça c'est une bonne nouvelle

    Bonne continuation

  18. #18
    Membre confirmé

    Femme Profil pro
    étudiante
    Inscrit en
    Mars 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 123
    Billets dans le blog
    1
    Par défaut
    mercii Mazo

    Mazo c'est bon j'ai résolu mon probléme je suis trés contente merciii beaucoup

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

Discussions similaires

  1. [AC-2010] Besoin d'aide macro VBA access
    Par porruak dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/03/2012, 15h50
  2. [XL-2003] Besoin d'aide en VBA
    Par nito66 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/12/2010, 10h33
  3. besoin d'aide sur VBA d'excel
    Par taraud dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2010, 15h25
  4. Besoin d'aide en vba
    Par Grechtouille dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/02/2007, 11h07

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