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 :
Ce code soulève 2 petites questions.
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
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
Partager