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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| Sub Build_ADN_FR()
' Compiler les données pour LCEFR
Application.ScreenUpdating = False
'Nettoyer fichier
Sheets("Retreated AX data").Cells.ClearContents
Sheets("Retreated Infoview data").Cells.ClearContents
Sheets("Dataloader").Cells.ClearContents
'Copier / coller les données AX de l'onglet d'origine dans l'onglet de retraitement
With Sheets("Original AX data")
.Range("A1:" & .Range("A1").SpecialCells(xlCellTypeLastCell).Address).Copy Sheets("Retreated AX data").Range("B1")
End With
'Indiquer le numéro de compte sur chaque ligne
With Sheets("Retreated AX data")
Dim LR1 As Long, AccNumber As Range
LR1 = .Cells(.Rows.Count, 2).End(xlUp).Row
For Each AccNumber In .Range("A2:A" & LR1)
If AccNumber.Offset(0, 1).Value = "CPT" Then
AccNumber.Value = AccNumber.Offset(0, 2).Value
Else
AccNumber.Value = AccNumber.Offset(-1, 0).Value
End If
Next AccNumber
'Supprimer lignes inutiles
Dim RToDel As Long
For RToDel = LR1 To 2 Step -1
If .Cells(RToDel, 6).Value = "Devise" Or .Cells(RToDel, 6).Value = "" Then
.Rows(RToDel).Delete
End If
Next RToDel
'MEF colonne des activités (SUPPRESPACE)
Dim LR2 As Long, Activity As Range
LR2 = .Cells(.Rows.Count, 1).End(xlUp).Row
For Each Activity In .Range("C2:C" & LR2)
Activity.Value = Trim(Activity.Value)
Next Activity
'Renommer les noms de champ
.Range("A1:J1") = Array("Compte", "Date", "Activité", "N°document", "Libellé", "Devise", "Montant en devise", "Montant", "Cumul", "Résultat")
'Calcul du résultat
Dim RAX As String
.Range("J2:J" & LR2).Formula = "=IF(OR(LEFT(TEXT(RC[-9],""000000""),1)=""6"",LEFT(TEXT(RC[-9],""000000""),1)=""7"",LEFT(TEXT(RC[-9],""000000""),3)=""186"",LEFT(TEXT(RC[-9],""000000""),3)=""187""),RC[-2],"""")"
RAX = Format(WorksheetFunction.Sum(.Range("J2:J" & LR2)), "#,##.00")
MsgBox "Source AX: Le résultat de la période est de " & RAX & " ", vbOKOnly, "Calcul du résultat"
End With
'Copier / coller les données Infoview de l'onglet d'origine dans l'onglet de retraitement
With Sheets("Original Infoview data")
Dim Matrix As Range, MStart As Range
Set MStart = .Cells.Find("Account Number", LookIn:=xlValues)
Set Matrix = .Range(MStart, MStart.End(xlToRight).End(xlDown))
Matrix.Copy Sheets("Retreated Infoview data").Range("A1")
Set MStart = Nothing
Set Matrix = Nothing
End With
'Calcul du résultat Infoview
With Sheets("Retreated Infoview data")
Dim LR3 As Long, RI As String
LR3 = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("J2:J" & LR3).Formula = "=IF(OR(LEFT(TEXT(RC[-9],""000000""),1)=""6"",LEFT(TEXT(RC[-9],""000000""),1)=""7"",LEFT(TEXT(RC[-9],""000000""),3)=""186"",LEFT(TEXT(RC[-9],""000000""),3)=""187""),RC[-1],"""")"
RI = Format(WorksheetFunction.Sum(.Range("J2:J" & LR3)), "#,##.00")
MsgBox "Source Infoview: Le résultat de la période est de " & RI & " ", vbOKOnly, "Calcul du résultat"
'Calcul de l'écart entre résultats AX & Infoview
Dim Disc As String, Question As Integer
Disc = Format(Round(CDbl(RAX - RI), 2), "#,##0.00")
Question = MsgBox("La différence entre le résultat d'AX et d'Infoview est de " & Disc & " est-ce correct ?", vbYesNo + vbQuestion, "Calcul de l'écart de résultat")
If Question = vbNo Then
MsgBox "Erreur dans l'intégration des fichiers, veuillez recommencer la procédure depuis le début", vbCritical, "Erreur"
End
Else
MsgBox "Continuer", vbOKOnly + vbInformation, "Compilation des données"
End If
End With
'Compiler données finales
'Copier BS
With Sheets("Retreated Infoview data")
.Range("A1:J" & LR3).AutoFilter Field:=10, Criteria1:="="
.Range("A2:A" & LR3).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("B2")
.Range("I2:I" & LR3).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("E2")
.Range("I2:I" & LR3).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("F2")
.Range("A1:J" & LR3).AutoFilter
End With
With Sheets("Dataloader")
Dim BSE As Long, PNLS As Long
BSE = .Cells(.Rows.Count, 2).End(xlUp).Row
PNLS = BSE + 1
End With
'Copier PNL
With Sheets("Retreated AX data")
.Range("A1:J" & LR2).AutoFilter Field:=10, Criteria1:="<>"
.Range("A2:A" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("B" & PNLS)
.Range("C2:C" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("D" & PNLS)
.Range("H2:H" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("E" & PNLS & ":F" & PNLS)
.Range("B2:B" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("G" & PNLS)
.Range("E2:E" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("H" & PNLS)
.Range("D2:D" & LR2).SpecialCells(xlCellTypeVisible).Copy Sheets("Dataloader").Range("I" & PNLS)
.Range("A1:J" & LR2).AutoFilter
End With |
Partager