Probleme de tri de lignes dans excel
anesr
Messages postés
27
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
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
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:
- Probleme de tri de lignes dans excel
- Comment faire un tri personnalisé sur excel - Guide
- Liste déroulante excel - Guide
- Partage de photos en ligne - Guide
- Word et excel gratuit - Guide
- Fiche de pointage excel - Télécharger - Tableur
3 réponses
Bonjour,
Essaies :
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
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.
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.