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 doublons dans un tableau de 3 colonnes et x lignes [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut Supprimer doublons dans un tableau de 3 colonnes et x lignes
    Bonsoir à tous,

    Je tourne en rond, je voudrais dans un tableau de trois colonnes et X lignes supprimer les doublons de la deuxième colonnes du tableau, donc effacer la lignes ou ce trouvent les doublons.

    Je constitue mon tableau comme ceci :

    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
     
    uv = 0
    Dim tab_1()
    For i = 2 To nblg1 Step 1
    If Feuil3.Range("H" & i).Value Like "*V*" Or _
    Feuil3.Range("H" & i).Value Like "*VS*" Then
    If Feuil3.Range("AO" & i).Value Like ("*" & gb & "*") Then
    'traitement des doublons
    ReDim Preserve tab_1(2, uv)
     tab_1(0, uv) = Feuil3.Range("AP" & i).Value
        tab_1(1, uv) = Feuil3.Range("I" & i).Value
        tab_1(2, uv) = Val(Feuil3.Range("K" & i).Value)
    uv = uv + 1
    End If
    End If
    Next
     
     
    ' virer les doublons
     
    Feuil4.Range("A" & "1" & ":C" & uv) = Application.Transpose(tab_1)
    Donc c'est dans mon tableau tab_1 que je cherche a traiter les doublons de la deuxième colonne.

    Je vous remercie par avance pour vos aides

  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
    De quelle colonne 2 parles-tu, finalement ? Celle de ton tableau (ce serait étonnant) ou celle de sa transposition sur la feuille ?
    Quoi qu'il en soit :
    - il t'est possible d'utiliser à ton gré une collection ou un dictionnaire pour n'ajouter à ton tableau que lorsque non déjà présent dans la collection ou le dictionnaire
    - il t'est également possible de transposer avec les doublons et de traiter ensuite le résultat transposé sur ta feuille pour y supprimer les doublons (l'enregistreur de macro te fera connaître le code nécessaire à cette fin)

    Au passage : ton critère OR dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Feuil3.Range("H" & i).Value Like "*V*" Or Feuil3.Range("H" & i).Value Like "*VS*" Then
    est plutôt amusant (comment pourrait-on avoir un like "*VS*" qui ne serait pas de toutes manières déjà traité par un like "*V*" ? )

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    Au lieu de les supprimer ne serait-il pas judicieux de ne point les mettre dans le tableau, comme ceci par exemple
    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
    25
    uv = 0
    Dim tab_1()
    For i = 2 To nblg1 Step 1
    If Feuil3.Range("H" & i).Value Like "*V*" Or _
    Feuil3.Range("H" & i).Value Like "*VS*" Then
    If Feuil3.Range("AO" & i).Value Like ("*" & gb & "*") Then
    'traitement des doublons
    ReDim Preserve tab_1(2, uv)
    For j = 0 To uv
        If Feuil3.Range("I" & i).Value = tab_1(1, j) Then Exit For
    Next j
    If j > uv Then
     tab_1(0, uv) = Feuil3.Range("AP" & i).Value
        tab_1(1, uv) = Feuil3.Range("I" & i).Value
        tab_1(2, uv) = Val(Feuil3.Range("K" & i).Value)
    uv = uv + 1
    End If
    End If
    End If
    Next
     
     
    ' virer les doublons
     
    Feuil4.Range("A" & "1" & ":C" & uv).Value = Application.Transpose(tab_1)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Bonsoir et merci pour cette réponse,

    Je voudrais effectivement directement traiter les doublons dans la deuxième colonne du tableau virtuel sans écrire dans une feuille, pour l'instant
    pour vérification je le copie dans une feuille mais une fois les doublons supprimés je vais écrire le tableau dans une listebox.

    Concernant V et VS j'ai retiré les mots pour l'exemple.

    Donc ma question ( je débute sur les tableaux car dans une feuille je sais faire mais j'ai envie de progresser d'une part et gagner du temps de traitement d'autre part)
    est il possible de supprimer directement dans le tableau les doublons de la deuxième colonnes et du coup^virer les lignes concernées dans ce même tableau ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Un grand merci ça marche !!! effectivement vue sous angle !
    Mais je suis tenace pour progresser du coup cela fonctionne t'il aussi de virer les doublons

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    re
    Citation Envoyé par scoubi77 Voir le message
    Mais je suis tenace pour progresser du coup cela fonctionne t'il aussi de virer les doublons
    Si tu ne les sélectionnes pas tu n'as pas besoin de les virer : ils ne seront pas dans ta listbox ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Je suis d'accord avec ce fait, mais comme je découvre les tableaux j'essaie de comprendre et de faire dans un tableau ce que je sais faire dans une feuille.
    donc est il possible dans un tableau comme le mien avec trois colonnes de faire une suppression des doublons et comment ?
    et est il possible de faire un tri de AZ dans la première colonne qui permettrait de trier le tableau par rapport à la première colonne ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    J'ai beau faire beaucoup d'essais je n'arrive pas à trier mon tableau par ordre décroissant de la colonne 1 en conservant les données deux autres colonnes de mon tableau !

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 06/04/2017, 15h50
  2. supprimer doublon dans colonne
    Par marie33000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2009, 16h13
  3. Réponses: 7
    Dernier message: 09/02/2009, 14h28
  4. Supprimer les doublons dans un tableau à deux dimensions
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/07/2008, 09h47
  5. Supprimer les doublons dans un tableau à deux dimensions
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/07/2008, 09h33

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