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
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