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 :

Éliminer doublons relatifs [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Chef d'équipe qualité
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef d'équipe qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Par défaut Éliminer doublons relatifs
    Bonjour,

    Pour la deuxième fois je me retrouve bloqué avec comme solutions plusieurs pistes mais rien de concret.

    Mon problème est une gestion de doublons relatifs. J'ai éliminé auparavant les doublons parfaits avec une macro simple.

    Je souhaite conserver le plus grand de ces doublons relatifs qui sont au préalables triés par ordre croissant.

    Exemple :

    CAENP.16.0254.BX
    CAENP.16.0254.BY
    CAENP.16.0254.BZ
    CAENP.16.0254.CA
    CAENP.16.0647.AJ
    CAENP.16.0647.AK
    CAENP.17.0004.AL
    CAENP.17.0004.AM
    CAENP.17.0004.AN
    CAENP.17.0104.AK
    CAENP.17.0104.AL
    CAENP.17.0104.AM
    CAENP.17.0104.AN

    >>> Comme pour mon premier post je souhaiterai avoir des pistes et non pas un code tout fait clé en main svp. J'aime comprendre par moi-même

    Ci-joint un extrait de mon fichier.

    Merci pour vos réponses !
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    1) je n'ai pas ouvert ton fichier (voir ma signature).
    2)
    je souhaite conserver le plus grand de ces doublons relatifs qui sont au préalables triés par ordre croissant.
    3)
    je souhaiterai avoir des pistes et non pas un code tout fait clé en main svp
    --->> parcourir donc de bas en haut (boucle for to next avec step-1)
    - comparer les 13 premiers caractères -->> tant que les mêmes -->> supprimer la ligne au-dessus
    A toi de jouer conformément à ton voeu (exprimé en 3)

    EDIT : pour ton information et t'encourager : je viens de mettre en oeuvre très exactement la méthode que j'ai exposée au-dessus. -->> sans faille
    Il est toujours possible d'envisager une autre méthode. Celle que je t'ai indiquée est toutefois totalement à la portée d'un débutant.

  3. #3
    Membre régulier
    Homme Profil pro
    Chef d'équipe qualité
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef d'équipe qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Par défaut
    Re,

    Tout d'abord merci pour la réponse !

    En revanche, j'ai tout compris mais je n'arrive pas à mettre en forme correctement le code.

    Celle que je t'ai indiquée est toutefois totalement à la portée d'un débutant.
    OMG je patouille déjà

    Voici ce que j'ai écris et je suis pas fier...je me noie dans la méthode alors que cela semble simple...

    J'ai une erreur sur la ligne 11

    Merci d’avance pour un autre aiguillage

    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
    Sub test()
     
    Dim i As Long
    Dim j As Range
    Dim depart As Long
    Dim chaine As String
     
    depart = Range("A2").End(xlDown).Row
    For i = depart To 2 Step -1
        chaine = Range("A" & i).Value
        j = Left(chaine, 13)
            If j = j Then
            j.Offset(-1, 0).EntireRow.Delete
        End If: Next
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    J'ai une erreur sur la ligne 11

    Merci d’avance pour un autre aiguillage
    Je veux bien, mais :
    1) ce ne sera pas un autre "aiguillage", mais celui que j'avais défini
    2) et ce sera alors forcément du tout-cuit, hein ...
    Bref --->> Voilà la "chose" --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim fin As Long, toto As String, i As Long
      Application.ScreenUpdating = False
      fin = Range("A" & Rows.Count).End(xlUp).Row
      toto = Left(Range("A13").Value, 13)
      For i = fin To 2 Step -1
        If Left(Range("A" & i - 1).Value, 13) = toto Then
          Rows(i - 1).EntireRow.Delete
        Else
          toto = Left(Range("A" & i - 1).Value, 13)
        End If
      Next
      Application.ScreenUpdating = False

  5. #5
    Membre régulier
    Homme Profil pro
    Chef d'équipe qualité
    Inscrit en
    Mai 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef d'équipe qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 7
    Par défaut
    Re,

    ce sera alors forcément du tout-cuit, hein ...
    Oui si on maîtrise les différentes procédures, mais je suis encore un petit débutant.

    Merci encore pour cet aiguillage

    J'ai compris le code c'est le principal, bon fin de week-end

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/01/2012, 18h38
  2. Eradication doublons relatifs et optimisation table
    Par boby67 dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/06/2007, 02h04
  3. REQUETE : élimination des doublons relatifs
    Par Fejitatete dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/06/2007, 13h42
  4. rechercher et éliminer doublons dans table
    Par patbeautifulday1 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/05/2007, 10h27
  5. [VBA]performance de combinaison,tri et élimination doublons
    Par tangjuncn dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/03/2007, 23h52

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