Chiffres en double sur une ligne de 16 chiffres

Résolu
sousmarinier56 Messages postés 14 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour , je voudrais éliminer des chiffres en double d'une même ligne mais sur plusieurs lignes en même temps . Exemple :
3 9 1 7 13 6 2 5 8 7 9 4 13 5 16 10
6 4 1 7 9 3 5 10 2 3 4 5 6 7 8 9
3 4 1 6 2 7 5 5 4 1 2 3 7 6
5 9 8 6 2 3 4 1 2 3 4 5 6 7 8 9
8 7 4 1 5 6 2 3 5 4 6 1 8 2 7 3
5 6 1 8 2 13 15 7 5 3 2 7 11 13 6
Merci

9 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Pour pouvoir t'aider, il faudrait nous dire sur quel logiciel tu travailles Excel, Word, Cal de libre Office etc ...

    S'il s'agit d'un classeur, es ce que tous les chiffres d'une ligne sont dans la même cellule ou un chiffre par cellule ?

    1
  2. sousmarinier56 Messages postés 14 Statut Membre
     
    Bonsoir Mike , c'est effectivement un petit logiciel que j'ai réussi à composer pour les courses de chevaux . Excel2019 .Je prend donc 2 listes de 8 cv , chaque case comprend 1 numéro et donc il y a dans ces 2 recherches de 8 cv des chiffres en double . En plus , je prend toutes les courses de la journée . Cela représente entre 30 et 40 courses par jour . Elles sont les unes sous les autres , je vous met un exemple :
    1 course 3 9 1 7 13 6 2 5 8 7 9 4 13 5 16 10
    2 course 6 4 1 7 9 3 5 10 2 3 4 5 6 7 8 9
    3 course 3 4 1 6 2 7 5 5 4 1 2 3 7 6
    4 course 5 9 8 6 2 3 4 1 2 3 4 5 6 7 8 9
    5 course 8 7 4 1 5 6 2 3 5 4 6 1 8 2 7 3
    6 course 5 6 1 8 2 13 15 7 5 3 2 7 11 13 6
    7 course 10 2 9 3 8 6 11 1 6 9 2 5 8 3 12 1
    8 course 3 9 6 4 5 1 14 2 8 4 3 5 7 10 6 9
    9 course 3 2 5 7 4 1 6 5 7 2 6 3 4 1
    10 course 7 4 5 3 2 1 6 4 7 3 1 2 5 6
    11 course 3 6 11 15 7 10 16 4 4 5 3 6 7 8 9 1
    12 course 6 5 2 1 3 7 4 4 2 5 3 1 6 7
    Voila le bouleau , je vous remercie d'avoir pris ma demande .
    Cordialement
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    j'ai jeté un œil sur ta demande, le problème ne peut être traité automatiquement que par VBA, et il serait plus facile de traiter ta demande si tes résultats étaient saisis verticalement, dans ce cas le code ne serait que de trois lignes.
    As tu quelques notions en VBA et es ce possible de travailler verticalement
    0
  4. Sousmarinier
     
    Bonjour Mike et Merci pour ta réponse.
    Je peux effectivement prendre une 50 taire de courses et faire coller pour avoir les courses verticalement. Je sais aussi ôter les doublons mais colonne par colonne ,inutile de vous dire que ce n'est pas rentable.
    Cordialement
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    alors si tes courses sont enregistré en colonne, exemple course1 colonne A, course2 colonne B etc ...

    regarde ce code que tu peux placer dans un bouton ActiveX comme dans l'exemple ou dans un module
    ce code traite 6 courses de la colonne A à F sur 10 lignes, le tout à adapter aux limites de ton tableau

    Private Sub CommandButton1_Click()
    Dim Col As Integer
    For Col = 1 To 6 ' --------------------------- parcourt les colonnes de 1 à 6 soit de A à F
    Range(Cells(2, Col), Cells(10, Col)).RemoveDuplicates Columns:=1, Header:=xlNo ' ------- tableau de la ligne 2 à 10
    Next Col
    End Sub

    0
  7. sousmarinier56 Messages postés 14 Statut Membre
     
    Merci Mike ,
    Pardon mais je suis un peu pommé , je vois ce que vous m'expliquez mais je ne sais pas le faire . Je vais chercher ....
    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Pour t'aider à comprendre, télécharge le fichier à partir du lien ci-dessous avec tes données exemples que j'ai retranscrite en colonne.
    J'ai automatisé mon code pour sélectionner automatiquement le nombre de colonnes et de lignes à traiter.
    Pour suivre l'action du code macro j'ai colorisé en jaune les numéros en doublon qui seront supprimés

    https://www.cjoint.com/c/LComHGTa8uF
    0
  9. sousmarinier56 Messages postés 14 Statut Membre
     
    Ah , ben voilà une chosr qu'elle est bonne . Je viens de faire plusieurs essais et mieux serait indéscent . Donc , Grand Merci à vous Mike , vous êtes super . Bravo . Je n'ai plus qu'a apprendre a faire cela . Vous m'avez une belle épine du pied .
    Je vous remercie encore .
    Cordialement
    sousmarinier .
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Excel n'aime pas trop travailler en horizontale c'est pour cela que je t'ai proposé la saisie en colonne ce qui à limité le code à
    Private Sub CommandButton1_Click()
    Dim Col, Derlig, Dercol As Integer
    Derlig = Range("A" & Rows.Count).End(xlUp).Row ' --------------------------------------- recherche index dernière ligne
    Dercol = Cells(1, Columns.Count).End(xlToLeft).Column ' -------------------------------- recherche index dernière colonne
    For Col = 1 To Dercol ' --------------------------------------------------------------------- parcourt les colonnes de 1 à 6 soit de A à F
    Range(Cells(2, Col), Cells(Derlig, Col)).RemoveDuplicates Columns:=1, Header:=xlNo ' --- tableau de la ligne 2 à 10
    Next Col
    End Sub
    


    sinon pour traiter le tableau horizontalement comme tu le proposais au départ, il fallait avec ce code transposer les données sur un autre onglet ce qui donnerai a première vue ce code pour ceux qui veulent approfondir et peut être proposer un code pour supprimer les cellules en doublon sur place ligne par ligne.
    Sub test()
    Dim Col, Derlig, Dercol As Integer
        Application.ScreenUpdating = False 
        Derlig = Range("A" & Rows.Count).End(xlUp).Row 
        Dercol = Cells(1, Columns.Count).End(xlToLeft).Column 
        Range(Cells(1, 2), Cells(Derlig, Dercol)).Copy 
        Sheets("Feuil2").Select 
        Range("A1").Select 
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True 
        Sheets("Feuil1").
        Range(Cells(1, 2), Cells(Derlig, Dercol)).ClearContents 
        Sheets("Feuil2").Select 
        Derlig = Range("A" & Rows.Count).End(xlUp).Row 
        Dercol = Cells(1, Columns.Count).End(xlToLeft).Column 
        For Col = 1 To Dercol 
        Range(Cells(1, Col), Cells(Derlig, Col)).RemoveDuplicates Columns:=1, Header:=xlNo 
        Next Col
        Selection.Copy 
        Sheets("Feuil1").Select 
        Range("B1").Select 
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
         Application.CutCopyMode = False 
       Sheets("Feuil2").Select 
        Cells.ClearContents 
        [A1].Select
        Sheets("Feuil1").Select
         [A1].Select
        Application.ScreenUpdating = True
     End Sub


    Je passe le statut de la discussion en résolu
    0