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 :

Garder les lignes uniques [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut Garder les lignes uniques
    Bonjour à tous,

    je sais comment supprimer les colonnes en double sur excel (facile ) par contre je ne sais pas comment conserver toutes les données qui ne sont pas en double.

    En gros j'aimerais supprimer tout ce qui est double et même l'original afin de ne garder que les lignes qui ne sont pas en double.

    Merci d'avance pour votre aide.

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour,

    J'ai déjà utiliser le code suivant. Dans ta feuille1, tu as ta liste et le code vérifie ici trois colonnes et supprime tout ce qui est identique et le copie dans la feuille résultat

    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
    21
    22
    23
    24
    Sub SupDoublons()
      Application.ScreenUpdating = False
      Set f1 = Sheets("feuil1")
      a = f1.Range("A1").CurrentRegion.Value
      Set mondico = CreateObject("Scripting.Dictionary")
      Set mondico2 = CreateObject("Scripting.Dictionary")
      For i = 1 To UBound(a)
        temp = a(i, 1) & a(i, 2) & a(i, 3)
        mondico(temp) = mondico(temp) + 1
      Next
      For i = 1 To UBound(a)
        temp = a(i, 1) & a(i, 2) & a(i, 3)
        If mondico.Item(temp) = 1 Then mondico2(temp) = i
      Next
      Dim c()
      ReDim c(1 To mondico.Count, 1 To UBound(a, 2))
      ligne = 1
      For Each i In mondico2.items
         For k = 1 To UBound(a, 2): c(ligne, k) = a(i, k): Next k
         ligne = ligne + 1
      Next i
      Sheets("résultat").[A1].Resize(mondico.Count, UBound(a, 2)) = c
      Sheets("résultat").Select
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Merci QuestVba.

    Je l'ai adapté pour une colonne.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2010, 09h14
  2. Récupérer les lignes uniques dans une table
    Par Empty_body dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/01/2009, 19h23
  3. Recuperer les ligne unique(pas deux fois dans la base)
    Par Zouko dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/05/2008, 12h17
  4. selectionner sur excel les lignes uniques
    Par botorollo dans le forum Excel
    Réponses: 3
    Dernier message: 22/02/2007, 10h37

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