Autres extraire valeurs ligne par ligne sans doublons

  • Initiateur de la discussion Initiateur de la discussion mysti54
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mysti54

XLDnaute Nouveau
Bonjour à tous

J'aimerais avoir de l'aide s'il vous plait

Le tableau initial c'est celui qui se trouve en I6-P15, qui ne faut pas toucher, les doublons sont dans tableau R6-w15 si un doublons se trouve dans le tableau initial ligne par ligne, il est supprimé d'office et dans le tableau Z6-ag15, ce sera le tableau final avec les numéro sans doublons c'est à dire par exemple la première ligne au lieu d'avoir =>1-11-5-9-4-12-17 ça devient 1-11-14-5-9-12-17, mais par exemple le 6 qui se trouve dans les doublons mais qui ne figure pas dans le tableau initial ne dois pas être retenu également.

Merci d'avance
 

Pièces jointes

Solution
Bonjour Mysti,
Un essai en PJ. J'en profite pour remplir le premier tableau, les formules deviennent inutiles.
La macro est valable quelle que soit le nombre de ligne. Avec :
VB:
Sub SansDoublon()
    Dim DL%, L%, C%, Col%, Valeur, T
    DL = [B1000].End(xlUp).Row      ' Dernière
    Range("I6:P" & DL).ClearContents
    Range("Z6:AG" & DL).ClearContents
    Application.ScreenUpdating = False
    For L = 6 To DL                 ' Remplissage de la matrice col I à col P.
        T = Split(Cells(L, "G"), "-")
        For N = 0 To 7
            If T(N) <> 0 Then Cells(L, 9 + N) = T(N) ' 9 car à partir de la colonne I
        Next N
    Next L
    For L = 6 To DL                 ' Analyse de chaque ligne
        Col = 26
        For C = 9 To 16...
Bonjour Mysti,
Un essai en PJ. J'en profite pour remplir le premier tableau, les formules deviennent inutiles.
La macro est valable quelle que soit le nombre de ligne. Avec :
VB:
Sub SansDoublon()
    Dim DL%, L%, C%, Col%, Valeur, T
    DL = [B1000].End(xlUp).Row      ' Dernière
    Range("I6:P" & DL).ClearContents
    Range("Z6:AG" & DL).ClearContents
    Application.ScreenUpdating = False
    For L = 6 To DL                 ' Remplissage de la matrice col I à col P.
        T = Split(Cells(L, "G"), "-")
        For N = 0 To 7
            If T(N) <> 0 Then Cells(L, 9 + N) = T(N) ' 9 car à partir de la colonne I
        Next N
    Next L
    For L = 6 To DL                 ' Analyse de chaque ligne
        Col = 26
        For C = 9 To 16             ' Si valeur absente, on recopie la valeur
            Valeur = Cells(L, C)
            If Application.CountIf(Range(Cells(L, "R"), Cells(L, "W")), Valeur) = 0 Then    ' Non doublon
                Cells(L, Col) = Valeur: Col = Col + 1
            End If
        Next C
    Next L
End Sub
Pensez à valider les macros si ce n'est déjà fait.
 

Pièces jointes

Normalement c'est la même chose. 🙂

Il faut mettre en vert le post qui contient la solution, pas votre réponse.
Le but est de faire remonter cette solution juste après votre demande, et ,par appui sur le bouton, le futur lecteur est dirigé directement vers la solution.
( ici il est redirigé vers " je vais garder votre code et adapter mon fichier " 🙂

1729775984591.png
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
427
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Retour