Attribute VB_Name = "Common" Sub test() Dim sPath As String Dim calc_result As Variant Config.init sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Sales\Agent_Sales.xlsx" AgentSalesMeta = ReadAgentSalesWorkbook.Run(sPath) sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Product_Sales\Product_Sales.xlsx" ProductSalesMeta = ReadProductSalesWorkbook.Run(sPath) sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Working_Performance\Agent_Working_Performance.xlsx" AgentWorkingPerformanceMeta = ReadAgentWorkingPerfWorkbook.Run(sPath) CombinedSalesMeta = Array(AgentSalesMeta, ProductSalesMeta, AgentWorkingPerformanceMeta) Const FILE_PATH As String = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\main_xlsm\helloworld.xlsx" ' SAMonthAndQuart calc_result = CalcSalesAnalysisMonthlyAndQuart(CombinedSalesMeta) WriteSalesAnalysisMonthlyAndQuart calc_result, FILE_PATH ' write sales analysis product category ' SAProductCategory calc_result = CalcSalesAnalysisFileSalesAmount(CombinedSalesMeta) WriteSalesAnalysisFileSalesAmount calc_result, FILE_PATH calc_result = CalcSalesAnalysisFileSalesUnit(CombinedSalesMeta) WriteSalesAnalysisFileSalesUnit calc_result, FILE_PATH calc_result = APAnalysis_Calc(CombinedSalesMeta) APAnalysis_WriteTable calc_result, FILE_PATH calc_result = NoOfCasesTable_Calc(CombinedSalesMeta) NoOfCasesTable_WriteTable calc_result, FILE_PATH Debug.Print "done" End Sub Sub testDraftGraphData() Dim sPath As String Dim calc_result As Variant Config.init sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Sales\Agent_Sales.xlsx" AgentSalesMeta = ReadAgentSalesWorkbook.Run(sPath) sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Product_Sales\Product_Sales.xlsx" ProductSalesMeta = ReadProductSalesWorkbook.Run(sPath) sPath = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\parse_xlsx\parse_Agent_Working_Performance\Agent_Working_Performance.xlsx" AgentWorkingPerformanceMeta = ReadAgentWorkingPerfWorkbook.Run(sPath) CombinedSalesMeta = Array(AgentSalesMeta, ProductSalesMeta, AgentWorkingPerformanceMeta) Const FILE_PATH As String = "D:\_workspace\carousell-comission-playlist\jimmycheung93\task4\_poc\main_xlsm\helloworld_graph.xlsm" ' creasteXlsm(FILE_PATH) ' Sales Analysis (Monthly & Quartery) AddSheet FILE_PATH, "Sales Analysis Monthly_Quartery" calc_result = CalcSalesAnalysisMonthlyAndQuart(CombinedSalesMeta) SAMonthAndQuartGraph.MonthlySalesAmountTable calc_result, FILE_PATH SAMonthAndQuartGraph.MonthlySalesAmountGraph FILE_PATH SAMonthAndQuartGraph.MonthlySalesComissionTable calc_result, FILE_PATH SAMonthAndQuartGraph.MonthlySalesComissionGraph FILE_PATH ' Sales Analysis (Product Category) AddSheet FILE_PATH, "Sales Analysis Product Category" calc_result = CalcSalesAnalysisFileSalesAmount(CombinedSalesMeta) SAProdCatGraph.SalesAmountTable calc_result, FILE_PATH, 1 SAProdCatGraph.SalesAmountGraph calc_result, FILE_PATH, 1 calc_result = CalcSalesAnalysisFileSalesUnit(CombinedSalesMeta) SAProdCatGraph.SalesUnitTable calc_result, FILE_PATH, 1 SAProdCatGraph.SalesUnitGraph calc_result, FILE_PATH, 1 ' Agent performance analysis(Comm AddSheet FILE_PATH, "Agent performance analysis" calc_result = APAnalysis_Calc(CombinedSalesMeta) APAnalysisGraph.TeamATotalSalesCommisionPerformanceTable calc_result, FILE_PATH APAnalysisGraph.TeamATotalSalesCommisionPerformanceGraph calc_result, FILE_PATH APAnalysisGraph.TeamBTotalSalesCommisionPerformanceTable calc_result, FILE_PATH APAnalysisGraph.TeamBTotalSalesCommisionPerformanceGraph calc_result, FILE_PATH ' Rank of agent's sales commission (monthly) APAnalysisGraph.RankOfAgentSalesCommMonthlyTable calc_result, FILE_PATH APAnalysisGraph.RankOfAgentSalesCommMonthlyGraph calc_result, FILE_PATH ' ' Case persistency AddSheet FILE_PATH, "Case persistency" calc_result = NoOfCasesTable_Calc(CombinedSalesMeta) CasePersistencyGraph.TeamACaseDistributionTable calc_result, FILE_PATH CasePersistencyGraph.TeamACaseDistributionGraph calc_result, FILE_PATH CasePersistencyGraph.TeamBCaseDistributionTable calc_result, FILE_PATH CasePersistencyGraph.TeamBCaseDistributionGraph calc_result, FILE_PATH Debug.Print "done" End Sub Function GetQuarterFromMonth(ByVal month As Integer) As Integer GetQuarterFromMonth = Int((month - 1) / 3) + 1 End Function Function SortArray(ByRef arr() As Double) As Double() Dim i As Long, j As Long Dim temp As Variant For i = LBound(arr) To UBound(arr) - 1 For j = i + 1 To UBound(arr) If arr(i) < arr(j) Then temp = arr(i) arr(i) = arr(j) arr(j) = temp End If Next j Next i SortArray = arr End Function Sub creasteXlsm(ByVal FILE_PATH As String) Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") Dim wb As Object Set wb = xlApp.Workbooks.Add wb.SaveAs FILE_PATH, FileFormat:=52 wb.Close SaveChanges:=True xlApp.Quit Set xlApp = Nothing End Sub Function AddSheet(ByVal FILE_PATH As String, ByVal sheet_name As String) Dim wb As Workbook Dim ws As Worksheet ' Open the workbook Set wb = Workbooks.Open(FILE_PATH) ' Check if the sheet exists On Error Resume Next Set ws = wb.Sheets(sheet_name) On Error GoTo 0 ' If not found, create a new sheet If ws Is Nothing Then Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count)) ws.Name = sheet_name Else ' Empty the entire sheet ws.UsedRange.ClearContents End If End Function