Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Tri sur doublons/triplons (Résolu)

vidalv

XLDnaute Nouveau
Bonjour à tous,
voici mon problème, j'ai extrais avec une macro des données sur 3 onglets d'excel 2010. La feuille 1 contiens une série de données que l'on va retrouver sur la feuille 2 et sur la 3. J'aimerais faire un tri afin de ne conserver que les lignes qui n’apparaissent en feuille 3 (voir exemple joint) à savoir 18 Lignes (de la ligne 5 à la fin ligne 22) purger la feuille 2 des lignes qui ne sont pas en feuille 3 et de même sur la feuille 1.
Merci pour vos idées !
Vincent.
 

Pièces jointes

  • Tri.xlsx
    14 KB · Affichages: 66

vidalv

XLDnaute Nouveau
Bonjour,

euh, comment se caractérise un doublon ?

Désolé ! En effet sans repère de tri c'est plus difficile ...

Les doublons se caractérises par les colones B et C par exemple :
Sur feuille F3 nous avons 2,14; 2,19; 2,20; 2,21; 2,22; 2,23; et 2,25.
que l'on retrouve sur F2 ou il faut éliminer les lignes 2,15 et 2,16.
ainsi que sur F1 ou il faut éliminer ces mêmes lignes.
J’espère être plus claire ?

Merci.

Vincent.
 

vidalv

XLDnaute Nouveau
Bonjour vidalv

Un essai
Merci pierrejean, après essai il semble que l'elimination des lignes non désirées ne soit pas la bonne.

Ici les 3 feuilles initiales :


Les lignes en jaune sont en trop par rapport au premier tableau (feuille F3) après traitement voici le tableau :



En fait au lieu de me retrouver avec les mêmes colonnes B et C / L et M / V et W il y a un mixte.
Peut-être que la definition des lignes à effacer : Set c = Sheets("F3").Columns(1).Find(x, LookIn:=xlValues, lookat:=xlWhole)
n'est pas complete, il faut le "Y" aussi dans le find ?

PS: J'utilise une version Française d'Excel 2010.

Merci.

Vincent.
 

vidalv

XLDnaute Nouveau
Voici le code de pierrejean modifié pour prendre en compte les 2 colonnes B et C, mais ça coince sur la deuxième ligne Set C = ..... C prends une valeur 'Nothing'. Je vois pas pourquoi ?
C'est quoi .Columns(1) le 1 ?

Merci.

VB:
Sub Tri()

Sheet = Array("F1", "F2")                                                               ' List Sheets.
For m = LBound(Sheet) To UBound(Sheet)                                                  ' Loop on Array Sheets.
     For n = Sheets(Sheet(m)).Range("A" & Rows.Count).End(xlUp).Row To 5 Step -1        ' Loop on lines (Last to First).
        x = Sheets(Sheet(m)).Range("B" & n)                                             ' X Val.
        y = Sheets(Sheet(m)).Range("C" & n)                                             ' Y Val.
     
        Set B = Sheets("F3").Columns(1).Find(x, LookIn:=xlValues, lookat:=xlWhole)      ' Set the B value.
        Set C = Sheets("F3").Columns(1).Find(y, LookIn:=xlValues, lookat:=xlWhole)      ' Set the C value.
     
        If (B Is Nothing) Or (C Is Nothing) Then                                        ' If one "Nothing"
          Sheets(Sheet(m)).Rows(n).Delete                                               ' delete the line.
        End If                                                                          ' End nothing.
   
      Next                                                                              ' Next loop "Lines"

Next                                                                                    ' Next loop "Sheets"

End Sub
 

pierrejean

XLDnaute Barbatruc
Re
Un problème bien posé est à moitié résolu
Vis si ceci est meilleur

Sub test()
feuilles = Array("F1", "F2")
For m = LBound(feuilles) To UBound(feuilles)
For n = Sheets(feuilles(m)).Range("A" & Rows.Count).End(xlUp).Row To 5 Step -1
x = Sheets(feuilles(m)).Range("B" & n)
y = Sheets(feuilles(m)).Range("C" & n)
For p = Sheets("F3").Range("B" & Rows.Count).End(xlUp).Row To 5 Step -1
x1 = Sheets("F3").Range("B" & p)
y1 = Sheets("F3").Range("C" & p)
If x = x1 And y = y1 Then ok = True
Next
If ok = False Then
Sheets(feuilles(m)).Rows(n).Delete
End If
ok = False
Next
Next

End Sub
 

vidalv

XLDnaute Nouveau
Merci pierrejean, en fait il fallait une boucle double afin de scruter les deux feuilles et de comparer si, ou pas, on est Ok!
Les imbrication de boucles ne sont pas toujours évidentes ...
Encore merci pour le support.
Vincent.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…