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 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| Sub RegrouperV2()
Dim WbMacro As Workbook
Dim ShBal As Worksheet
Dim DerniereLigneMacro As Long
Dim Wb As Workbook
Dim ShFichier As Worksheet
Dim ShRetraitement As Worksheet
Dim DerniereLigneSh As Long
Dim WbEnCours As Workbook
Dim ShNomFichier As Worksheet
Dim ShRetraitement As Worksheet
Dim DerniereLigneShNomFichier As Long
Dim DerniereLigneShRetraitement As Long
Dim RepertoireEnCours As String
Dim AireFichiers As Range
Dim CelluleFichiers As Range
Set WbMacro = Workbooks("MonFichier macro 1")
Set ShBal = WbMacro.Worksheets("B")
With ShBal
DerniereLigneMacro = .Cells(.Rows.Count, 41).End(xlUp).Row
If DerniereLigneMacro > 1 Then
Set AireFichiers = .Range(.Cells(2, 41), .Cells(DerniereLigneMacro, 41))
End If
End With
RepertoireEnCours = "MonChemin\"
Workbooks.Open Filename:=RepertoireEnCours & "MonFichier.xlsx"
Set Wb = ActiveWorkbook
Set ShFichier = ActiveSheet ' Il faut remplacer ce code par Set ShFichier = Wb.Sheets("XXXXX")
' il manque sans doute une feuille Retraitement comptable
With ShFichier
DerniereLigneSh = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
Application.ScreenUpdating = False
For Each CelluleFichiers In AireFichiers
Workbooks.Open Filename:=RepertoireEnCours & CelluleFichiers & ".xlsx"
Set WbEnCours = ActiveWorkbook
Set ShNomFichier = WbEnCours.Worksheets(CelluleFichiers)
Set ShRetraitement = WbEnCours.Worksheets("RC")
With ShNomFichier
' Traitement de l'onglet Nom de fichier
'--------------------------------------
DerniereLigneShNomFichier = .Cells(.Rows.Count, 1).End(xlUp).Row
If DerniereLigneShNomFichier > 1 Then
.Range(.Cells(2, 1), .Cells(DerniereLigneShNomFichier, 40)).Copy
ShFnpFichier.Range("A" & DerniereLigneShFnp).PasteSpecial
DerniereLigneSh = ShFichier.Cells(.Rows.Count, 1).End(xlUp).Row + 1
End If
End With
With ShRetraitement
' Traitement de l'onglet Retraitements comptables
'------------------------------------------------
DerniereLigneShRetraitement = .Cells(.Rows.Count, 1).End(xlUp).Row
If DerniereLigneShRetraitement > 1 Then
.Range(.Cells(2, 1), .Cells(DerniereLigneShRetraitement, 40)).Copy
' ShFichier.Range("A" & DerniereLigneSh).PasteSpecial ' Changer l'onglet de destination dans WbFnp
' DerniereLigneSh = ShFichier.Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' A adapter
End If
End With
Application.DisplayAlerts = False
WbEnCours.Close savechanges:=False
Application.DisplayAlerts = True
Set WbEnCours = Nothing
Set ShNomFichier = Nothing
Set ShRetraitement = Nothing
Next CelluleFichiers
Application.ScreenUpdating = True
Set ShFnpFichier = Nothing
Set WbFnp = Nothing
Set AireFichiers = Nothing
Set ShBal = Nothing
Set WbFnpMacro = Nothing
End Sub |
Partager