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 :

Supprimer lignes si doublons dans 2 colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut Supprimer lignes si doublons dans 2 colonnes
    Bonjour,

    Cette macro efface les lignes à chaque fois qu'est détecté des doublons dans la colonne C.


    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
    20
     
    Sub supprimeDoublons()
    MaCellule = ("C2")
    Range(MaCellule).Select
    ActiveCell.CurrentRegion.Sort Key1:=Range(MaCellule), Order1:=xlAscending, Header:=xlYes
    donnee1 = ActiveCell
    ActiveCell.Offset(1, 0).Select
     
    While ActiveCell <> ""
    If ActiveCell = donnee1 Then
    ActiveCell.EntireRow.Delete
    ActiveCell.Offset(-1, 0).Select
    donnee1 = ActiveCell
    ActiveCell.Offset(1, 0).Select
    Else
    donnee1 = ActiveCell
    ActiveCell.Offset(1, 0).Select
    End If
    Wend
    End Sub
    J'aimerai adapter cette macro pour qu'elle efface une des 2 lignes si et seulement si elle trouve 2 doublons dans la colonne C ET la colonne F de 2 lignes différentes.

    Merci de votre aide.

  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,

    le brouillard se dissiperait avec un exemple clair & précis …



  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut
    A       B           C        D         E            F
    batch   20/06/2013   215    1014       12      en_cours
    batch   21/06/2013   220    8824       10      en_erreur
    batch   27/06/2013   215    8339       11      en_cours
    Ici la ligne 4 doit être supprimée car il y a doublon à la fois dans la colonne C (215) et F (en_cours)

  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
    Le tableau est déjà au préalable trié par ordre chronologique ?

    C'est à dire la ligne la plus ancienne doit être conservée en cas de doublon ?


    __________________________________________________________________________________________
    Les seins des femmes sont la preuve qu'un homme peut se concentrer sur deux choses à la fois !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 157
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Le tableau est déjà au préalable trié par ordre chronologique ?

    C'est à dire la ligne la plus ancienne doit être conservée en cas de doublon ?


    __________________________________________________________________________________________
    Les seins des femmes sont la preuve qu'un homme peut se concentrer sur deux choses à la fois !
    Oui
    Merci encore pour ton aide.

  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
    J'utilise aussi une collection ou un dictionnaire, notamment lors d'importation de fichiers,
    mais comme dans ce cas les données se trouvent déjà dans une feuille,
    la procédure requise étant de niveau débutant, ne voulant par faire doublon () avec le lien ci-dessus de Patrick,
    je reste sur une approche classique et ce, sans aucun affreux Select ! …
    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 ElimineDoublons()
        With [A1].CurrentRegion
            If .Rows.Count < 3 Or .Columns.Count < 6 Then Exit Sub
            Application.ScreenUpdating = False
            .Sort .Cells(3), xlAscending, .Cells(6), , xlAscending, _
                  .Cells(2), xlAscending, Header:=xlYes
     
            For R& = .Rows.Count To 3 Step -1
                If .Cells(R, 3) = .Cells(R - 1, 3) And .Cells(R, 6) = .Cells(R - 1, 6) Then _
                    .Rows(R).Delete
            Next
     
            Application.ScreenUpdating = True
        End With
    End Sub

    S'il n'y a pas de titre de colonne, remplacer dans la ligne n°2 A1 par A2,

    dans les lignes n°3 & 8 la valeur 3 par 2 et dans la ligne n°6 xlYes par xlNo

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    __________________________________________________________________________________________
    Quand une femme offre son soutien, est-ce par sein-pathie ?!

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    selon ta version d'excel 2007 et plus la methode remove duplicate peut faire l'affaire

    pour les autres
    regarde un peu par la tu peut t'en inspirer

    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [Toutes versions] Trier sans doublon dans les colonnes et les lignes
    Par jbchb dans le forum Excel
    Réponses: 2
    Dernier message: 16/11/2014, 12h06
  2. [XL-2007] Supprimer une series de 21 lignes contenant "x" dans la colonne A
    Par Vdk_sven dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/10/2014, 14h32
  3. Supprimer les doublons dans une colonne avec condition
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2012, 18h58
  4. [MySQL] Supprimer les doublons dans une colonne PHP lors de l'affichage
    Par Gazell dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/08/2011, 11h41
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56

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