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

Excel Discussion :

Suppression en fonction du nombre de taches restantes [XL-2003]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 59
    Par défaut Suppression en fonction du nombre de taches restantes
    Bonjour,

    Pour un filtrage de doublon j'aimerais supprimer les données les moins récentes.
    J'ai un tableau qui comporte une colonne N° de série et une Avancement réparation (taches restantes à effectuer).
    Ca ressemble à ca :
    001 / 3
    001 / 1
    002 / 2
    002 / 2
    003 / 4
    003 / 3

    Dans mon code VBA, pour le filtrage et la suppression des doublons, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne = 7
    Do While Cells(ligne, rColInter) <> ""
    If Cells(ligne, rColInter) = Cells(ligne + 1, rColInter) Then Rows(ligne).Delete
    Mais j'aimerais rajouter le code qui permet de dire : Supprimer le doublon qui a le nb de taches restantes le plus grand (par exemple sur le N°001, supprimer la ligne avec 001 / 3).

    Avez-vous une idée de comment je pourrais m'y prendre ? svp

    Merci d'avance !

  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,

    l'idée serait de trier les deux colonnes puis de remonter de la dernière ligne du tableau
    en comparant la colonne A avec la ligne précédente pour la supprimer si égalité …

    A lire …

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Avant de lancer ta recherche de doublons, commence par faire un tri sur tes données pour être sûr que les doublons sont des lignes successives.

    Un piège à éviter : quand tu scrutes tes lignes, si tu trouves un doublon et que tu supprimes la ligne, n'incrémente pas ta variable qui désigne la ligne, sinon tu va sauter des lignes.

  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

    Exemple dans la discussion supprimer doublon sous condition parmi d'autres …

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 59
    Par défaut
    Je suis sur une piste. Il me reste pas grand chose pour y arriver.

    Pour l'instant j'ai trié mes données en ordre décroissant puis j'ai commencé le code pour qu'il me supprime les lignes avec un état d'avancement le plus grand.

    Ca ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lig = 8
    Do While Cells(lig, rColInter) <> ""
    
       If Cells(lig, rColInter) = Cells(lig + 1, rColInter) Then Rows(lig).Delete
      
    lig = lig + 1
    Loop
    Par contre l'écriture rouge ci-dessus me pose problème. Quand je lance le code, il saute des lignes.... Et je n'arrive pas à trouver une solution.

    Est-ce que vous avez une idée pour résoudre ce problème ?

    Merci pour vos réponses !

  6. #6
    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

    Cette ligne ne veut rien dire ! Il faut inclure l'incrémentation du compteur dans les If précédents (si logique bonne) …

    Mais via une boucle en remontant de la dernière ligne il n'y en aurait pas besoin comme dans mon code en lien …

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne comprends pas pourquoi tu as mis deux de test en ajoutant des conditions opposées dans la seconde partie du AND.
    Je na sais pas exactement ce que tu veux faire mais je doute que ce soit bon.

    Tu pourrais expliquer ?

    Une chose est sûre en tout cas, ta ligne rouge ne convient pas du tout.
    Pour que ça marche, il faudrait que ton Ligne = Ligne + 1 soit dans le "else" du "if" qui définit ta condition pour supprimer une ligne.
    Mais il faudrait que tu répondes à ma question pour que je puisse te donner le bon code.

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

Discussions similaires

  1. Suppression de digit en fonction du nombre de digit dans le code
    Par stefanem dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 13/11/2012, 09h11
  2. Réponses: 8
    Dernier message: 08/06/2006, 17h05
  3. Réponses: 9
    Dernier message: 30/03/2006, 16h44
  4. Calculer le nombre de jours restants
    Par localhost dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/01/2006, 17h31
  5. Réponses: 4
    Dernier message: 31/10/2005, 17h48

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