Probleme de tri de lignes dans excel

Fermé
anesr Messages postés 22 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 10 novembre 2016 - Modifié par anesr le 10/11/2016 à 13:45
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 11 nov. 2016 à 10:42
Bonjour,
Je sollicite le savoir des experts en vba car en tant que néophyte je rencontre quelques problèmes avec ce langage de programmation.
Voila le problème:
Je souhaite faire un tri par ligne d'une liste contenu dans "Feuil1" en utilisant comme référence une liste contenue dans "Feuil2" de mon classeur.
Pour ce faire, j’écris une macro qui va comparer chaque ligne de ma première liste avec toutes les lignes de la liste contenue dans "Feuil2".
Si deux lignes sont identiques il supprime la ligne de la liste dans "Feuil1".
Autrement il garde la ligne...
Mon code a l'air de fonctionner mais par moment il me garde des ligne qui existe aussi dans la liste "Feuil2" ce qui n'est pas bon du tout...
Quelqu'un pourrai me proposer son aide.
Merci d'avance.

Voici mon code:

Tri_childpart()
Dim i As Integer
Dim j As Integer
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Sheets("Feuil1").Cells(i, 1) = Sheets("Feuil2").Cells(j, 1) And Sheets("Feuil1").Cells(i, 2) = Sheets("Feuil2").Cells(j, 2) And Sheets("Feuil1").Cells(i, 3) = Sheets("Feuil2").Cells(j, 3) And Sheets("Feuil1").Cells(i, 4) = Sheets("Feuil2").Cells(j, 4) And Sheets("Feuil1").Cells(i, 5) = Sheets("Feuil2").Cells(j, 5) And Sheets("Feuil1").Cells(i, 6) = Sheets("Feuil2").Cells(j, 6) And Sheets("Feuil1").Cells(i, 7) = Sheets("Feuil2").Cells(j, 7) Then Range(Cells(i, 1), Cells(i, 8)).Delete
Next j
Next i
Cells.Select
With Selection.Interior
.ThemeColor = xlThemeColorDark2
Range("A1").Select
End With
End Sub
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
10 nov. 2016 à 14:09
Bonjour,

Essaies :
Sub Tri_childpart()
Dim i As Integer
Dim j As Integer
  With Worksheets("Feuil1")
    For i = .Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
      For j = 3 To Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(i, 1) = Sheets("Feuil2").Cells(j, 1) And _
           .Cells(i, 2) = Sheets("Feuil2").Cells(j, 2) And _
           .Cells(i, 3) = Sheets("Feuil2").Cells(j, 3) And _
           .Cells(i, 4) = Sheets("Feuil2").Cells(j, 4) And _
           .Cells(i, 5) = Sheets("Feuil2").Cells(j, 5) And _
           .Cells(i, 6) = Sheets("Feuil2").Cells(j, 6) And _
           .Cells(i, 7) = Sheets("Feuil2").Cells(j, 7) Then _
           .Range(Cells(i, 1), Cells(i, 8)).Delete
      Next j
    Next i
    .Cells.Interior.ThemeColor = xlThemeColorDark2
  End With
End Sub
0
anesr Messages postés 22 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 10 novembre 2016
10 nov. 2016 à 14:59
Merci infiniment Patrice!!!
J'ai intégré ton code à mon travail. D’ailleurs je trouve que c'est vachement mieux écrit :)
Du coup j'ai pensé mettre en couleur la cellule qui diffère entre deux lignes, comment pourrais je faire?
Merci encore pour ton aide.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 nov. 2016 à 10:42
Bonjour,

Vu que tu compares chaque ligne avec toutes les autres, toutes les cellules seront colorées !!!

Si c'est lorsque 2 lignes se ressemblent, que tu veux marquer les différences, il faut que tu détermines quels sont les critères qui définissent la ressemblance.
0