Probleme de tri de lignes dans excel
anesr
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
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.