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
Partager