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
|
Sub regroup()
Application.ScreenUpdating = False
Dim lastRow As Long
Dim j As Long
lastRow = ActiveSheet.Cells(Rows.Count, "E").End(xlUp).Row
If Range("A1") = "Edition Journaux" Then
Rows(1).Delete
End If
Range("D2") = "ODR"
For j = lastRow To 2 Step -1
If Range("E" & j).Value = "Total Cumulé" Or Range("E" & j).Value = "Total Mois" Or Range("E" & j).Value = "Total Général" Then
Rows(j).Delete
End If
Next j
Dim F1 As Worksheet
Dim F2 As Worksheet
Set F1 = Sheets("Feuil1")
Set F2 = Sheets("RESULTAT")
F2.Cells.ClearContents
Dim i As Long
On Error Resume Next
Set d = CreateObject("Scripting.Dictionary")
F2.Cells(1, 1).Resize(1, 8) = Array("Jour", "Journal", "Compte", "Auxiliaire", "Sens", "Montant", "Libellé Ecriture", "Pièce")
TblBD = F1.Range("A1:G" & F1.Range("G" & Rows.Count).End(xlUp).Row)
For i = 3 To UBound(TblBD)
If TblBD(i, 6) <> 0 Then
clé = Format(CDate(TblBD(i, 1) + F1.Cells(2, "E") - 1), "m/d/yyyy") & "|" & F1.Cells(2, "D") & "|" & TblBD(i, 4) & "|" & "" & "|" & "D" & "|" & TblBD(i, 6) & "|" & TblBD(i, 5) & "|" & TblBD(i, 2)
Else
clé = Format(CDate(TblBD(i, 1) + F1.Cells(2, "E") - 1), "m/d/yyyy") & "|" & F1.Cells(2, "D") & "|" & TblBD(i, 4) & "|" & "" & "|" & "C" & "|" & TblBD(i, 7) & "|" & TblBD(i, 5) & "|" & TblBD(i, 2)
End If
d(clé) = d(clé)
Next i
F2.Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
Application.DisplayAlerts = False
F2.Range("A2").Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
Application.ScreenUpdating = True
End Sub |
Partager