Copier des données de fichiers vers un même fichier à la fermeture

Bonjour, je suis un peu novice en VBA.

J'ai plusieurs fichiers basées tous sous la même architecture mais pour plusieurs services différents. J'aimerais qu'à la fermeture de ces fichiers il y ai une macro qui copie ce qu'il y a sur l'onglet "Recap_ABS_TR" pour le mettre sur le fichier TR GENERAL dans l'onglet "ABS_TR_GENERAL" à la suite de ce qui existe déjà mais en supprimant bien entendu les doublons si ils existent (si une même ligne est identique).

Et de plus le fichier TR GENERAL n'est pas ouvert, ce qui veut dire que l'export doit si possible ce faire avec ce fichier fermé.

Les fichiers source sont alimentés régulièrement et à la suite de ce qui existe déjà.

Encore merci de votre aide

0fichier1.xlsm (36.14 Ko)
0fichier2.xlsm (36.20 Ko)

J'ai essayé de développer ce code, mais ça ne fonctionne pas

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim dernligne As Long, derncol As Long
Dim dernligneCol As Long, derncolCol As Long
Dim tabl1 As Variant

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 2 To 3
    cheminacc = ThisWorkbook.Worksheets("Params").Cells(i, 1) & "/"
    FileName = ThisWorkbook.Worksheets("Params").Cells(i, 2)
    With Worksheets("Recap_ABS_TR")
        If .FilterMode = True Then .ShowAllData
    End With
    dernligne = ThisWorkbook.Worksheets("Recap_ABS_TR").Range("A" & Rows.Count).End(xlUp).Row
    derncol = ThisWorkbook.Worksheets("Recap_ABS_TR").Cells(1, ThisWorkbook.Worksheets("Recap_ABS_TR").Cells.Columns.Count).End(xlToLeft).Column
    tabl1 = ThisWorkbook.Worksheets("Recap_ABS_TR").Range(ThisWorkbook.Worksheets("Recap_ABS_TR").Cells(1, 1), ThisWorkbook.Worksheets("Recap_ABS_TR").Cells(dernligne, derncol)).Value
    If FileName = "Fichier TR GENERAL.xlsx" Then
        Workbooks.Open FileName:=cheminacc & FileName, ReadOnly:=False
        With Workbooks(FileName).Worksheets("Recap_ABS_TR")
            If .FilterMode = True Then .ShowAllData
        End With
        dernligneCol = Workbooks(FileName).Worksheets("Recap_ABS_TR").Range("A" & Rows.Count).End(xlUp).Row
        derncolCol = Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells(1, Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells.Columns.Count).End(xlToLeft).Column
        Workbooks(FileName).Worksheets("Recap_ABS_TR").Range(Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells(1, 1), Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells(dernligneCol, derncolCol)).Value = ""
        Workbooks(FileName).Worksheets("Recap_ABS_TR").Range(Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells(1, 1), Workbooks(FileName).Worksheets("Recap_ABS_TR").Cells(dernligne, derncol)) = tabl1
        Workbooks(FileName).Close True

    End If
Next
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Rechercher des sujets similaires à "copier donnees fichiers meme fichier fermeture"