Je recherche un code VBA qui me permette de comparer les données de deux fichiers Excel différents et d'ajouter la sortie dans le troisième fichier Excel.
Le fichier peut contenir un nombre N de colonnes et un nombre N de lignes qu'il doit valider.
- J'ai un code pour comparer 2 feuilles mais j'ai besoin d'une sortie comme ci-dessous. (ce code vba va ouvrir le fichier excel pour lire les données) Sortie des données après comparaison
Sub Compare() Dim WorkRng1 As Range, WorkRng2 As Range, Rng1 As Range, Rng2 As Range Set objWorkbook1 = Workbooks.Open("F:\Learning\Book1.xlsx") Set objWorkbook2 = Workbooks.Open("F:\Learning\Book2.xlsx") Set objWorksheet1 = objWorkbook1.Worksheets(1) Set objWorksheet2 = objWorkbook2.Worksheets(1) Set WorkRng1 = objWorksheet1.UsedRange Set WorkRng2 = objWorksheet2.UsedRange For Each Rng1 In WorkRng1 Rng1.Value = Rng1.Value For Each Rng2 In WorkRng2 If Rng1.Value = Rng2.Value Then Exit For End If Next Next End Sub
Sortie requise comme ceci
Name_Book1 | Name_Book2 | Compare | Amount_book1 | Amount_book2| Compare Store_1 | Store_1 | Pass | 362 | 420 | Fail Store_2 | Store_2 | Pass | 400 | 360 |Fail Store_3 | Store_3 | Pass | 922 | 520 | Fail Store_4 | Store_4 | Pass | 600 | 320 | Fail Store_5 | Store_5 | Pass | 400 | 400 | Pass
- L'autre code n'ouvre pas le fichier mais je dois comparer les données et obtenir la sortie comme ci-dessus.
Fichier Excel 1 | Fichier Excel 2 | Fichier de sortie
Sub GetDataFromSingleCell(cell As String)
Dim srcCN As Object ' ADODB.Connection Dim srcRS As Object ' ADODB.Recordset Set srcCN = CreateObject("ADODB.Connection") Set srcRS = CreateObject("ADODB.Recordset") srcCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & CStr("F:\Learning\Book1.xlsx") & _ ";" & "Extended Properties=""Excel 12.0;HDR=No;"";" srcRS.Open "SELECT * FROM [Sheet1$" & cell & ":" & cell & "];", srcCN, 3, 1 'adOpenStatic, adLockReadOnly srctxt = srcRS.Fields(0).Value Dim trgCN As Object ' ADODB.Connection Dim trgRS As Object ' ADODB.Recordset Set trgCN = CreateObject("ADODB.Connection") Set trgRS = CreateObject("ADODB.Recordset") trgCN.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & CStr("F:\Learning\Book2.xlsx") & _ ";" & "Extended Properties=""Excel 12.0;HDR=No;"";" trgRS.Open "SELECT * FROM [Sheet1$" & cell & ":" & cell & "];", trgCN, 3, 1 'adOpenStatic, adLockReadOnly trgtxt = trgRS.Fields(0).Value If srctxt = trgtxt Then Sheet1.Cells(1, 2) = "Passed" Else Sheet1.Cells(1, 2) = "Failed" End If End Sub
Le fichier de sortie contient le code VBA pour l'utilisation des références.
Peut-être que lire un fichier txt comme un fichier excel comme ci-dessus serait bien.