1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 15
    Points : 11
    Points
    11

    Par défaut Supprimer lignes sous condition

    Bonjour,

    Je souhaiterais supprimer des lignes avec une condition.
    Les lignes que je dois supprimer appartiennent à un sous ensemble en colonne 1 et les numeros d'articles se trouvent en colonne 2.

    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
     
     
    I = 6
    Y = ActiveCell.Select - 1
     
    For I = 6 To Range("B100000").End(xlUp).Row Step 1
     
        If Range("B" & I).Value = 205632 Then
     
            For Y = ActiveCell.Select - 1 To Range("B100000").End(xlUp).Row Step 1
     
             Do While Range("A" & I).Value <> 3
             ActiveCell.EntireRow.Delete
             Loop
     
            Next Y
     
        End If
    Next
    Je veux lui dire "tant qu'il ne trouve pas d'autre "3" dans la colonne 1, qu'il supprime toutes les lignes à partir de l'article 205632."
    Et qu'il continue, et s'il retrouve un 205632 qu'il recommence.

    Ca peut paraître simple, mais étant débutant j'ai un peu de mal.

    Si quelqu'un peut m'aider

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 730
    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 : 8 730
    Points : 17 358
    Points
    17 358

    Par défaut


    Bonjour !

    Que vaut la variable Y ?
    Et ligne de code n°13, es-tu sûr que c'est depuis ActiveCell qu'il faille supprimer la ligne ?!

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

  3. #3
    Membre émérite
    Homme Profil pro
    Responsable des études
    Inscrit en
    juillet 2014
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2014
    Messages : 1 225
    Points : 2 311
    Points
    2 311

    Par défaut

    Bonjour,

    Pour supprimer correctement des lignes dans une boucle il faut boucler "à l'envers" (for i = fin to 1 step -1) sinon tu risque de sauter des lignes.
    Exemple: d'après un critère les ligne 3 et 4 doivent être supprimer, si tu suprime la ligne 3 la 4 est automatiquement décaler en 3 et passe a travers ta boucle.

    Je ne comprends pas ceci: Y = ActiveCell.Select - 1, cellule - 1?

    Plutot que supprimer ligne par ligne, il est souvent plus simple et toujours plus rapide de faire un filtre et tout supprimer d'un coup.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 15
    Points : 11
    Points
    11

    Par défaut

    Bonjour Marc,

    La variable Y correpondrait à l'article se trouvant en dessous du 205632, car cet article possèdant un "3" en colonne 1, je me suis dis que la macro n'effacerait que cette ligne puisque dans le While elle aurait trouvé le 3 tout de suite.

    Il faudrait supprimer chaque ligne qui ne possède pas de 3 en colonne 1, je pensais donc que la macro supprimerait la ligne s'il n'y a pas de 3.

    En bref, j'ai bidouillé, j'ai pas trouvé

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 730
    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 : 8 730
    Points : 17 358
    Points
    17 358

    Par défaut


    En dehors d'un filtre normal ou avancé, sans besoin de boucle - trop lent - j'utiliserais la méthode Find
    pour trouver la première ligne de l'article puis toujours via cette méthode la première ligne à partir
    de cet article égale à 3, délimitant ainsi le bloc de lignes à supprimer donc en une seule instruction !
    Mais selon la présentation initiale pas assez détaillée à mon goût ma préférence est le filtre avancé …
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 15
    Points : 11
    Points
    11

    Par défaut

    La méthode find m'intéresse mais je ne sais pas l'utiliser.

    Pour rappel, je dois supprimer un article parent "205632" qui constitue lui même en sous ensemble 3. Je souhaite supprimer tout les articles appartenants à ce parent. C'est à dire tout ceux qui comporte une nomenclature supérieure à 3 (en colonne 1) après ce même article.
    Enfin il faut qu'il arrête de supprimer lorsque il trouve un autre 3, car c'est un autre article parent.

    3| 205632 Delete
    4| 205700 Delete
    4| 205701 Delete
    5| 205702 Delete
    3 206...

    J'espère avoir été plus clair...

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 730
    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 : 8 730
    Points : 17 358
    Points
    17 358

    Par défaut





    Le 3 a-t-il réellement une importance ?   Et supprimer tous les articles 205632, non ?
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 15
    Points : 11
    Points
    11

    Par défaut

    Voir modif précédent commentaire pardon. Chaque article à un numero différent les seuls liens entre eux sont l'appartenance ou non à l'article parent

  9. #9
    Membre éclairé
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    décembre 2013
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2013
    Messages : 605
    Points : 834
    Points
    834

    Par défaut

    Bonsoir
    j'ai pas compris ta requête, un petit capture écran du tableau actuelle et un petit tableau du résultat attendu
    avec données fictives ça sera bien attendu

    Bonne continuation
    n'est pas d'où vous venez qui compte, mais où vous allez.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 15
    Points : 11
    Points
    11

    Par défaut

    Nom : Capture2.PNG
Affichages : 121
Taille : 10,2 Ko

    Dans cet exemple, supprimer les articles en jaune

  11. #11
    Membre éclairé
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    décembre 2013
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2013
    Messages : 605
    Points : 834
    Points
    834

    Par défaut

    bonsoir
    et pourquoi que les jaunes?? c'est quoi le caractère de sélection?? est ce que c'est parce que les 4 premiers chiffre sont identique??
    explique stp
    n'est pas d'où vous venez qui compte, mais où vous allez.

  12. #12
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 730
    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 : 8 730
    Points : 17 358
    Points
    17 358

    Par défaut


    Donc via Find recherche dans la deuxième colonne l'article puis à partir de cet article dans la première colonne
    recherche de la valeur 3 puis suppression en une unique instruction du bloc de lignes …

    En effectuant déjà les recherches et la suppression manuellement après avoir activé l'Enregistreur de macro
    une base de code est livrée sur un plateau !   Sans compter l'aide VBA de la méthode Find et son exemple détaillé …
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Discussions similaires

  1. [XL-2013] Copier coller supprimer ligne sous condition
    Par nubed dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/04/2015, 12h09
  2. [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, 10h09
  3. Supprimer lignes sous condition
    Par andrea0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/05/2011, 10h52
  4. Réponses: 4
    Dernier message: 11/10/2010, 17h43
  5. supprimer lignes sous conditions
    Par mehdi.017 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2010, 03h42

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