comparer deux lignes

  • Initiateur de la discussion Initiateur de la discussion mousocgen
  • 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 !

M

mousocgen

Guest
salut
un détail qui me mène la vie dure
commme c'est souvent le cas sur vba

je veux comparer si deux lignes sont identiques dans excel
pour l'instant je ne sais que comparer deux cellulles

voici le code merci à tous, ca me prend la tete depuis deux jours

Sub compare()
Dim i As Long
Sheets("1").Select
For i = Range("A65000").End(xlUp).Row To 2 Step -1
With Sheets("2")
If Cells(i, 1).Value = .Cells(i, 1).Value Then .Cells(i, 1).EntireRow.Delete
End With
Next i
Sheets("2").Select
End Sub
 
Re : comparer deux lignes

Salut mousocgen, le forum,

Je ne sais pas si tu peux comparer les infos de la ligne au complet, mais ce que tu peux faire, si tu n'as pas trop de colonnes de données, c'est d'ajouter à ton code:
Code:
If Cells(i, 1).Value = .Cells(i, 1).Value And cells(i,2).value=.cells(i,2).value (etc) Then .Cells(i, 1).EntireRow.Delete

Solution longue mais qui pourrait marcher... en en attendant une meilleure...

Gringo
 
Re : comparer deux lignes

Bonsoir Mousocgen, gringo, le forum

Essaye le code suivant:

Code:
Option Base 1
Sub compare()
Dim i As Long, j As Long, tablo As Variant, egal As Boolean
tablo = Sheets("F1").Range("A1").CurrentRegion
With Sheets("F2")
For i = UBound(tablo) To 2 Step -1
egal = True
    For j = UBound(tablo, 2) To 1 Step -1
    If tablo(i, j) <> .Cells(i, j).Value Then egal = False
    Next j
If egal Then .Cells(i, 1).EntireRow.Delete
Next i
End With
Sheets("F2").Select
End Sub

Le Current region suppose que tes données ne sont pas séparées par des colonnes vides, sinon la sélection ne se fera que sur une partie des données.

Si le nombre de valeurs est très important, tu peux raccourcir le temps de réponse en travaillant sur 2 tableaux en mémoire, l'accès à la feuille 2 ne se faisant que pour effacer la ligne souhaitée:

Code:
Option Base 1
Sub compare()
Dim i As Long, j As Long, tabF1 As Variant, tabF2 As Variant, egal As Boolean
tabF1 = Sheets("F1").Range("A1").CurrentRegion
tabF2 = Sheets("F2").Range("A1").CurrentRegion
With Sheets("F2")
For i = UBound(tabF1) To 2 Step -1
egal = True
    For j = UBound(tabF1, 2) To 1 Step -1
    If tabF1(i, j) <> tabF2(i, j) Then egal = False
    Next j
If egal Then .Cells(i, 1).EntireRow.Delete
Next i
End With
Sheets("F2").Select
End Sub


@+

Gael
 
Dernière édition:
Re : comparer deux lignes

Bonsoir tout le monde,
j'ai une autre proposition:
Code:
Sub essai()
For i = Range(Range("a1"), Range("a65536").End(xlUp)).Count To 1 Step -1
    For j = 1 To Range(Range("a1"), Range("IV1").End(xlToLeft)).Count
        If Cells(i, j) <> Sheets(2).Cells(i, j) Then
            MsgBox "la ligne " & i & " est différente"
            Exit For
        End If
    Next
Next
End Sub

Pour que celà marche, la colonne A de la dernière ligne ne doit pas être vide.
Tu remplaces
Code:
MsgBox "la ligne " & i & " est différente"
par ce que tu veux (changement de couleur, suppression de la ligne etc).

A+
 
Re : comparer deux lignes

Bonsoir Mousocgen, gringo, le forum



Le Current region suppose que tes données ne sont pas séparées par des colonnes vides, sinon la sélection ne se fera que sur une partie des données.


@+

Gael

Ma solution prend en compte les colonnes vides MAIS les largeurs de ligne entre les 2 feuilles doivent être identiques.
ex.: pour la ligne 2:
si la dernière valeure dans la feuille 1 se trouve colonne C, la valeure dans la feuille 2 doit être aussi dans la colonne C.

Voili voilou
 
Re : comparer deux lignes

Hello !!!!! ...et au secours !

J`ai essayé le programme mais dans mon cas ca ne marche pas vraiment 🙁 ...

J`ai un nombre de colonnes fixe et j`ai donc essayé de remplacer
Code:
Range("A1").CurrentRegion

Par
Code:
Range("A1:L12)

Mais sans beaucoup de succès....!

J`ai des colonnes vides et ma dernière cellule est souvent vide (colonneL).

Je suis coincée, comment éliminer les doublons de ma feuille 2, qui sont déja dans la base de données de la feuille 1 ??

Merci d`avance pour vos conseils de pro ! 🙂

L.
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
905
Réponses
4
Affichages
278
Réponses
15
Affichages
775
Réponses
10
Affichages
660
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
8
Affichages
776
Retour