Bonjour,

J'aimerais modifier la macro ci-dessous pour qu'elle compare les deux fichiers actuellement ouvert, sans pour autant les renommer en "ancien" et "nouveau"

Et si possible, qu'elle reconnaisse l'ordre dans lequel j'ai ouvert les fichiers
C'est à dire, le premier fichier ouvert sera l'ancien, et le deuxième fichier sera le nouveau

Comme ça, lorsque je veux comparer dans l'autre sens, j'ouvrirais mes fichiers dans un ordre différent

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
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub z_Comparer_2_Fichiers()
Dim iLRA%, iLRN%, i%, j%, k%
Dim Y As Boolean, Ys As Boolean
Dim TabloA(), TabloN()
Dim WbA As Workbook, WbN As Workbook
Dim WsA As Worksheet, WsN As Worksheet
'Détermination du nombre de ligne de Classeur "Ancien" et "Nouveau"
Set WbA = Workbooks("ancien.xls")
Set WbN = Workbooks("nouveau.xls")
Set WsA = WbA.Worksheets(1)
Set WsN = WbN.Worksheets(1)
iLRA = WsA.Cells(65535, 1).End(xlUp).Row
iLRB = WsN.Cells(65535, 1).End(xlUp).Row
TabloA() = WsA.Range("A1:A" & iLRA)
TabloN() = WsN.Range("A1:A" & iLRB)
'Détermination des absents
For i = 1 To UBound(TabloA)
For j = 1 To UBound(TabloN)
'Si égalité alors on pose un drapeau
If TabloN(j, 1) = TabloA(i, 1) Then
Y = True
'et on vérifie la ligne si c'est une égalité stricte
For k = 1 To 15
'si différence on pose un drapeau
If WsA.Cells(i, k) <> WsN.Cells(j, k) Then
Ys = True
'et on colore en orange
WsN.Cells(j, k).Interior.ColorIndex = 45
End If
Next
'sinon 1ere cellule en vert
If Not Ys Then WsN.Cells(j, 1).Interior.ColorIndex = 4
Ys = False
Exit For
End If
Next
'Si pas trouvé alors on colorie en rouge
If Not Y Then WsA.Range("A" & i).Interior.ColorIndex = 3
Y = False
Next
Set WbA = Nothing
Set WbN = Nothing
Set WsA = Nothing
Set WsN = Nothing
End Sub
Merci par avance !!