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 code vba pour supprimer plusieurs lignes


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut pb code vba pour supprimer plusieurs lignes
    Bonjour,

    Je souhaite créer une macro qui me permettra de supprimer toutes les lignes de la colonne I ("I2:I2960") dont la valeur de la cellule est comprise entre 0 et 249.
    j’ai rédigé un code , mail il ne marche pas.

    Pouvez –vous me trouver une solution svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub cheh3()
    Dim mycount  As Range
    Dim I As Integer
    For Each mycount In Range("I2:I2960")
    If mycount.Value < 250 Then Rows(I).Delete
    Next mycount
    End Sub

  2. #2
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    merci d'utiliser l'icône # dévolue au code !
    Citation Envoyé par worfabs75 Voir le message
    j’ai rédigé un code , mail il ne marche pas.
    ? Mais encore ?!
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    essayes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("Feuil1") 'à adapter
      For I = 2960 To 2 Step -1
        If .Range("I" & I) < 250 Then .Rows(I).Delete
      Next I
    End With
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par casefayere Voir le message
    Bonjour,
    essayes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Sheets("Feuil1") 'à adapter
      For I = 2960 To 2 Step -1
        If .Range("I" & I) < 250 Then .Rows(I).Delete
      Next I
    End With
    merci

  5. #5
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    La clef de la solution de casefayere, c'est de partir par la fin. Tout simplement parceque quand une boucle fait des suppressions(ou insertions), le compteur de lignes n'est pas fiable si on part du début.

    Exemple : en ligne 8, je dois supprimer.

    Si je pars du début, je supprime la ligne 8, et mon compteur est alors à 9.Mais en ligne 9 se trouve alors l'ancienne ligne 10. Si la ligne 9 était à supprimer, je suis chocolat.

    Si je pars de la fin, je trouve la ligne 9 à supprimer, je la dézingue, ça décale tout ce qu'il ya derrière, mais c'est pas grave : c'est déjà traité. Puis, je règle son compte à la ligne 8.


    Faire des delete sur un for each, c'est encore plus casse-gueule : on a même pas de compteur pour savoir ou on en est. Modifier le périmètre en cours de for each, c'est, euh, risqué. Très risqué.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour à tou(te)s, worfabs75, el_slapper

    A el_slapper : + 1 ()pour les explications données à worfabs75 mais il avait certainement compris vu son dernier post #4
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    merci pour toutes ces réponses

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

Discussions similaires

  1. [PPT-2007] Macro VBA pour supprimer plusieurs liens hypertextes en même temps
    Par thp67 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 28/10/2014, 18h23
  2. Réponses: 0
    Dernier message: 28/10/2014, 15h13
  3. pb code vba pour supprimer plusieur lignes
    Par worfabs75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/10/2013, 12h01
  4. [Débutant] Button pour supprimer plusieurs lignes à la fois dans Datagridview
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/01/2013, 18h55
  5. [XL-2007] Code VBA pour supprimer des lignes sous condition - problème
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2011, 09h09

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