Bonjour,

Le petit casu que je suis a besoin de comparer des cellules de lignes de 2 feuilles Excell différentes.
Je vous explique le plus clairement possible mon problème .
Je dois comparer certaines cellules de 2 feuilles excell de 800 lignes et 50 colonnes environ, et mettre en valeur les lignes de la 1ere feuille qui sont identiques à celles de la 2eme feuille.
On m'a proposé le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
Option Explicit
 
Sub ColorieLigne()
Dim rng1 As Range
Dim rng2 As Range
Dim row1 As Range
Dim row2 As Range
Dim i As Integer
Dim egal As Boolean
Dim nbcolonne1 As Integer
 
 
Set rng1 = Intersect(Worksheets("Feuil1").Columns("D:G"), Worksheets("Feuil1").UsedRange)
Set rng2 = Intersect(Worksheets("Feuil2").Columns("E:H"), Worksheets("Feuil2").UsedRange)
 
Application.ScreenUpdating = False
For Each row1 In rng1.Rows
  For Each row2 In rng2.Rows
    egal = True
    For i = 1 To row1.Cells.Count
      If row1.Cells(1, i).Value <> row2.Cells(1, i).Value Then egal = False
 
    Next i
    If egal Then
      row1.Interior.Color = row2.Interior.Color
    'tester copie de texte avec :
    row1.Cells(1, 73).Value = row2.Cells(1, 1).Value
    End If
  Next row2
Next row1
Application.ScreenUpdating = True
Ce code soulève 2 petites questions.
Pourquoi ne colorie -t-il que les cellules de la ligne comparée, au lieu de toute la ligne ? ( comment faire pour colorier toute la ligne ?

Et pourquoi, quand j'essaie de copier le contenu de la 1ere cellule de ligne de la 2feuille pour la mettre dans la cellule de la première feuille, cela me copie en fait le contenu de la 1ere feuille ?

Ensuite, ce code met un peu de temps ( quelques minutes) à s'effectuer. Y'aurait il des façons de l'optimiser/ accélérer ?

Merci d'avance pour votre aide