Bonsoir,

j’essaie de faire une macro qui compare et affiche les différences entre deux fichiers excel.

J'en suis au code suivant qui à partir d'un fichier A et B de structure identique m'affiche les différences si une valeur à était modifier entre le fichier A et B

Mais je voudrais rajouter la ligne en question dans la colonne B.

Est-ce que vous savez comment rajouter cette info ?

Cela me permettrai de savoir qu'il y a une différence entre le fichier A et B à la ligne 450 avec une valeur qui est passé de 25 dans la colonne D du fichier A à une valeur 22 dans la même colonne D du fichier B.

Merci par avance pour votre aide.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
Option Explicit
 
Private Sub cmdAnalyse_Click()
    Dim strRepFicA As String, strRepFicB As String
    Dim wbFicA As Workbook, wbFicB As Workbook, wbFicAna As Workbook
    Dim wsFicA As Worksheet, wsFicB As Worksheet, wsFicAna As Worksheet
    Dim lgLig As Long, lgCol As Long
    Dim lgLigDeb As Long
 
    ' Répertoire et Fichier
    strRepFicA = ThisWorkbook.Path & "\" & "Fichier A.xls"
    strRepFicB = ThisWorkbook.Path & "\" & "Fichier B.xls"
 
    ' Classeur d'analyse
    Set wbFicAna = ThisWorkbook
    Set wsFicAna = wbFicAna.ActiveSheet
 
    ' Vérifier que les fichiers A et B se trouvent dans le répertoire
    If Dir(strRepFicA) = "" Or Dir(strRepFicB) = "" Then
        MsgBox "Le fichier A et/ou le fichier B sont introuvables", vbCritical + vbOKOnly, "Problème de fichiers..."
        Exit Sub
    End If
 
    Application.ScreenUpdating = False
 
    ' Ouverture du fichier A et définition de la feuille de traitement
    Set wbFicA = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "Fichier A.xls")
    Set wsFicA = wbFicA.Worksheets("Fichier A")
 
    ' Ouverture du fichier B et définition de la feuille de traitement
    Set wbFicB = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "Fichier B.xls")
    Set wsFicB = wbFicB.Worksheets("Fichier B")
 
    ' Vider les lignes du fichier d'analyse
    wsFicAna.Range("A2:P" & Cells.Rows.Count).ClearContents
 
    ' Première ligne d'affichage des résultats dans le fichier d'analyse
    lgLigDeb = 2
 
    ' Traitement des lignes des 2 fichiers
    ' Lignes : 2 à 30000
    For lgLig = 2 To 26000
        ' Colonnes : D à AO
        For lgCol = 1 To 4
            ' Une différence est trouvée dans une ligne
            If wsFicA.Cells(lgLig, lgCol).Value <> wsFicB.Cells(lgLig, lgCol).Value Then
                ' Affichage du nom du fichier en colonne A
                wsFicAna.Range("A" & lgLigDeb).Value = wbFicA.Name
 
                ' Copier la ligne du fichier A dans le fichier d'analyse
                wsFicA.Range("A" & lgLig & ":" & "O" & lgLig).Copy _
                    Destination:=wsFicAna.Range("C" & lgLigDeb)
 
                ' Affichage du nom du fichier en colonne A
                wsFicAna.Range("A" & lgLigDeb + 1).Value = wbFicB.Name
 
                ' Copier la ligne du fichier B dans le fichier d'analyse
                wsFicB.Range("A" & lgLig & ":" & "O" & lgLig).Copy _
                    Destination:=wsFicAna.Range("C" & lgLigDeb + 1)
                wsFicAna.Range("B" & lgLig).Value = ActiveCell.Row
                lgLigDeb = lgLigDeb + 2
 
                Exit For
            End If
        Next lgCol
    Next lgLig
 
    ' Fermer les fichiers A et B
    wbFicA.Close savechanges:=False
    wbFicB.Close savechanges:=False
 
    MsgBox "Traitement terminé"
 
    Application.ScreenUpdating = True
End Sub