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 de boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Par défaut Problème de boucle
    Bonjour,

    Voici mon 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
        For compteur = 4 To jmax
            If Sheets("Outil").Cells(compteur, 18).Value = 0 Then
                Rows(compteur).Delete
                   j = 3
                    jmax = 1
     
                    While Sheets("Outil").Cells(j, 1).Value <> ""
                         j = j + 1
                         jmax = j
                    Wend
     
                    jmax = jmax - 1
                    compteur = 4
     
            End If
        Next
    Le problème c'est quelle tourne en continue.
    Exemple concret. Mon jmax, après la dernière suppression de ligne est jmax = 50. Pourquoi mon compteur va jusque 51.

    Je ne comprends absolument pas.

    Je vous remercie d'avance pour vos réponses

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour, bonjour !

    La valeur de fin est figée lors de l'appel de la boucle, modifier une variable ne change pas cette valeur !

    Logique à revoir …

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Par défaut
    D'accord, j'ai pas trop compris ta réponse lol. As tu une solution?

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Ligne n°1 : la valeur de la variable jmax de la fin de boucle est figée, B-A-BA des boucles, lire donc l'aide VBA …

    Lors de suppression de lignes, il faut boucler de la dernière ligne en remontant à la première, question de pure logique !

    Si un code ne fonctionne pas, c'est quasiment toujours à cause d'une erreur de conception,
    inutile donc de perdre du temps à le traduire !

    Mieux vaut donc laisser le demandeur exposer clairement sa problématique …


    _________________________________________________________________________________________________
    Un problème sans solution est un problème mal posé. (Albert Einstein)

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Boucle
    Bonjour le Forum,

    Je prends la discussion en cours.

    Comme l'indique Marc-L, le prolème réside dans la logique des actions.

    En effet, tes numéros de ligne se répètent.
    Si tu supprimes la ligne 52, alors la ligne 53 devient 52, etc...

    C(est la raison pour aquelle, lorsqu'il y a suppression, il faut boucler non pas de la valeur minimale à la valeur maximale,
    mais l'inverse, soit de la valeur minimale à la valeur maximale
    Autrement dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For compteur = jmax to 4
    Ce processus te servira à épurer ton code.

    Bonne journée.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Par défaut
    Merci pour vos réponse ça marche...

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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