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 :

Pb avec une boucle For - Next [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Points : 98
    Points
    98
    Par défaut Pb avec une boucle For - Next
    Bonjour à tous,
    Je bloque sur une boucle For.
    Lorsque je lance la macro, le code VBA bloque sur ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 401 To 2 Step -1 ' Boucle de recherche sur les 400 premières lignes de la feuille
            If Cells(i, 1).Value = "" Then Cells(i, 1).EntireRow.Delete ' Si la 1ère colonne de la ligne sélectionnée est vide, la ligne est supprimée)
        Next
    La macro tourne en boucle et je suis obligé de stopper la macro à la main.
    Quelqu'un peut-il me dire d'où peut venir le problème ?
    Merci par avance.
    Cynoq

  2. #2
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Cynoq,

    Juste deux questions :

    • As-tu pu observer ce qui est sélectionné après que t'as première ligne soit supprimée ?
    • Arrives-tu à supprimer au moins une ligne avec ta macro ?



  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Points : 98
    Points
    98
    Par défaut
    Petite correction,
    je viens de faire un test en modifiant la quantité de lignes à traiter.
    Verdict :
    - la macro, au ralenti mais elle tourne
    - il ne me supprime pas forcément les lignes où la première colonne est vide

    Le plus étrange est que cette même macro, sans aucune modification majeure, fonctionnait encore très bien ce matin.

    Je cale complètement...

    Je viens d'ajouter des MsgBox() dans la boucle, j'ai bien une reprise ligne par ligne, les lignes avec une première cellule vide sont supprimées.
    Cynoq

  4. #4
    Membre régulier
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Points : 95
    Points
    95
    Par défaut
    Ca fonctionne comme tu veux alors ?

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    A priori, le problème ne vient pas de ta macro.
    N’as-tu pas placé un événement dans ton code (Worksheet_Change par exemple) ?

    Si tu exécute ton code en mode pas à pas, tu dois pouvoir constater ce qui se produit réellement.

    Cordialement.

  6. #6
    Expert éminent
    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 : 66
    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
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut suppression lignes
    Bonjour à vous deux,

    Si je peux me permettre d'intervenir, je dirais que la méthode qui consiste à balayer les cellules pour effectuer une action ne doit être qu'un dernier recours.

    Pour une meilleure efficacité, mieux vaut privilégier les 2 méthodes et .

    Soit ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2:A401").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  7. #7
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Points : 98
    Points
    98
    Par défaut
    Merci à tous pour votre aide, j'ai repris quelques remarques pour améliorer mon code

    Pour mon problème de lenteur, il venait de la recopie d'une formule dans une feuille. J'ai changé la méthode et tout va nettement mieux
    Cynoq

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/01/2007, 12h30
  2. Structure while avec une boucle for en test
    Par le_voisin dans le forum C++
    Réponses: 9
    Dernier message: 09/09/2006, 19h16
  3. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50
  4. Incrémentation dynamique d'un textbox avec une boucle for
    Par Etanne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2006, 15h17
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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