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 77 78 79 80 81
| Sub ExtractionDifférence()
Application.ScreenUpdating = False
Set F1 = ThisWorkbook
OuvrirFichier1:
Fichier1 = Application.GetOpenFilename(filefilter:="tout,*.*", Title:="Sélection")
If Fichier1 = False Then
MsgBox "aucun fichier sélectionné", vbOKOnly + vbCritical, "fin de procédure "
Exit Sub
End If
ThisWorkbook.FollowHyperlink Fichier1
Fichier1 = ActiveWindow.Caption
OuvrirFichier2:
Fichier2 = Application.GetOpenFilename(filefilter:="tout,*.*", Title:="Sélection")
If Fichier2 = False Then
MsgBox "aucun fichier sélectionné", vbOKOnly + vbCritical, "fin de procédure "
Exit Sub
End If
If Fichier1 = Fichier2 Then
MsgBox "Ce ficier est déjà ouvert"
GoTo OuvrirFichier2
End If
ThisWorkbook.FollowHyperlink Fichier2
Fichier2 = ActiveWindow.Caption
F1.Activate
Set F2 = Windows(Fichier1)
Set F3 = Windows(Fichier2)
ActiveSheet.AutoFilterMode = False
Columns("A:C").ClearContents
Set DicoF2 = CreateObject("Scripting.Dictionary")
Set DicoF3 = CreateObject("Scripting.Dictionary")
F2.Activate
Sheets(1).Activate
DerLigF2 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Row
DerColF2 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
For Each C In Range("A2:A" & DerLigF2)
For i = 1 To DerColF2
If Cells(C.Row, i) = "" Then ValCell = "-" Else ValCell = Cells(C.Row, i) & "£"
X = X & ValCell
Next i
DebC = C
C = X
DicoF2.Add C, ""
C = DebC
X = ""
Next C
F1.Activate
[A2].Resize(DicoF2.Count) = Application.Transpose(DicoF2.keys)
F3.Activate
Sheets(1).Activate
DerLigF3 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Row
DerColF3 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
For Each C In Range("A2:A" & DerLigF3)
For i = 1 To DerColF3
If Cells(C.Row, i) = "" Then ValCell = "-" Else ValCell = Cells(C.Row, i) & "£"
X = X & ValCell
Next i
DebC = C
C = X
DicoF3.Add C, ""
C = DebC
X = ""
Next C
F1.Activate
[B2].Resize(DicoF3.Count) = Application.Transpose(DicoF3.keys)[/I][/I]
DerLigF1 = Application.WorksheetFunction.Max(DerLigF2, DerLigF3)
Range("C2:C" & DerLigF1).FormulaR1C1 = "=IF(RC[-2]=RC[-1],"""",""Ecart"")"
Range("A1") = Fichier1
Range("B1") = Fichier2
Range("C1") = "'Test"
Columns("A:B").Select
Selection.EntireColumn.AutoFit
Selection.Replace What:="£", Replacement:=" ", LookAt:=xlPart
Range("A1:C1").AutoFilter
ActiveSheet.Range("A1:C" & DerLigF1).AutoFilter Field:=3, Criteria1:="Ecart"
End Sub |
Partager