Clean up the VBA. This coincides with version 10.0 in Teams.
WARNING! Do not assume the Excel file in this repo matches the VBA in the repo. The decision was made to use Teams for managing changes to the Excel tamplate because Git is ill-suited for binary files. The Excel file will be updated from time to time, but only when something major happens with the application as a whole. 1. Use the sheets' codenames to refer to them in code. This prevents breakage if the user changes the sheet name while working with the workbook. 2. Give the pivot tables proper, if not descriptive, names. 3. Simplify the code that detects a double-click in the pivot table. 4. Remove Windows_API as it was not being used. 5. Pare down TheBigOne to just the essential functions in Utils. 6. Refer to the data sources for the userforms' listboxes by using the worksheet.ListObjects collection.
This commit is contained in:
parent
ef8a21d319
commit
85829efd1d
@ -3,8 +3,8 @@ Option Explicit
|
|||||||
|
|
||||||
|
|
||||||
Public Sub TestPrintJSON()
|
Public Sub TestPrintJSON()
|
||||||
PrintJSON ParseJSON("[1,2,3]")
|
PrintJSON ParseJson("[1,2,3]")
|
||||||
PrintJSON ParseJSON("[{""a"":123,""b"":[56,7,78]}]")
|
PrintJSON ParseJson("[{""a"":123,""b"":[56,7,78]}]")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' This is definitely NOT a pretty printer. It was written merely as a debugging
|
' This is definitely NOT a pretty printer. It was written merely as a debugging
|
||||||
|
2730
VBA/TheBigOne.cls
2730
VBA/TheBigOne.cls
File diff suppressed because it is too large
Load Diff
9
VBA/ThisWorkbook.cls
Normal file
9
VBA/ThisWorkbook.cls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
VERSION 1.0 CLASS
|
||||||
|
BEGIN
|
||||||
|
MultiUse = -1 'True
|
||||||
|
END
|
||||||
|
Attribute VB_Name = "ThisWorkbook"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = True
|
@ -1,247 +0,0 @@
|
|||||||
VERSION 1.0 CLASS
|
|
||||||
BEGIN
|
|
||||||
MultiUse = -1 'True
|
|
||||||
END
|
|
||||||
Attribute VB_Name = "Windows_API"
|
|
||||||
Attribute VB_GlobalNameSpace = False
|
|
||||||
Attribute VB_Creatable = False
|
|
||||||
Attribute VB_PredeclaredId = False
|
|
||||||
Attribute VB_Exposed = False
|
|
||||||
Option Explicit
|
|
||||||
|
|
||||||
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
|
|
||||||
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
|
|
||||||
Private Declare PtrSafe Function GetClipboardOwner Lib "user32" () As LongPtr
|
|
||||||
Private Declare PtrSafe Function SetClipboardViewer Lib "user32" (ByVal hwnd As LongPtr) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GetClipboardViewer Lib "user32" () As LongPtr
|
|
||||||
Private Declare PtrSafe Function ChangeClipboardChain Lib "user32" (ByVal hwnd As LongPtr, ByVal hWndNext As LongPtr) As Long
|
|
||||||
Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As LongPtr) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GetClipboardData Lib "user32" Alias "GetClipboardDataA" (ByVal wFormat As Long) As LongPtr
|
|
||||||
Private Declare PtrSafe Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long
|
|
||||||
Private Declare PtrSafe Function CountClipboardFormats Lib "user32" () As Long
|
|
||||||
Private Declare PtrSafe Function EnumClipboardFormats Lib "user32" (ByVal wFormat As Long) As Long
|
|
||||||
Private Declare PtrSafe Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" _
|
|
||||||
(ByVal wFormat As Long, _
|
|
||||||
ByVal lpString As String, _
|
|
||||||
ByVal nMaxCount As Long) As Long
|
|
||||||
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
|
|
||||||
Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
|
|
||||||
Private Declare PtrSafe Function GetPriorityClipboardFormat Lib "user32" (lpPriorityList As Long, ByVal nCount As Long) As Long
|
|
||||||
Private Declare PtrSafe Function GetOpenClipboardWindow Lib "user32" () As LongPtr
|
|
||||||
Private Declare PtrSafe Function CharToOem Lib "user32" Alias "CharToOemA" _
|
|
||||||
(ByVal lpszSrc As String, _
|
|
||||||
ByVal lpszDst As String) As Long
|
|
||||||
Private Declare PtrSafe Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
|
|
||||||
Private Declare PtrSafe Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" _
|
|
||||||
(ByVal lpszSrc As String, _
|
|
||||||
ByVal lpszDst As String, _
|
|
||||||
ByVal cchDstLength As Long) As Long
|
|
||||||
Private Declare PtrSafe Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" _
|
|
||||||
(ByVal lpszSrc As String, _
|
|
||||||
ByVal lpszDst As String, _
|
|
||||||
ByVal cchDstLength As Long) As Long
|
|
||||||
Private Declare PtrSafe Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String
|
|
||||||
Private Declare PtrSafe Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long
|
|
||||||
Private Declare PtrSafe Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String
|
|
||||||
Private Declare PtrSafe Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long
|
|
||||||
Private Declare PtrSafe Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As String) As String
|
|
||||||
Private Declare PtrSafe Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As String, ByVal lpszCurrent As String) As String
|
|
||||||
Private Declare PtrSafe Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Any, ByVal lpString2 As Any) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As LongPtr) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalFree Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalHandle Lib "kernel32" (wMem As Any) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalReAlloc Lib "kernel32" (ByVal hMem As LongPtr, ByVal dwBytes As LongPtr, ByVal wFlags As Long) As LongPtr
|
|
||||||
Private Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As Long
|
|
||||||
Private Declare PtrSafe Function WaitMessage Lib "user32" () As Long
|
|
||||||
Private Declare PtrSafe Function PeekMessage Lib "user32" Alias "PeekMessageA" _
|
|
||||||
(ByRef lpMsg As MSG, ByVal hwnd As Long, _
|
|
||||||
ByVal wMsgFilterMin As Long, _
|
|
||||||
ByVal wMsgFilterMax As Long, _
|
|
||||||
ByVal wRemoveMsg As Long) As Long
|
|
||||||
Private Declare PtrSafe Function TranslateMessage Lib "user32" _
|
|
||||||
(ByRef lpMsg As MSG) As Long
|
|
||||||
Private Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" _
|
|
||||||
(ByVal hwnd As Long, _
|
|
||||||
ByVal wMsg As Long, _
|
|
||||||
ByVal wParam As Long, _
|
|
||||||
lParam As Any) As Long
|
|
||||||
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
|
|
||||||
(ByVal lpClassName As String, _
|
|
||||||
ByVal lpWindowName As String) As Long
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Type POINTAPI
|
|
||||||
x As Long
|
|
||||||
Y As Long
|
|
||||||
End Type
|
|
||||||
|
|
||||||
Private Type MSG
|
|
||||||
hwnd As Long
|
|
||||||
Message As Long
|
|
||||||
wParam As Long
|
|
||||||
lParam As Long
|
|
||||||
time As Long
|
|
||||||
pt As POINTAPI
|
|
||||||
End Type
|
|
||||||
|
|
||||||
Private Const WM_KEYDOWN As Long = &H100
|
|
||||||
Private Const PM_REMOVE As Long = &H1
|
|
||||||
Private Const WM_CHAR As Long = &H102
|
|
||||||
Private Const GHND As Long = &H42
|
|
||||||
Private Const CF_TEXT = 1
|
|
||||||
Private Const MAXSIZE = 40096
|
|
||||||
Private bExitLoop As Boolean
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Public Sub SetClipboard(sUniText As String)
|
|
||||||
Dim iStrPtr As LongPtr
|
|
||||||
Dim iLen As LongPtr
|
|
||||||
Dim iLock As LongPtr
|
|
||||||
Const GMEM_MOVEABLE As Long = &H2
|
|
||||||
Const GMEM_ZEROINIT As Long = &H40
|
|
||||||
Const CF_UNICODETEXT As Long = &HD
|
|
||||||
OpenClipboard 0&
|
|
||||||
EmptyClipboard
|
|
||||||
iLen = LenB(sUniText) + 2&
|
|
||||||
iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen)
|
|
||||||
iLock = GlobalLock(iStrPtr)
|
|
||||||
lstrcpy iLock, StrPtr(sUniText)
|
|
||||||
GlobalUnlock iStrPtr
|
|
||||||
SetClipboardData CF_UNICODETEXT, iStrPtr
|
|
||||||
CloseClipboard
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Sub ClipBoard_SetData(sUniText As String)
|
|
||||||
|
|
||||||
|
|
||||||
Dim hGlobalMemory As LongPtr
|
|
||||||
Dim lpGlobalMemory As LongPtr
|
|
||||||
Dim hClipMemory As LongPtr
|
|
||||||
Dim x As Long
|
|
||||||
|
|
||||||
hGlobalMemory = GlobalAlloc(GHND, Len(sUniText) + 1)
|
|
||||||
|
|
||||||
lpGlobalMemory = GlobalLock(hGlobalMemory)
|
|
||||||
|
|
||||||
lpGlobalMemory = lstrcpy(lpGlobalMemory, sUniText)
|
|
||||||
|
|
||||||
If GlobalUnlock(hGlobalMemory) <> 0 Then
|
|
||||||
GoTo OutOfHere2
|
|
||||||
End If
|
|
||||||
|
|
||||||
If OpenClipboard(0&) = 0 Then
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
x = EmptyClipboard()
|
|
||||||
|
|
||||||
hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)
|
|
||||||
|
|
||||||
OutOfHere2:
|
|
||||||
|
|
||||||
If CloseClipboard() = 0 Then
|
|
||||||
MsgBox ("ruh-roh")
|
|
||||||
End If
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function GetClipboard() As String
|
|
||||||
Dim iStrPtr As Long
|
|
||||||
Dim iLen As Long
|
|
||||||
Dim iLock As Long
|
|
||||||
Dim sUniText As String
|
|
||||||
Const CF_UNICODETEXT As Long = 13&
|
|
||||||
OpenClipboard 0&
|
|
||||||
If IsClipboardFormatAvailable(CF_UNICODETEXT) Then
|
|
||||||
iStrPtr = GetClipboardData(CF_UNICODETEXT)
|
|
||||||
If iStrPtr Then
|
|
||||||
iLock = GlobalLock(iStrPtr)
|
|
||||||
iLen = GlobalSize(iStrPtr)
|
|
||||||
sUniText = String$(iLen \ 2& - 1&, vbNullChar)
|
|
||||||
lstrcpy StrPtr(sUniText), iLock
|
|
||||||
GlobalUnlock iStrPtr
|
|
||||||
End If
|
|
||||||
GetClipboard = sUniText
|
|
||||||
End If
|
|
||||||
CloseClipboard
|
|
||||||
End Function
|
|
||||||
|
|
||||||
|
|
||||||
Sub TrackKeyPressInit()
|
|
||||||
|
|
||||||
Dim msgMessage As MSG
|
|
||||||
Dim bCancel As Boolean
|
|
||||||
Dim iKeyCode As Integer
|
|
||||||
Dim lXLhwnd As Long
|
|
||||||
|
|
||||||
On Error GoTo errHandler:
|
|
||||||
Application.EnableCancelKey = xlErrorHandler
|
|
||||||
'initialize this boolean flag.
|
|
||||||
bExitLoop = False
|
|
||||||
'get the app hwnd.
|
|
||||||
lXLhwnd = FindWindow("XLMAIN", Application.Caption)
|
|
||||||
Do
|
|
||||||
WaitMessage
|
|
||||||
'check for a key press and remove it from the msg queue.
|
|
||||||
If PeekMessage _
|
|
||||||
(msgMessage, lXLhwnd, WM_KEYDOWN, WM_KEYDOWN, PM_REMOVE) Then
|
|
||||||
'strore the virtual key code for later use.
|
|
||||||
iKeyCode = msgMessage.wParam
|
|
||||||
'translate the virtual key code into a char msg.
|
|
||||||
TranslateMessage msgMessage
|
|
||||||
PeekMessage msgMessage, lXLhwnd, WM_CHAR, _
|
|
||||||
WM_CHAR, PM_REMOVE
|
|
||||||
'for some obscure reason, the following
|
|
||||||
'keys are not trapped inside the event handler
|
|
||||||
'so we handle them here.
|
|
||||||
If iKeyCode = vbKeyBack Then SendKeys "{BS}"
|
|
||||||
If iKeyCode = vbKeyReturn Then SendKeys "{ENTER}"
|
|
||||||
'assume the cancel argument is False.
|
|
||||||
bCancel = False
|
|
||||||
'the VBA RaiseEvent statement does not seem to return ByRef arguments
|
|
||||||
'so we call a KeyPress routine rather than a propper event handler.
|
|
||||||
Sheet_KeyPress ByVal msgMessage.wParam, ByVal iKeyCode, ByVal Selection, bCancel
|
|
||||||
'if the key pressed is allowed post it to the application.
|
|
||||||
If bCancel = False Then
|
|
||||||
PostMessage _
|
|
||||||
lXLhwnd, msgMessage.Message, msgMessage.wParam, 0
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
errHandler:
|
|
||||||
'allow the processing of other msgs.
|
|
||||||
DoEvents
|
|
||||||
Loop Until bExitLoop
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub StopKeyWatch()
|
|
||||||
|
|
||||||
'set this boolean flag to exit the above loop.
|
|
||||||
bExitLoop = True
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
'\\This example illustrates how to catch worksheet
|
|
||||||
'\\Key strokes in order to prevent entering numeric
|
|
||||||
'\\characters in the Range "A1:D10" .
|
|
||||||
Private Sub Sheet_KeyPress(ByVal KeyAscii As Integer, ByVal KeyCode As Integer, ByVal Target As Range, Cancel As Boolean)
|
|
||||||
|
|
||||||
Const MSG As String = "Numeric Characters are not allowed in" & vbNewLine & "the Range: """
|
|
||||||
Const TITLE As String = "Invalid Entry !"
|
|
||||||
|
|
||||||
If Not Intersect(Target, Range("A1:D10")) Is Nothing Then
|
|
||||||
If Chr(KeyAscii) Like "[0-9]" Then
|
|
||||||
MsgBox MSG & Range("A1:D10").address(False, False) _
|
|
||||||
& """ .", vbCritical, TITLE
|
|
||||||
Cancel = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -19,9 +19,6 @@ Public ship As String
|
|||||||
Public useval As Boolean
|
Public useval As Boolean
|
||||||
Option Explicit
|
Option Explicit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub cbBill_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
|
Private Sub cbBill_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
|
||||||
Select Case KeyCode
|
Select Case KeyCode
|
||||||
Case 13
|
Case 13
|
||||||
@ -67,14 +64,9 @@ Private Sub UserForm_Activate()
|
|||||||
cbBill.value = bill
|
cbBill.value = bill
|
||||||
cbShip.value = ship
|
cbShip.value = ship
|
||||||
|
|
||||||
cbPart.list = Application.transpose(Worksheets("mdata").Range("A2:A2").CurrentRegion)
|
cbPart.list = shSupportingData.ListObjects("ITEM").DataBodyRange.value
|
||||||
'cbPart.list(1).Remove
|
cbBill.list = shSupportingData.ListObjects("CUSTOMER").DataBodyRange.value
|
||||||
cbBill.list = Application.transpose(Worksheets("mdata").Range("D2:D2").CurrentRegion)
|
cbShip.list = shSupportingData.ListObjects("CUSTOMER").DataBodyRange.value
|
||||||
'cbPart.list(1).Remove
|
|
||||||
cbShip.list = Application.transpose(Worksheets("mdata").Range("D2:D2").CurrentRegion)
|
|
||||||
'cbPart.list(1).Remove
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
BIN
VBA/build.frx
BIN
VBA/build.frx
Binary file not shown.
@ -56,17 +56,12 @@ End Sub
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub tbPrint_Change()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub UserForm_Activate()
|
Private Sub UserForm_Activate()
|
||||||
|
|
||||||
Dim fail As Boolean
|
Dim fail As Boolean
|
||||||
|
|
||||||
'x = handler.list_changes("{""user"":""" & Application.UserName & """}", fail)
|
'x = handler.list_changes("{""user"":""" & Application.UserName & """}", fail)
|
||||||
x = handler.list_changes("{""scenario"":{""quota_rep_descr"":""" & Sheets("data").Cells(2, 5) & """}}", fail)
|
x = handler.list_changes("{""scenario"":{""quota_rep_descr"":""" & shData.Cells(2, 5) & """}}", fail)
|
||||||
If fail Then
|
If fail Then
|
||||||
Me.Hide
|
Me.Hide
|
||||||
Exit Sub
|
Exit Sub
|
||||||
@ -86,8 +81,7 @@ Private Sub UserForm_Activate()
|
|||||||
lbHEAD.list(0, 4) = "Comment"
|
lbHEAD.list(0, 4) = "Comment"
|
||||||
lbHEAD.list(0, 5) = "Sales"
|
lbHEAD.list(0, 5) = "Sales"
|
||||||
lbHEAD.list(0, 6) = "id"
|
lbHEAD.list(0, 6) = "id"
|
||||||
Dim tbo As New TheBigOne
|
Call Utils.frmListBoxHeader(Me.lbHEAD, Me.lbHist, "Modifier", "Owner", "When", "Tag", "Comment", "Sales", "id")
|
||||||
Call tbo.frmListBoxHeader(Me.lbHEAD, Me.lbHist, "Modifier", "Owner", "When", "Tag", "Comment", "Sales", "id")
|
|
||||||
|
|
||||||
|
|
||||||
' make it pretty
|
' make it pretty
|
||||||
@ -126,7 +120,7 @@ Sub delete_selected()
|
|||||||
End If
|
End If
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
Sheets("Orders").PivotTables("PivotTable1").PivotCache.Refresh
|
shOrders.PivotTables("ptOrders").PivotCache.Refresh
|
||||||
|
|
||||||
Me.lbHist.clear
|
Me.lbHist.clear
|
||||||
Me.Hide
|
Me.Hide
|
||||||
|
BIN
VBA/changes.frx
BIN
VBA/changes.frx
Binary file not shown.
73
VBA/fpvt.frm
73
VBA/fpvt.frm
@ -129,10 +129,11 @@ End Sub
|
|||||||
Private Sub butMAdjust_Click()
|
Private Sub butMAdjust_Click()
|
||||||
|
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
|
Dim fail As Boolean
|
||||||
|
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
If month(i, 10) <> "" Then
|
If month(i, 10) <> "" Then
|
||||||
Call handler.request_adjust(CStr(month(i, 10)))
|
Call handler.request_adjust(CStr(month(i, 10)), fail)
|
||||||
End If
|
End If
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
@ -149,14 +150,14 @@ End Sub
|
|||||||
|
|
||||||
Private Sub cbGoSheet_Click()
|
Private Sub cbGoSheet_Click()
|
||||||
|
|
||||||
Worksheets("month").tbMCOM.text = ""
|
shMonthView.tbMCOM.text = ""
|
||||||
Worksheets("month").sbMPV.value = 0
|
shMonthView.sbMPV.value = 0
|
||||||
Worksheets("month").sbMPP.value = 0
|
shMonthView.sbMPP.value = 0
|
||||||
|
|
||||||
Me.Hide
|
Me.Hide
|
||||||
months.cbMTAG.value = ""
|
shMonthView.cbMTAG.value = ""
|
||||||
Worksheets("month").Visible = xlSheetVisible
|
shMonthView.Visible = xlSheetVisible
|
||||||
Sheets("month").Select
|
shMonthView.Select
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -229,10 +230,10 @@ Private Sub cbPLIST_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift
|
|||||||
End If
|
End If
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
vtable = x.ARRAYp_TransposeVar(vSwap)
|
vtable = Utils.ARRAYp_TransposeVar(vSwap)
|
||||||
vtable = x.ARRAYp_zerobased_addheader(vtable, "original", "sales", "replace", "fit")
|
vtable = Utils.ARRAYp_zerobased_addheader(vtable, "original", "sales", "replace", "fit")
|
||||||
vtable = x.ARRAYp_TransposeVar(vtable)
|
vtable = Utils.ARRAYp_TransposeVar(vtable)
|
||||||
ptable = x.json_from_table_zb(vtable, "rows", True, False)
|
ptable = Utils.json_from_table_zb(vtable, "rows", True, False)
|
||||||
Set jswap("swap") = JsonConverter.ParseJson(ptable)
|
Set jswap("swap") = JsonConverter.ParseJson(ptable)
|
||||||
|
|
||||||
jswap("scenario")("version") = handler.plan
|
jswap("scenario")("version") = handler.plan
|
||||||
@ -265,14 +266,14 @@ Private Sub dbGETSWAP_Click()
|
|||||||
lbSWAP.list = vSwap
|
lbSWAP.list = vSwap
|
||||||
'Call x.frmListBoxHeader(lbSWAPH, lbSWAP, "Original", "Sales", "Replacement", "Fit")
|
'Call x.frmListBoxHeader(lbSWAPH, lbSWAP, "Original", "Sales", "Replacement", "Fit")
|
||||||
|
|
||||||
cbPLIST.list = Application.transpose(Worksheets("mdata").Range("A2:A26267"))
|
cbPLIST.list = shSupportingData.ListObjects("ITEM").DataBodyRange.value
|
||||||
|
|
||||||
'---------build change-------------
|
'---------build change-------------
|
||||||
Set jswap = j
|
Set jswap = j
|
||||||
vtable = x.ARRAYp_TransposeVar(vSwap)
|
vtable = Utils.ARRAYp_TransposeVar(vSwap)
|
||||||
vtable = x.ARRAYp_zerobased_addheader(vtable, "original", "sales", "replace", "fit")
|
vtable = Utils.ARRAYp_zerobased_addheader(vtable, "original", "sales", "replace", "fit")
|
||||||
vtable = x.ARRAYp_TransposeVar(vtable)
|
vtable = Utils.ARRAYp_TransposeVar(vtable)
|
||||||
ptable = x.json_from_table_zb(vtable, "rows", True, False)
|
ptable = Utils.json_from_table_zb(vtable, "rows", True, False)
|
||||||
Set jswap("swap") = JsonConverter.ParseJson(ptable)
|
Set jswap("swap") = JsonConverter.ParseJson(ptable)
|
||||||
|
|
||||||
jswap("scenario")("version") = handler.plan
|
jswap("scenario")("version") = handler.plan
|
||||||
@ -464,10 +465,6 @@ Private Sub opPlugVol_Click()
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub pickSWAP_Change()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub sbpd_Change()
|
Private Sub sbpd_Change()
|
||||||
|
|
||||||
tbpd.value = sbpd.value
|
tbpd.value = sbpd.value
|
||||||
@ -592,13 +589,13 @@ Private Sub UserForm_Activate()
|
|||||||
Dim ok As Boolean
|
Dim ok As Boolean
|
||||||
Dim tags() As Variant
|
Dim tags() As Variant
|
||||||
|
|
||||||
Me.Caption = "Forecast Adjust " & Worksheets("config").Cells(8, 2)
|
Me.Caption = "Forecast Adjust " & shConfig.Cells(8, 2)
|
||||||
Me.mp.Visible = False
|
Me.mp.Visible = False
|
||||||
|
|
||||||
Me.lheader = "Loading..."
|
Me.lheader = "Loading..."
|
||||||
|
|
||||||
Set sp = handler.scenario_package("{""scenario"":" & scenario & "}", ok)
|
Set sp = handler.scenario_package("{""scenario"":" & scenario & "}", ok)
|
||||||
Call x.frmListBoxHeader(Me.lbSHDR, Me.lbSDET, "Field", "Selection")
|
Call Utils.frmListBoxHeader(Me.lbSHDR, Me.lbSDET, "Field", "Selection")
|
||||||
|
|
||||||
Me.lheader = "Ready"
|
Me.lheader = "Ready"
|
||||||
|
|
||||||
@ -633,7 +630,6 @@ Private Sub UserForm_Activate()
|
|||||||
|
|
||||||
For i = 1 To sp("package")("totals").Count
|
For i = 1 To sp("package")("totals").Count
|
||||||
Select Case sp("package")("totals")(i)("order_season")
|
Select Case sp("package")("totals")(i)("order_season")
|
||||||
'--------------changed this based on "totals" section----------
|
|
||||||
Case 2024
|
Case 2024
|
||||||
Select Case Me.iter_def(sp("package")("totals")(i)("iter"))
|
Select Case Me.iter_def(sp("package")("totals")(i)("iter"))
|
||||||
Case "baseline"
|
Case "baseline"
|
||||||
@ -753,7 +749,7 @@ Private Sub UserForm_Activate()
|
|||||||
cust(i, 3) = ""
|
cust(i, 3) = ""
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
Call x.frmListBoxHeader(lbCUSTH, lbCUST, "Bill-To", "Replace", "Ship-To", "Replace")
|
Call Utils.frmListBoxHeader(lbCUSTH, lbCUST, "Bill-To", "Replace", "Ship-To", "Replace")
|
||||||
|
|
||||||
|
|
||||||
'-------------load tags-------------------------------
|
'-------------load tags-------------------------------
|
||||||
@ -763,9 +759,9 @@ Private Sub UserForm_Activate()
|
|||||||
tags(i - 1, 0) = sp("package")("tags")(i)
|
tags(i - 1, 0) = sp("package")("tags")(i)
|
||||||
Next i
|
Next i
|
||||||
cbTAG.list = tags
|
cbTAG.list = tags
|
||||||
Sheets("month").cbMTAG.list = tags
|
shMonthView.cbMTAG.list = tags
|
||||||
cbTAG.ListRows = UBound(tags, 1) + 1
|
cbTAG.ListRows = UBound(tags, 1) + 1
|
||||||
months.cbMTAG.ListRows = UBound(tags, 1) + 1
|
shMonthView.cbMTAG.ListRows = UBound(tags, 1) + 1
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'----------reset spinner buttons----------------------
|
'----------reset spinner buttons----------------------
|
||||||
@ -777,11 +773,11 @@ Private Sub UserForm_Activate()
|
|||||||
lbSWAP.clear
|
lbSWAP.clear
|
||||||
pickSWAP.value = ""
|
pickSWAP.value = ""
|
||||||
pickSWAP.text = Mid(sp("package")("basket")(1)("part_descr"), 1, 8)
|
pickSWAP.text = Mid(sp("package")("basket")(1)("part_descr"), 1, 8)
|
||||||
pickSWAP.list = Application.transpose(Worksheets("mdata").Range("F2:F2").CurrentRegion)
|
pickSWAP.list = shSupportingData.ListObjects("MOLD").DataBodyRange.value
|
||||||
cbBT.list = Application.transpose(Worksheets("mdata").Range("D2:D2").CurrentRegion)
|
cbBT.list = shSupportingData.ListObjects("CUSTOMER").DataBodyRange.value
|
||||||
cbST.list = Application.transpose(Worksheets("mdata").Range("D2:D2").CurrentRegion)
|
cbST.list = shSupportingData.ListObjects("CUSTOMER").DataBodyRange.value
|
||||||
lbCUST.list = cust
|
lbCUST.list = cust
|
||||||
Call x.frmListBoxHeader(Me.lbSWAPH, Me.lbSWAP, "Original", "Sales", "Replacement", "Fit")
|
Call Utils.frmListBoxHeader(Me.lbSWAPH, Me.lbSWAP, "Original", "Sales", "Replacement", "Fit")
|
||||||
|
|
||||||
'---------price volume radio button colors----------
|
'---------price volume radio button colors----------
|
||||||
If opPlugPrice.value = True Then
|
If opPlugPrice.value = True Then
|
||||||
@ -899,10 +895,10 @@ Sub build_cust_swap()
|
|||||||
Dim vtable() As Variant
|
Dim vtable() As Variant
|
||||||
Dim ptable As String
|
Dim ptable As String
|
||||||
vtable = lbCUST.list
|
vtable = lbCUST.list
|
||||||
vtable = x.ARRAYp_TransposeVar(vtable)
|
vtable = Utils.ARRAYp_TransposeVar(vtable)
|
||||||
vtable = x.ARRAYp_zerobased_addheader(vtable, "bill", "bill_r", "ship", "ship_r")
|
vtable = Utils.ARRAYp_zerobased_addheader(vtable, "bill", "bill_r", "ship", "ship_r")
|
||||||
vtable = x.ARRAYp_TransposeVar(vtable)
|
vtable = Utils.ARRAYp_TransposeVar(vtable)
|
||||||
ptable = x.json_from_table_zb(vtable, "rows", True, False)
|
ptable = Utils.json_from_table_zb(vtable, "rows", True, False)
|
||||||
Set cswap = JsonConverter.ParseJson("{""scenario"":" & handler.scenario & "}")
|
Set cswap = JsonConverter.ParseJson("{""scenario"":" & handler.scenario & "}")
|
||||||
cswap("scenario")("version") = handler.plan
|
cswap("scenario")("version") = handler.plan
|
||||||
cswap("scenario")("iter") = handler.basis
|
cswap("scenario")("iter") = handler.basis
|
||||||
@ -1358,12 +1354,3 @@ Function iter_def(ByVal iter As String) As String
|
|||||||
iter_def = "exclude"
|
iter_def = "exclude"
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub new_part()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub UserForm_Initialize()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
BIN
VBA/fpvt.frx
BIN
VBA/fpvt.frx
Binary file not shown.
224
VBA/handler.bas
224
VBA/handler.bas
@ -5,8 +5,6 @@ Public sql As String
|
|||||||
Public jsql As String
|
Public jsql As String
|
||||||
Public scenario As String
|
Public scenario As String
|
||||||
Public sc() As Variant
|
Public sc() As Variant
|
||||||
Public x As New TheBigOne
|
|
||||||
Public wapi As New Windows_API
|
|
||||||
Public data() As String
|
Public data() As String
|
||||||
Public agg() As String
|
Public agg() As String
|
||||||
Public showprice As Boolean
|
Public showprice As Boolean
|
||||||
@ -21,8 +19,6 @@ Sub load_fpvt()
|
|||||||
|
|
||||||
Application.StatusBar = "retrieving selection data....."
|
Application.StatusBar = "retrieving selection data....."
|
||||||
|
|
||||||
'data = x.SHTp_Get("data", 1, 1, True)
|
|
||||||
'Call x.TBLp_Aggregate(data, True, True, True, Array(1, 3), Array("S", "S"), Array(30))
|
|
||||||
Dim i As Long
|
Dim i As Long
|
||||||
Dim s_tot As Object
|
Dim s_tot As Object
|
||||||
|
|
||||||
@ -78,7 +74,6 @@ End Function
|
|||||||
Sub pg_main_workset(rep As String)
|
Sub pg_main_workset(rep As String)
|
||||||
|
|
||||||
Dim req As New WinHttp.WinHttpRequest
|
Dim req As New WinHttp.WinHttpRequest
|
||||||
Dim wapi As New Windows_API
|
|
||||||
Dim wr As String
|
Dim wr As String
|
||||||
Dim json As Object
|
Dim json As Object
|
||||||
Dim i As Long
|
Dim i As Long
|
||||||
@ -181,8 +176,8 @@ Sub pg_main_workset(rep As String)
|
|||||||
|
|
||||||
ReDim str(UBound(res, 1), UBound(res, 2))
|
ReDim str(UBound(res, 1), UBound(res, 2))
|
||||||
|
|
||||||
Worksheets("data").Cells.ClearContents
|
shData.Cells.ClearContents
|
||||||
Call x.SHTp_DumpVar(res, "data", 1, 1, False, True, True)
|
Call Utils.SHTp_DumpVar(res, shData.Name, 1, 1, False, True, True)
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@ -214,7 +209,7 @@ Function request_adjust(doc As String, ByRef fail As Boolean) As Object
|
|||||||
'json("stamp") = Format(Now, "yyyy-mm-dd hh:mm:ss")
|
'json("stamp") = Format(Now, "yyyy-mm-dd hh:mm:ss")
|
||||||
'doc = JsonConverter.ConvertToJson(doc)
|
'doc = JsonConverter.ConvertToJson(doc)
|
||||||
|
|
||||||
server = Sheets("config").Cells(1, 2)
|
server = shConfig.Cells(1, 2)
|
||||||
|
|
||||||
With req
|
With req
|
||||||
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
||||||
@ -311,16 +306,16 @@ Function request_adjust(doc As String, ByRef fail As Boolean) As Object
|
|||||||
' Next i
|
' Next i
|
||||||
|
|
||||||
i = 1
|
i = 1
|
||||||
Do Until Sheets("data").Cells(i, 1) = ""
|
Do Until shData.Cells(i, 1) = ""
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
|
|
||||||
Call x.SHTp_DumpVar(res, "data", i, 1, False, False, True)
|
Call Utils.SHTp_DumpVar(res, shData.Name, i, 1, False, False, True)
|
||||||
|
|
||||||
|
|
||||||
'Call x.SHTp_Dump(str, "data", CLng(i), 1, False, False, 28, 29, 30, 31, 32)
|
'Call Utils.SHTp_Dump(str, shData.Name, CLng(i), 1, False, False, 28, 29, 30, 31, 32)
|
||||||
|
|
||||||
Sheets("Orders").PivotTables("PivotTable1").PivotCache.Refresh
|
shOrders.PivotTables("ptOrders").PivotCache.Refresh
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@ -329,13 +324,13 @@ Sub load_config()
|
|||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Dim j As Integer
|
Dim j As Integer
|
||||||
'----server to use---------------------------------------------------------
|
'----server to use---------------------------------------------------------
|
||||||
handler.server = Sheets("config").Cells(1, 2)
|
handler.server = shConfig.Cells(1, 2)
|
||||||
'---basis-----------------------------------------------------------------
|
'---basis-----------------------------------------------------------------
|
||||||
ReDim handler.basis(100)
|
ReDim handler.basis(100)
|
||||||
i = 2
|
i = 2
|
||||||
j = 0
|
j = 0
|
||||||
Do While Sheets("config").Cells(2, i) <> ""
|
Do While shConfig.Cells(2, i) <> ""
|
||||||
handler.basis(j) = Sheets("config").Cells(2, i)
|
handler.basis(j) = shConfig.Cells(2, i)
|
||||||
j = j + 1
|
j = j + 1
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
@ -344,8 +339,8 @@ Sub load_config()
|
|||||||
ReDim handler.baseline(100)
|
ReDim handler.baseline(100)
|
||||||
i = 2
|
i = 2
|
||||||
j = 0
|
j = 0
|
||||||
Do While Sheets("config").Cells(3, i) <> ""
|
Do While shConfig.Cells(3, i) <> ""
|
||||||
handler.baseline(j) = Sheets("config").Cells(3, i)
|
handler.baseline(j) = shConfig.Cells(3, i)
|
||||||
j = j + 1
|
j = j + 1
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
@ -354,14 +349,14 @@ Sub load_config()
|
|||||||
ReDim handler.adjust(100)
|
ReDim handler.adjust(100)
|
||||||
i = 2
|
i = 2
|
||||||
j = 0
|
j = 0
|
||||||
Do While Sheets("config").Cells(4, i) <> ""
|
Do While shConfig.Cells(4, i) <> ""
|
||||||
handler.adjust(j) = Sheets("config").Cells(4, i)
|
handler.adjust(j) = shConfig.Cells(4, i)
|
||||||
j = j + 1
|
j = j + 1
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
ReDim Preserve handler.adjust(j - 1)
|
ReDim Preserve handler.adjust(j - 1)
|
||||||
'---plan version--------------------------------------------------------------
|
'---plan version--------------------------------------------------------------
|
||||||
handler.plan = Sheets("config").Cells(9, 2)
|
handler.plan = shConfig.Cells(9, 2)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -370,103 +365,104 @@ Sub month_tosheet(ByRef pkg() As Variant, ByRef basket() As Variant)
|
|||||||
Dim j As Object
|
Dim j As Object
|
||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Dim r As Long
|
Dim r As Long
|
||||||
Dim sh As Worksheet
|
|
||||||
Set sh = Sheets("_month")
|
|
||||||
|
|
||||||
Set j = JsonConverter.ParseJson("{""scenario"":" & scenario & "}")
|
With shMonthUpdate
|
||||||
sh.Cells(1, 16) = JsonConverter.ConvertToJson(j)
|
|
||||||
|
|
||||||
For i = 0 To 12
|
Set j = JsonConverter.ParseJson("{""scenario"":" & scenario & "}")
|
||||||
'------------volume-------------------
|
.Cells(1, 16) = JsonConverter.ConvertToJson(j)
|
||||||
sh.Cells(i + 1, 1) = co_num(pkg(i, 1), 0)
|
|
||||||
sh.Cells(i + 1, 2) = co_num(pkg(i, 2), 0)
|
|
||||||
sh.Cells(i + 1, 3) = co_num(pkg(i, 3), 0)
|
|
||||||
sh.Cells(i + 1, 4) = 0
|
|
||||||
sh.Cells(i + 1, 5) = co_num(pkg(i, 4), 0)
|
|
||||||
|
|
||||||
'------------value----------------------
|
For i = 0 To 12
|
||||||
sh.Cells(i + 1, 11) = co_num(pkg(i, 5), 0)
|
'------------volume-------------------
|
||||||
sh.Cells(i + 1, 12) = co_num(pkg(i, 6), 0)
|
.Cells(i + 1, 1) = co_num(pkg(i, 1), 0)
|
||||||
sh.Cells(i + 1, 13) = co_num(pkg(i, 7), 0)
|
.Cells(i + 1, 2) = co_num(pkg(i, 2), 0)
|
||||||
sh.Cells(i + 1, 14) = 0
|
.Cells(i + 1, 3) = co_num(pkg(i, 3), 0)
|
||||||
sh.Cells(i + 1, 15) = co_num(pkg(i, 8), 0)
|
.Cells(i + 1, 4) = 0
|
||||||
|
.Cells(i + 1, 5) = co_num(pkg(i, 4), 0)
|
||||||
|
|
||||||
'-------------price----------------------
|
'------------value----------------------
|
||||||
If i > 0 Then
|
.Cells(i + 1, 11) = co_num(pkg(i, 5), 0)
|
||||||
'--prior--
|
.Cells(i + 1, 12) = co_num(pkg(i, 6), 0)
|
||||||
If co_num(pkg(i, 1), 0) = 0 Then
|
.Cells(i + 1, 13) = co_num(pkg(i, 7), 0)
|
||||||
sh.Cells(i + 1, 6) = 0
|
.Cells(i + 1, 14) = 0
|
||||||
Else
|
.Cells(i + 1, 15) = co_num(pkg(i, 8), 0)
|
||||||
sh.Cells(i + 1, 6) = pkg(i, 5) / pkg(i, 1)
|
|
||||||
End If
|
|
||||||
|
|
||||||
'--base--
|
'-------------price----------------------
|
||||||
If co_num(pkg(i, 2), 0) = 0 Then
|
If i > 0 Then
|
||||||
'if there is no monthly base volume,
|
'--prior--
|
||||||
'then use the prior price, if there was no prior price,
|
If co_num(pkg(i, 1), 0) = 0 Then
|
||||||
'then inherit the average price for the year before current adjustments
|
.Cells(i + 1, 6) = 0
|
||||||
If sh.Cells(i, 7) <> 0 Then
|
|
||||||
sh.Cells(i + 1, 7) = sh.Cells(i, 7)
|
|
||||||
Else
|
Else
|
||||||
If pkg(13, 1) + pkg(13, 2) = 0 Then
|
.Cells(i + 1, 6) = pkg(i, 5) / pkg(i, 1)
|
||||||
sh.Cells(i + 1, 7) = 0
|
|
||||||
Else
|
|
||||||
sh.Cells(i + 1, 7) = (pkg(13, 5) + pkg(13, 6)) / (pkg(13, 1) + pkg(13, 2))
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
sh.Cells(i + 1, 7) = pkg(i, 6) / pkg(i, 2)
|
|
||||||
End If
|
|
||||||
|
|
||||||
'--adjust--
|
'--base--
|
||||||
If (pkg(i, 3) + pkg(i, 2)) = 0 Or pkg(i, 2) = 0 Then
|
If co_num(pkg(i, 2), 0) = 0 Then
|
||||||
sh.Cells(i + 1, 8) = 0
|
'if there is no monthly base volume,
|
||||||
Else
|
'then use the prior price, if there was no prior price,
|
||||||
sh.Cells(i + 1, 8) = (Round(pkg(i, 7), 10) + Round(pkg(i, 6), 10)) / (Round(pkg(i, 3), 10) + Round(pkg(i, 2), 10)) - (Round(pkg(i, 6), 10) / Round(pkg(i, 2), 10))
|
'then inherit the average price for the year before current adjustments
|
||||||
End If
|
If .Cells(i, 7) <> 0 Then
|
||||||
|
.Cells(i + 1, 7) = .Cells(i, 7)
|
||||||
'--current adjust--
|
Else
|
||||||
sh.Cells(i + 1, 9) = 0
|
If pkg(13, 1) + pkg(13, 2) = 0 Then
|
||||||
|
.Cells(i + 1, 7) = 0
|
||||||
'--forecast--
|
Else
|
||||||
If co_num(pkg(i, 4), 0) = 0 Then
|
.Cells(i + 1, 7) = (pkg(13, 5) + pkg(13, 6)) / (pkg(13, 1) + pkg(13, 2))
|
||||||
'if there is no monthly base volume,
|
End If
|
||||||
'then use the prior price, if there was no prior price,
|
End If
|
||||||
'then inherit the average price for the year before current adjustments
|
|
||||||
If sh.Cells(i, 10) <> 0 Then
|
|
||||||
sh.Cells(i + 1, 10) = sh.Cells(i, 10)
|
|
||||||
Else
|
Else
|
||||||
If pkg(13, 1) + pkg(13, 2) = 0 Then
|
.Cells(i + 1, 7) = pkg(i, 6) / pkg(i, 2)
|
||||||
sh.Cells(i + 1, 10) = 0
|
|
||||||
Else
|
|
||||||
sh.Cells(i + 1, 10) = (pkg(13, 5) + pkg(13, 6)) / (pkg(13, 1) + pkg(13, 2))
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
sh.Cells(i + 1, 10) = pkg(i, 8) / pkg(i, 4)
|
'--adjust--
|
||||||
|
If (pkg(i, 3) + pkg(i, 2)) = 0 Or pkg(i, 2) = 0 Then
|
||||||
|
.Cells(i + 1, 8) = 0
|
||||||
|
Else
|
||||||
|
.Cells(i + 1, 8) = (Round(pkg(i, 7), 10) + Round(pkg(i, 6), 10)) / (Round(pkg(i, 3), 10) + Round(pkg(i, 2), 10)) - (Round(pkg(i, 6), 10) / Round(pkg(i, 2), 10))
|
||||||
|
End If
|
||||||
|
|
||||||
|
'--current adjust--
|
||||||
|
.Cells(i + 1, 9) = 0
|
||||||
|
|
||||||
|
'--forecast--
|
||||||
|
If co_num(pkg(i, 4), 0) = 0 Then
|
||||||
|
'if there is no monthly base volume,
|
||||||
|
'then use the prior price, if there was no prior price,
|
||||||
|
'then inherit the average price for the year before current adjustments
|
||||||
|
If .Cells(i, 10) <> 0 Then
|
||||||
|
.Cells(i + 1, 10) = .Cells(i, 10)
|
||||||
|
Else
|
||||||
|
If pkg(13, 1) + pkg(13, 2) = 0 Then
|
||||||
|
.Cells(i + 1, 10) = 0
|
||||||
|
Else
|
||||||
|
.Cells(i + 1, 10) = (pkg(13, 5) + pkg(13, 6)) / (pkg(13, 1) + pkg(13, 2))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
.Cells(i + 1, 10) = pkg(i, 8) / pkg(i, 4)
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
Next i
|
||||||
|
|
||||||
Next i
|
'scenario
|
||||||
|
.Range("R1:S1000").ClearContents
|
||||||
|
For i = 0 To UBound(handler.sc, 1)
|
||||||
|
.Cells(i + 1, 18) = handler.sc(i, 0)
|
||||||
|
.Cells(i + 1, 19) = handler.sc(i, 1)
|
||||||
|
Next i
|
||||||
|
|
||||||
'scenario
|
'basket
|
||||||
Sheets("_month").Range("R1:S1000").ClearContents
|
.Range("U1:AC100000").ClearContents
|
||||||
For i = 0 To UBound(handler.sc, 1)
|
Call Utils.SHTp_DumpVar(basket, .Name, 1, 21, False, False, True)
|
||||||
sh.Cells(i + 1, 18) = handler.sc(i, 0)
|
Call Utils.SHTp_DumpVar(basket, .Name, 1, 26, False, False, True)
|
||||||
sh.Cells(i + 1, 19) = handler.sc(i, 1)
|
shConfig.Cells(5, 2) = 0
|
||||||
Next i
|
shConfig.Cells(6, 2) = 0
|
||||||
|
shConfig.Cells(7, 2) = 0
|
||||||
|
|
||||||
'basket
|
shMonthView.load_sheet
|
||||||
sh.Range("U1:AC100000").ClearContents
|
|
||||||
Call x.SHTp_DumpVar(basket, "_month", 1, 21, False, False, True)
|
|
||||||
Call x.SHTp_DumpVar(basket, "_month", 1, 26, False, False, True)
|
|
||||||
Sheets("config").Cells(5, 2) = 0
|
|
||||||
Sheets("config").Cells(6, 2) = 0
|
|
||||||
Sheets("config").Cells(7, 2) = 0
|
|
||||||
|
|
||||||
months.load_sheet
|
|
||||||
|
|
||||||
|
End With
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -495,7 +491,7 @@ Function list_changes(doc As String, ByRef fail As Boolean) As Variant()
|
|||||||
Exit Function
|
Exit Function
|
||||||
End If
|
End If
|
||||||
|
|
||||||
server = Sheets("config").Cells(1, 2)
|
server = shConfig.Cells(1, 2)
|
||||||
|
|
||||||
With req
|
With req
|
||||||
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
||||||
@ -560,11 +556,9 @@ Function undo_changes(ByVal logid As Integer, ByRef fail As Boolean) As Variant(
|
|||||||
|
|
||||||
'---------loop through and get a list of each row that needs deleted?-----
|
'---------loop through and get a list of each row that needs deleted?-----
|
||||||
|
|
||||||
Set ds = Sheets("data")
|
|
||||||
|
|
||||||
j = 0
|
j = 0
|
||||||
For i = 1 To 100
|
For i = 1 To 100
|
||||||
If ds.Cells(1, i) = "logid" Then
|
If shData.Cells(1, i) = "logid" Then
|
||||||
j = i
|
j = i
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
@ -577,15 +571,15 @@ Function undo_changes(ByVal logid As Integer, ByRef fail As Boolean) As Variant(
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
i = 2
|
i = 2
|
||||||
While ds.Cells(i, 1) <> ""
|
With shData
|
||||||
If ds.Cells(i, j) = logid Then
|
While .Cells(i, 1) <> ""
|
||||||
ds.Rows(i).Delete
|
If .Cells(i, j) = logid Then
|
||||||
Else
|
.Rows(i).Delete
|
||||||
i = i + 1
|
Else
|
||||||
End If
|
i = i + 1
|
||||||
Wend
|
End If
|
||||||
|
Wend
|
||||||
|
End With
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@ -610,7 +604,7 @@ Function get_swap_fit(doc As String, ByRef fail As Boolean) As Variant()
|
|||||||
Exit Function
|
Exit Function
|
||||||
End If
|
End If
|
||||||
|
|
||||||
server = Sheets("config").Cells(1, 2)
|
server = shConfig.Cells(1, 2)
|
||||||
|
|
||||||
With req
|
With req
|
||||||
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = SslErrorFlag_Ignore_All
|
||||||
|
@ -25,7 +25,7 @@ Private Sub cbOK_Click()
|
|||||||
|
|
||||||
openf.Caption = "retrieving data......"
|
openf.Caption = "retrieving data......"
|
||||||
Call handler.pg_main_workset(cbDSM.value)
|
Call handler.pg_main_workset(cbDSM.value)
|
||||||
Sheets("Orders").PivotTables("PivotTable1").PivotCache.Refresh
|
shOrders.PivotTables("ptOrders").PivotCache.Refresh
|
||||||
Application.StatusBar = False
|
Application.StatusBar = False
|
||||||
openf.Hide
|
openf.Hide
|
||||||
|
|
||||||
@ -34,18 +34,10 @@ End Sub
|
|||||||
Private Sub UserForm_Activate()
|
Private Sub UserForm_Activate()
|
||||||
|
|
||||||
'handler.server = "http://192.168.1.69:3000"
|
'handler.server = "http://192.168.1.69:3000"
|
||||||
handler.server = Sheets("config").Cells(1, 2)
|
handler.server = shConfig.Cells(1, 2)
|
||||||
|
|
||||||
Dim x As New TheBigOne
|
|
||||||
Dim d() As String
|
|
||||||
|
|
||||||
openf.Caption = "Select a DSM"
|
openf.Caption = "Select a DSM"
|
||||||
d = x.SHTp_Get("reps", 1, 1, True)
|
cbDSM.list = shSupportingData.ListObjects("DSM").DataBodyRange.value
|
||||||
|
|
||||||
For i = 1 To UBound(d, 2)
|
|
||||||
Call cbDSM.AddItem(d(0, i))
|
|
||||||
Next i
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
BIN
VBA/openf.frx
BIN
VBA/openf.frx
Binary file not shown.
@ -39,9 +39,7 @@ End Sub
|
|||||||
Private Sub UserForm_Activate()
|
Private Sub UserForm_Activate()
|
||||||
|
|
||||||
useval = False
|
useval = False
|
||||||
|
cbPart.list = shSupportingData.ListObjects("ITEM").DataBodyRange.value
|
||||||
cbPart.list = Application.transpose(Worksheets("mdata").Range("A2:A26267"))
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
BIN
VBA/part.frx
BIN
VBA/part.frx
Binary file not shown.
9
VBA/shConfig.cls
Normal file
9
VBA/shConfig.cls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
VERSION 1.0 CLASS
|
||||||
|
BEGIN
|
||||||
|
MultiUse = -1 'True
|
||||||
|
END
|
||||||
|
Attribute VB_Name = "shConfig"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = True
|
9
VBA/shData.cls
Normal file
9
VBA/shData.cls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
VERSION 1.0 CLASS
|
||||||
|
BEGIN
|
||||||
|
MultiUse = -1 'True
|
||||||
|
END
|
||||||
|
Attribute VB_Name = "shData"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = True
|
9
VBA/shMonthUpdate.cls
Normal file
9
VBA/shMonthUpdate.cls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
VERSION 1.0 CLASS
|
||||||
|
BEGIN
|
||||||
|
MultiUse = -1 'True
|
||||||
|
END
|
||||||
|
Attribute VB_Name = "shMonthUpdate"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = True
|
@ -2,14 +2,13 @@ VERSION 1.0 CLASS
|
|||||||
BEGIN
|
BEGIN
|
||||||
MultiUse = -1 'True
|
MultiUse = -1 'True
|
||||||
END
|
END
|
||||||
Attribute VB_Name = "months"
|
Attribute VB_Name = "shMonthView"
|
||||||
Attribute VB_GlobalNameSpace = False
|
Attribute VB_GlobalNameSpace = False
|
||||||
Attribute VB_Creatable = False
|
Attribute VB_Creatable = False
|
||||||
Attribute VB_PredeclaredId = True
|
Attribute VB_PredeclaredId = True
|
||||||
Attribute VB_Exposed = True
|
Attribute VB_Exposed = True
|
||||||
Option Explicit
|
Option Explicit
|
||||||
|
|
||||||
Private x As New TheBigOne
|
|
||||||
Private units() As Variant
|
Private units() As Variant
|
||||||
Private price() As Variant
|
Private price() As Variant
|
||||||
Private sales() As Variant
|
Private sales() As Variant
|
||||||
@ -31,13 +30,6 @@ Private b() As Variant 'holds basket
|
|||||||
Private did_load_config As Boolean
|
Private did_load_config As Boolean
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub cbMTAG_Change()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub sbMPP_Change()
|
Private Sub sbMPP_Change()
|
||||||
Dim m As Worksheet
|
Dim m As Worksheet
|
||||||
Dim i As Long
|
Dim i As Long
|
||||||
@ -46,7 +38,7 @@ Private Sub sbMPP_Change()
|
|||||||
|
|
||||||
dumping = True
|
dumping = True
|
||||||
|
|
||||||
Set m = Sheets("month")
|
Set m = shMonthView
|
||||||
m.Cells(19, 11) = sbMPP.value / 100
|
m.Cells(19, 11) = sbMPP.value / 100
|
||||||
For i = 6 To 17
|
For i = 6 To 17
|
||||||
m.Cells(i, 11) = (m.Cells(i, 9)) * m.Cells(19, 11)
|
m.Cells(i, 11) = (m.Cells(i, 9)) * m.Cells(19, 11)
|
||||||
@ -68,7 +60,7 @@ Private Sub sbMPV_Change()
|
|||||||
|
|
||||||
dumping = True
|
dumping = True
|
||||||
|
|
||||||
Set m = Sheets("month")
|
Set m = shMonthView
|
||||||
m.Cells(19, 5) = sbMPV.value / 100
|
m.Cells(19, 5) = sbMPV.value / 100
|
||||||
For i = 6 To 17
|
For i = 6 To 17
|
||||||
If m.Cells(i, 5) <> "" Then
|
If m.Cells(i, 5) <> "" Then
|
||||||
@ -117,7 +109,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
|
|||||||
If Not Intersect(Target, Range("Q6:Q17")) Is Nothing Then Call Me.ms_adj
|
If Not Intersect(Target, Range("Q6:Q17")) Is Nothing Then Call Me.ms_adj
|
||||||
If Not Intersect(Target, Range("R6:R17")) Is Nothing Then Call Me.ms_set
|
If Not Intersect(Target, Range("R6:R17")) Is Nothing Then Call Me.ms_set
|
||||||
|
|
||||||
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And Worksheets("config").Cells(6, 2) = 1 Then
|
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And shConfig.Cells(6, 2) = 1 Then
|
||||||
Set basket_touch = Target
|
Set basket_touch = Target
|
||||||
Call Me.get_edit_basket
|
Call Me.get_edit_basket
|
||||||
Set basket_touch = Nothing
|
Set basket_touch = Nothing
|
||||||
@ -129,7 +121,7 @@ End Sub
|
|||||||
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
||||||
|
|
||||||
|
|
||||||
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And Worksheets("config").Cells(6, 2) = 1 Then
|
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And shConfig.Cells(6, 2) = 1 Then
|
||||||
Cancel = True
|
Cancel = True
|
||||||
Call Me.basket_pick(Target)
|
Call Me.basket_pick(Target)
|
||||||
Target.Select
|
Target.Select
|
||||||
@ -140,7 +132,7 @@ End Sub
|
|||||||
|
|
||||||
Sub picker_shortcut()
|
Sub picker_shortcut()
|
||||||
|
|
||||||
If Not Intersect(Selection, Range("B33:Q1000")) Is Nothing And Worksheets("config").Cells(6, 2) = 1 Then
|
If Not Intersect(Selection, Range("B33:Q1000")) Is Nothing And shConfig.Cells(6, 2) = 1 Then
|
||||||
Call Me.basket_pick(Selection)
|
Call Me.basket_pick(Selection)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -148,7 +140,7 @@ End Sub
|
|||||||
|
|
||||||
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
|
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
|
||||||
|
|
||||||
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And Worksheets("config").Cells(6, 2) = 1 Then
|
If Not Intersect(Target, Range("B33:Q1000")) Is Nothing And shConfig.Cells(6, 2) = 1 Then
|
||||||
Cancel = True
|
Cancel = True
|
||||||
Call Me.basket_pick(Target)
|
Call Me.basket_pick(Target)
|
||||||
Target.Select
|
Target.Select
|
||||||
@ -228,7 +220,7 @@ On Error GoTo errh
|
|||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Call Me.get_sheet
|
Call Me.get_sheet
|
||||||
Dim vp As String
|
Dim vp As String
|
||||||
vp = Sheets("month").Range("Q2")
|
vp = shMonthView.Range("Q2")
|
||||||
|
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
If sales(i, 5) = "" Then sales(i, 5) = 0
|
If sales(i, 5) = "" Then sales(i, 5) = 0
|
||||||
@ -284,7 +276,7 @@ Sub ms_adj()
|
|||||||
Dim i As Integer
|
Dim i As Integer
|
||||||
Call Me.get_sheet
|
Call Me.get_sheet
|
||||||
Dim vp As String
|
Dim vp As String
|
||||||
vp = Sheets("month").Range("Q2")
|
vp = shMonthView.Range("Q2")
|
||||||
|
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
If sales(i, 4) = "" Then sales(i, 4) = 0
|
If sales(i, 4) = "" Then sales(i, 4) = 0
|
||||||
@ -344,7 +336,7 @@ Sub get_sheet()
|
|||||||
tprice = Range("H18:L18")
|
tprice = Range("H18:L18")
|
||||||
tsales = Range("N18:R18")
|
tsales = Range("N18:R18")
|
||||||
ReDim adjust(12)
|
ReDim adjust(12)
|
||||||
Set basejson = JsonConverter.ParseJson(Sheets("_month").Range("P1").FormulaR1C1)
|
Set basejson = JsonConverter.ParseJson(shMonthUpdate.Range("P1").FormulaR1C1)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -361,15 +353,15 @@ Sub set_sheet()
|
|||||||
Range("H18:L18").FormulaR1C1 = tprice
|
Range("H18:L18").FormulaR1C1 = tprice
|
||||||
Range("N18:R18").FormulaR1C1 = tsales
|
Range("N18:R18").FormulaR1C1 = tsales
|
||||||
Range("T6:U18").ClearContents
|
Range("T6:U18").ClearContents
|
||||||
Call x.SHTp_DumpVar(x.SHTp_get_block(Worksheets("_month").Range("R1")), "month", 6, 20, False, False, False)
|
Call Utils.SHTp_DumpVar(Utils.SHTp_get_block(shMonthUpdate.Range("R1")), shMonthView.Name, 6, 20, False, False, False)
|
||||||
'Sheets("month").Range("B32:Q5000").ClearContents
|
'shMonthView.Range("B32:Q5000").ClearContents
|
||||||
|
|
||||||
If Me.newpart Then
|
If Me.newpart Then
|
||||||
Sheets("_month").Range("P2:P13").ClearContents
|
shMonthUpdate.Range("P2:P13").ClearContents
|
||||||
Sheets("_month").Cells(2, 16) = JsonConverter.ConvertToJson(np)
|
shMonthUpdate.Cells(2, 16) = JsonConverter.ConvertToJson(np)
|
||||||
Else
|
Else
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
Sheets("_month").Cells(i + 1, 16) = JsonConverter.ConvertToJson(adjust(i))
|
shMonthUpdate.Cells(i + 1, 16) = JsonConverter.ConvertToJson(adjust(i))
|
||||||
Next i
|
Next i
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -379,16 +371,16 @@ End Sub
|
|||||||
|
|
||||||
Sub load_sheet()
|
Sub load_sheet()
|
||||||
|
|
||||||
units = Sheets("_month").Range("A2:E13").FormulaR1C1
|
units = shMonthUpdate.Range("A2:E13").FormulaR1C1
|
||||||
price = Sheets("_month").Range("F2:J13").FormulaR1C1
|
price = shMonthUpdate.Range("F2:J13").FormulaR1C1
|
||||||
sales = Sheets("_month").Range("K2:O13").FormulaR1C1
|
sales = shMonthUpdate.Range("K2:O13").FormulaR1C1
|
||||||
scenario = Sheets("_month").Range("R1:S13").FormulaR1C1
|
scenario = shMonthUpdate.Range("R1:S13").FormulaR1C1
|
||||||
tunits = Range("B18:F18")
|
tunits = Range("B18:F18")
|
||||||
tprice = Range("H18:L18")
|
tprice = Range("H18:L18")
|
||||||
tsales = Range("N18:R18")
|
tsales = Range("N18:R18")
|
||||||
'reset basket
|
'reset basket
|
||||||
Sheets("_month").Range("U1:X10000").ClearContents
|
shMonthUpdate.Range("U1:X10000").ClearContents
|
||||||
Call x.SHTp_DumpVar(x.SHTp_get_block(Worksheets("_month").Range("Z1")), "_month", 1, 21, False, False, False)
|
Call Utils.SHTp_DumpVar(Utils.SHTp_get_block(shMonthUpdate.Range("Z1")), shMonthUpdate.Name, 1, 21, False, False, False)
|
||||||
ReDim adjust(12)
|
ReDim adjust(12)
|
||||||
Call Me.crunch_array
|
Call Me.crunch_array
|
||||||
Call Me.set_sheet
|
Call Me.set_sheet
|
||||||
@ -410,17 +402,17 @@ Sub set_format()
|
|||||||
Dim val_adj As Range
|
Dim val_adj As Range
|
||||||
Dim val_set As Range
|
Dim val_set As Range
|
||||||
|
|
||||||
Set prices = Sheets("month").Range("H6:L17")
|
Set prices = shMonthView.Range("H6:L17")
|
||||||
Set price_adj = Sheets("month").Range("K6:K17")
|
Set price_adj = shMonthView.Range("K6:K17")
|
||||||
Set price_set = Sheets("month").Range("L6:L17")
|
Set price_set = shMonthView.Range("L6:L17")
|
||||||
|
|
||||||
Set vol = Sheets("month").Range("B6:F17")
|
Set vol = shMonthView.Range("B6:F17")
|
||||||
Set vol_adj = Sheets("month").Range("E6:E17")
|
Set vol_adj = shMonthView.Range("E6:E17")
|
||||||
Set vol_set = Sheets("month").Range("F6:F17")
|
Set vol_set = shMonthView.Range("F6:F17")
|
||||||
|
|
||||||
Set val = Sheets("month").Range("N6:R17")
|
Set val = shMonthView.Range("N6:R17")
|
||||||
Set val_adj = Sheets("month").Range("Q6:Q17")
|
Set val_adj = shMonthView.Range("Q6:Q17")
|
||||||
Set val_set = Sheets("month").Range("R6:R17")
|
Set val_set = shMonthView.Range("R6:R17")
|
||||||
|
|
||||||
Call Me.format_price(prices)
|
Call Me.format_price(prices)
|
||||||
Call Me.set_border(prices)
|
Call Me.set_border(prices)
|
||||||
@ -541,8 +533,8 @@ Sub build_json()
|
|||||||
ReDim handler.basis(100)
|
ReDim handler.basis(100)
|
||||||
i = 2
|
i = 2
|
||||||
j = 0
|
j = 0
|
||||||
Do While Sheets("config").Cells(2, i) <> ""
|
Do While shConfig.Cells(2, i) <> ""
|
||||||
handler.basis(j) = Sheets("config").Cells(2, i)
|
handler.basis(j) = shConfig.Cells(2, i)
|
||||||
j = j + 1
|
j = j + 1
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
@ -568,7 +560,7 @@ Sub build_json()
|
|||||||
Set o = JsonConverter.ParseJson("{}")
|
Set o = JsonConverter.ParseJson("{}")
|
||||||
o("amount") = sales(pos, 5)
|
o("amount") = sales(pos, 5)
|
||||||
o("qty") = units(pos, 5)
|
o("qty") = units(pos, 5)
|
||||||
Set m(Worksheets("month").Cells(5 + pos, 1).value) = JsonConverter.ParseJson(JsonConverter.ConvertToJson(o))
|
Set m(shMonthView.Cells(5 + pos, 1).value) = JsonConverter.ParseJson(JsonConverter.ConvertToJson(o))
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
'if something is changing
|
'if something is changing
|
||||||
@ -585,7 +577,7 @@ Sub build_json()
|
|||||||
'--ignore above comment and always use add month_vp
|
'--ignore above comment and always use add month_vp
|
||||||
adjust(pos)("type") = "addmonth_vp"
|
adjust(pos)("type") = "addmonth_vp"
|
||||||
End If
|
End If
|
||||||
adjust(pos)("month") = Worksheets("month").Cells(5 + pos, 1)
|
adjust(pos)("month") = shMonthView.Cells(5 + pos, 1)
|
||||||
adjust(pos)("qty") = units(pos, 4)
|
adjust(pos)("qty") = units(pos, 4)
|
||||||
adjust(pos)("amount") = sales(pos, 4)
|
adjust(pos)("amount") = sales(pos, 4)
|
||||||
Else
|
Else
|
||||||
@ -603,7 +595,7 @@ Sub build_json()
|
|||||||
adjust(pos)("qty") = units(pos, 4)
|
adjust(pos)("qty") = units(pos, 4)
|
||||||
adjust(pos)("amount") = sales(pos, 4)
|
adjust(pos)("amount") = sales(pos, 4)
|
||||||
'------------add this in to only scale a particular month--------------------
|
'------------add this in to only scale a particular month--------------------
|
||||||
adjust(pos)("scenario")("order_month") = Worksheets("month").Cells(5 + pos, 1)
|
adjust(pos)("scenario")("order_month") = shMonthView.Cells(5 + pos, 1)
|
||||||
End If
|
End If
|
||||||
adjust(pos)("stamp") = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
|
adjust(pos)("stamp") = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
|
||||||
adjust(pos)("user") = Application.UserName
|
adjust(pos)("user") = Application.UserName
|
||||||
@ -616,24 +608,24 @@ Sub build_json()
|
|||||||
|
|
||||||
If Me.newpart Then
|
If Me.newpart Then
|
||||||
Set np("months") = JsonConverter.ParseJson(JsonConverter.ConvertToJson(m))
|
Set np("months") = JsonConverter.ParseJson(JsonConverter.ConvertToJson(m))
|
||||||
np("newpart") = Worksheets("month").Range("B33").value
|
np("newpart") = shMonthView.Range("B33").value
|
||||||
'np("basket") = x.json_from_table(b, "basket", False)
|
'np("basket") = x.json_from_table(b, "basket", False)
|
||||||
'get the basket from the sheet
|
'get the basket from the sheet
|
||||||
b = Worksheets("_month").Range("U1").CurrentRegion.value
|
b = shMonthUpdate.Range("U1").CurrentRegion.value
|
||||||
Set m = JsonConverter.ParseJson(x.json_from_table(b, "basket", False))
|
Set m = JsonConverter.ParseJson(Utils.json_from_table(b, "basket", False))
|
||||||
If UBound(b, 1) <= 2 Then
|
If UBound(b, 1) <= 2 Then
|
||||||
Set np("basket") = JsonConverter.ParseJson("[" & x.json_from_table(b, "basket", False) & "]")
|
Set np("basket") = JsonConverter.ParseJson("[" & Utils.json_from_table(b, "basket", False) & "]")
|
||||||
Else
|
Else
|
||||||
Set np("basket") = m("basket")
|
Set np("basket") = m("basket")
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Me.newpart Then
|
If Me.newpart Then
|
||||||
Sheets("_month").Range("P2:P13").ClearContents
|
shMonthUpdate.Range("P2:P13").ClearContents
|
||||||
Sheets("_month").Cells(2, 16) = JsonConverter.ConvertToJson(np)
|
shMonthUpdate.Cells(2, 16) = JsonConverter.ConvertToJson(np)
|
||||||
Else
|
Else
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
Sheets("_month").Cells(i + 1, 16) = JsonConverter.ConvertToJson(adjust(i))
|
shMonthUpdate.Cells(i + 1, 16) = JsonConverter.ConvertToJson(adjust(i))
|
||||||
Next i
|
Next i
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -689,13 +681,12 @@ End Sub
|
|||||||
|
|
||||||
Sub Cancel()
|
Sub Cancel()
|
||||||
|
|
||||||
Sheets("Orders").Select
|
shOrders.Select
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub reset()
|
Sub reset()
|
||||||
|
|
||||||
|
|
||||||
Call Me.load_sheet
|
Call Me.load_sheet
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@ -703,10 +694,10 @@ End Sub
|
|||||||
Sub switch_basket()
|
Sub switch_basket()
|
||||||
|
|
||||||
|
|
||||||
If Sheets("config").Cells(6, 2) = 1 Then
|
If shConfig.Cells(6, 2) = 1 Then
|
||||||
Sheets("config").Cells(6, 2) = 0
|
shConfig.Cells(6, 2) = 0
|
||||||
Else
|
Else
|
||||||
Sheets("config").Cells(6, 2) = 1
|
shConfig.Cells(6, 2) = 1
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Call Me.print_basket
|
Call Me.print_basket
|
||||||
@ -716,10 +707,10 @@ End Sub
|
|||||||
|
|
||||||
Sub print_basket()
|
Sub print_basket()
|
||||||
|
|
||||||
'Sheets("config").Cells(6, 2) = 1
|
'SHCONFIG.Cells(6, 2) = 1
|
||||||
If Sheets("config").Cells(6, 2) = 0 Then
|
If shConfig.Cells(6, 2) = 0 Then
|
||||||
dumping = True
|
dumping = True
|
||||||
Worksheets("month").Range("B32:Q10000").ClearContents
|
shMonthView.Range("B32:Q10000").ClearContents
|
||||||
Rows("20:31").Hidden = False
|
Rows("20:31").Hidden = False
|
||||||
dumping = False
|
dumping = False
|
||||||
Exit Sub
|
Exit Sub
|
||||||
@ -727,16 +718,16 @@ Sub print_basket()
|
|||||||
|
|
||||||
Dim i As Long
|
Dim i As Long
|
||||||
Dim basket() As Variant
|
Dim basket() As Variant
|
||||||
basket = x.SHTp_get_block(Sheets("_month").Range("U1"))
|
basket = Utils.SHTp_get_block(shMonthUpdate.Range("U1"))
|
||||||
|
|
||||||
dumping = True
|
dumping = True
|
||||||
|
|
||||||
Worksheets("month").Range("B32:Q10000").ClearContents
|
shMonthView.Range("B32:Q10000").ClearContents
|
||||||
For i = 1 To UBound(basket, 1)
|
For i = 1 To UBound(basket, 1)
|
||||||
Sheets("month").Cells(31 + i, 2) = basket(i, 1)
|
shMonthView.Cells(31 + i, 2) = basket(i, 1)
|
||||||
Sheets("month").Cells(31 + i, 6) = basket(i, 2)
|
shMonthView.Cells(31 + i, 6) = basket(i, 2)
|
||||||
Sheets("month").Cells(31 + i, 12) = basket(i, 3)
|
shMonthView.Cells(31 + i, 12) = basket(i, 3)
|
||||||
Sheets("month").Cells(31 + i, 17) = basket(i, 4)
|
shMonthView.Cells(31 + i, 17) = basket(i, 4)
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
Rows("21:31").Hidden = True
|
Rows("21:31").Hidden = True
|
||||||
@ -751,26 +742,26 @@ Sub basket_pick(ByRef Target As Range)
|
|||||||
Dim i As Long
|
Dim i As Long
|
||||||
|
|
||||||
|
|
||||||
build.part = Sheets("month").Cells(Target.row, 2)
|
build.part = shMonthView.Cells(Target.row, 2)
|
||||||
build.bill = rev_cust(Sheets("month").Cells(Target.row, 6))
|
build.bill = rev_cust(shMonthView.Cells(Target.row, 6))
|
||||||
build.ship = rev_cust(Sheets("month").Cells(Target.row, 12))
|
build.ship = rev_cust(shMonthView.Cells(Target.row, 12))
|
||||||
build.useval = False
|
build.useval = False
|
||||||
build.Show
|
build.Show
|
||||||
|
|
||||||
If build.useval Then
|
If build.useval Then
|
||||||
dumping = True
|
dumping = True
|
||||||
'if an empty row is selected, force it to be the next open slot
|
'if an empty row is selected, force it to be the next open slot
|
||||||
If Sheets("month").Cells(Target.row, 2) = "" Then
|
If shMonthView.Cells(Target.row, 2) = "" Then
|
||||||
Do Until Sheets("month").Cells(Target.row + i, 2) <> ""
|
Do Until shMonthView.Cells(Target.row + i, 2) <> ""
|
||||||
i = i - 1
|
i = i - 1
|
||||||
Loop
|
Loop
|
||||||
i = i + 1
|
i = i + 1
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Sheets("month").Cells(Target.row + i, 2) = build.cbPart.value
|
shMonthView.Cells(Target.row + i, 2) = build.cbPart.value
|
||||||
Sheets("month").Cells(Target.row + i, 6) = rev_cust(build.cbBill.value)
|
shMonthView.Cells(Target.row + i, 6) = rev_cust(build.cbBill.value)
|
||||||
Sheets("month").Cells(Target.row + i, 12) = rev_cust(build.cbShip.value)
|
shMonthView.Cells(Target.row + i, 12) = rev_cust(build.cbShip.value)
|
||||||
dumping = False
|
dumping = False
|
||||||
Set basket_touch = Selection
|
Set basket_touch = Selection
|
||||||
Call Me.get_edit_basket
|
Call Me.get_edit_basket
|
||||||
@ -793,7 +784,7 @@ Sub get_edit_basket()
|
|||||||
'ReDim b(basket_rows, 3)
|
'ReDim b(basket_rows, 3)
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
Do Until Worksheets("month").Cells(33 + i, 2) = ""
|
Do Until shMonthView.Cells(33 + i, 2) = ""
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
i = i - 1
|
i = i - 1
|
||||||
@ -804,14 +795,14 @@ Sub get_edit_basket()
|
|||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
mix = 0
|
mix = 0
|
||||||
Do Until Worksheets("month").Cells(33 + i, 2) = ""
|
Do Until shMonthView.Cells(33 + i, 2) = ""
|
||||||
b(i, 0) = Worksheets("month").Cells(33 + i, 2)
|
b(i, 0) = shMonthView.Cells(33 + i, 2)
|
||||||
b(i, 1) = Worksheets("month").Cells(33 + i, 6)
|
b(i, 1) = shMonthView.Cells(33 + i, 6)
|
||||||
b(i, 2) = Worksheets("month").Cells(33 + i, 12)
|
b(i, 2) = shMonthView.Cells(33 + i, 12)
|
||||||
b(i, 3) = Worksheets("month").Cells(33 + i, 17)
|
b(i, 3) = shMonthView.Cells(33 + i, 17)
|
||||||
If b(i, 3) = "" Then b(i, 3) = 0
|
If b(i, 3) = "" Then b(i, 3) = 0
|
||||||
mix = mix + b(i, 3)
|
mix = mix + b(i, 3)
|
||||||
If Not Intersect(basket_touch, Worksheets("month").Cells(33 + i, 17)) Is Nothing Then
|
If Not Intersect(basket_touch, shMonthView.Cells(33 + i, 17)) Is Nothing Then
|
||||||
touch_mix = touch_mix + b(i, 3)
|
touch_mix = touch_mix + b(i, 3)
|
||||||
touch(i) = True
|
touch(i) = True
|
||||||
untouched = untouched - 1
|
untouched = untouched - 1
|
||||||
@ -834,13 +825,13 @@ Sub get_edit_basket()
|
|||||||
|
|
||||||
'put the mix plug back on the the sheet
|
'put the mix plug back on the the sheet
|
||||||
For i = 0 To UBound(b, 1)
|
For i = 0 To UBound(b, 1)
|
||||||
Worksheets("month").Cells(33 + i, 17) = b(i, 3)
|
shMonthView.Cells(33 + i, 17) = b(i, 3)
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
dumping = False
|
dumping = False
|
||||||
|
|
||||||
Worksheets("_month").Range("U2:X5000").ClearContents
|
shMonthUpdate.Range("U2:X5000").ClearContents
|
||||||
Call x.SHTp_DumpVar(b, "_month", 2, 21, False, False, True)
|
Call Utils.SHTp_DumpVar(b, shMonthUpdate.Name, 2, 21, False, False, True)
|
||||||
|
|
||||||
If Me.newpart Then
|
If Me.newpart Then
|
||||||
Me.build_json
|
Me.build_json
|
||||||
@ -860,7 +851,7 @@ Sub post_adjust()
|
|||||||
Dim jdoc As String
|
Dim jdoc As String
|
||||||
|
|
||||||
If Me.newpart Then
|
If Me.newpart Then
|
||||||
Set adjust = JsonConverter.ParseJson(Sheets("_month").Cells(2, 16))
|
Set adjust = JsonConverter.ParseJson(shMonthUpdate.Cells(2, 16))
|
||||||
adjust("message") = Me.tbMCOM.text
|
adjust("message") = Me.tbMCOM.text
|
||||||
adjust("tag") = Me.cbMTAG.text
|
adjust("tag") = Me.cbMTAG.text
|
||||||
jdoc = JsonConverter.ConvertToJson(adjust)
|
jdoc = JsonConverter.ConvertToJson(adjust)
|
||||||
@ -868,8 +859,8 @@ Sub post_adjust()
|
|||||||
If fail Then Exit Sub
|
If fail Then Exit Sub
|
||||||
Else
|
Else
|
||||||
For i = 2 To 13
|
For i = 2 To 13
|
||||||
If Sheets("_month").Cells(i, 16) <> "" Then
|
If shMonthUpdate.Cells(i, 16) <> "" Then
|
||||||
Set adjust = JsonConverter.ParseJson(Sheets("_month").Cells(i, 16))
|
Set adjust = JsonConverter.ParseJson(shMonthUpdate.Cells(i, 16))
|
||||||
adjust("message") = Me.tbMCOM.text
|
adjust("message") = Me.tbMCOM.text
|
||||||
adjust("tag") = Me.cbMTAG.text
|
adjust("tag") = Me.cbMTAG.text
|
||||||
jdoc = JsonConverter.ConvertToJson(adjust)
|
jdoc = JsonConverter.ConvertToJson(adjust)
|
||||||
@ -879,14 +870,14 @@ Sub post_adjust()
|
|||||||
Next i
|
Next i
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Sheets("Orders").Select
|
shOrders.Select
|
||||||
'Worksheets("month").Visible = xlHidden
|
'shMonthView.Visible = xlHidden
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub build_new()
|
Sub build_new()
|
||||||
|
|
||||||
Worksheets("config").Cells(5, 2) = 1
|
shConfig.Cells(5, 2) = 1
|
||||||
Dim i As Long
|
Dim i As Long
|
||||||
Dim j As Long
|
Dim j As Long
|
||||||
Dim basket() As Variant
|
Dim basket() As Variant
|
||||||
@ -894,7 +885,7 @@ Sub build_new()
|
|||||||
|
|
||||||
dumping = True
|
dumping = True
|
||||||
|
|
||||||
m = Sheets("_month").Range("A2:O13").FormulaR1C1
|
m = shMonthUpdate.Range("A2:O13").FormulaR1C1
|
||||||
|
|
||||||
For i = 1 To UBound(m, 1)
|
For i = 1 To UBound(m, 1)
|
||||||
For j = 1 To UBound(m, 2)
|
For j = 1 To UBound(m, 2)
|
||||||
@ -902,20 +893,18 @@ Sub build_new()
|
|||||||
Next j
|
Next j
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
Worksheets("_month").Range("A2:O13") = m
|
shMonthUpdate.Range("A2:O13") = m
|
||||||
|
|
||||||
Worksheets("_month").Range("U2:X1000").ClearContents
|
shMonthUpdate.Range("U2:X1000").ClearContents
|
||||||
Worksheets("_month").Range("Z2:AC1000").ClearContents
|
shMonthUpdate.Range("Z2:AC1000").ClearContents
|
||||||
Worksheets("_month").Range("R2:S1000").ClearContents
|
shMonthUpdate.Range("R2:S1000").ClearContents
|
||||||
Call Me.load_sheet
|
Call Me.load_sheet
|
||||||
'Call Me.set_sheet
|
|
||||||
'Call x.SHTp_DumpVar(x.SHTp_get_block(Worksheets("_month").Range("R1")), "month", 6, 20, False, False, False)
|
|
||||||
|
|
||||||
basket = x.SHTp_get_block(Worksheets("_month").Range("U1"))
|
basket = Utils.SHTp_get_block(shMonthUpdate.Range("U1"))
|
||||||
Sheets("month").Cells(32, 2) = basket(1, 1)
|
shMonthView.Cells(32, 2) = basket(1, 1)
|
||||||
Sheets("month").Cells(32, 6) = basket(1, 2)
|
shMonthView.Cells(32, 6) = basket(1, 2)
|
||||||
Sheets("month").Cells(32, 12) = basket(1, 3)
|
shMonthView.Cells(32, 12) = basket(1, 3)
|
||||||
Sheets("month").Cells(32, 17) = basket(1, 4)
|
shMonthView.Cells(32, 17) = basket(1, 4)
|
||||||
Call Me.print_basket
|
Call Me.print_basket
|
||||||
|
|
||||||
dumping = False
|
dumping = False
|
||||||
@ -934,8 +923,8 @@ Sub new_part()
|
|||||||
|
|
||||||
'---------build customer mix-------------------------------------------------------------------
|
'---------build customer mix-------------------------------------------------------------------
|
||||||
|
|
||||||
cust = x.SHTp_Get("_month", 1, 27, True)
|
cust = Utils.SHTp_Get(shMonthUpdate.Name, 1, 27, True)
|
||||||
If Not x.TBLp_Aggregate(cust, True, True, True, Array(0, 1), Array("S", "S"), Array(2)) Then
|
If Not Utils.TBLp_Aggregate(cust, True, True, True, Array(0, 1), Array("S", "S"), Array(2)) Then
|
||||||
MsgBox ("error building customer mix")
|
MsgBox ("error building customer mix")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -949,49 +938,49 @@ Sub new_part()
|
|||||||
|
|
||||||
dumping = True
|
dumping = True
|
||||||
|
|
||||||
Worksheets("month").Range("B33:Q10000").ClearContents
|
shMonthView.Range("B33:Q10000").ClearContents
|
||||||
|
|
||||||
For i = 1 To UBound(cust, 2)
|
For i = 1 To UBound(cust, 2)
|
||||||
Sheets("month").Cells(32 + i, 2) = part.cbPart.value
|
shMonthView.Cells(32 + i, 2) = part.cbPart.value
|
||||||
Sheets("month").Cells(32 + i, 6) = cust(0, i)
|
shMonthView.Cells(32 + i, 6) = cust(0, i)
|
||||||
Sheets("month").Cells(32 + i, 12) = cust(1, i)
|
shMonthView.Cells(32 + i, 12) = cust(1, i)
|
||||||
Sheets("month").Cells(32 + i, 17) = CDbl(cust(2, i))
|
shMonthView.Cells(32 + i, 17) = CDbl(cust(2, i))
|
||||||
Next i
|
Next i
|
||||||
|
|
||||||
Sheets("config").Cells(7, 2) = 1
|
shConfig.Cells(7, 2) = 1
|
||||||
|
|
||||||
'------copy revised basket to _month storage---------------------------------------------------
|
'------copy revised basket to _month storage---------------------------------------------------
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
Do Until Worksheets("month").Cells(33 + i, 2) = ""
|
Do Until shMonthView.Cells(33 + i, 2) = ""
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
i = i - 1
|
i = i - 1
|
||||||
If i = -1 Then i = 0
|
If i = -1 Then i = 0
|
||||||
ReDim b(i, 3)
|
ReDim b(i, 3)
|
||||||
i = 0
|
i = 0
|
||||||
Do Until Worksheets("month").Cells(33 + i, 2) = ""
|
Do Until shMonthView.Cells(33 + i, 2) = ""
|
||||||
b(i, 0) = Worksheets("month").Cells(33 + i, 2)
|
b(i, 0) = shMonthView.Cells(33 + i, 2)
|
||||||
b(i, 1) = Worksheets("month").Cells(33 + i, 6)
|
b(i, 1) = shMonthView.Cells(33 + i, 6)
|
||||||
b(i, 2) = Worksheets("month").Cells(33 + i, 12)
|
b(i, 2) = shMonthView.Cells(33 + i, 12)
|
||||||
b(i, 3) = Worksheets("month").Cells(33 + i, 17)
|
b(i, 3) = shMonthView.Cells(33 + i, 17)
|
||||||
If b(i, 3) = "" Then b(i, 3) = 0
|
If b(i, 3) = "" Then b(i, 3) = 0
|
||||||
i = i + 1
|
i = i + 1
|
||||||
Loop
|
Loop
|
||||||
Worksheets("_month").Range("U2:AC10000").ClearContents
|
shMonthUpdate.Range("U2:AC10000").ClearContents
|
||||||
Call x.SHTp_DumpVar(b, "_month", 2, 21, False, False, True)
|
Call Utils.SHTp_DumpVar(b, shMonthUpdate.Name, 2, 21, False, False, True)
|
||||||
Call x.SHTp_DumpVar(b, "_month", 2, 26, False, False, True)
|
Call Utils.SHTp_DumpVar(b, shMonthUpdate.Name, 2, 26, False, False, True)
|
||||||
|
|
||||||
'------reset volume to copy base to forecsat and clear base------------------------------------
|
'------reset volume to copy base to forecsat and clear base------------------------------------
|
||||||
|
|
||||||
units = Sheets("_month").Range("A2:E13").FormulaR1C1
|
units = shMonthUpdate.Range("A2:E13").FormulaR1C1
|
||||||
price = Sheets("_month").Range("F2:J13").FormulaR1C1
|
price = shMonthUpdate.Range("F2:J13").FormulaR1C1
|
||||||
sales = Sheets("_month").Range("K2:O13").FormulaR1C1
|
sales = shMonthUpdate.Range("K2:O13").FormulaR1C1
|
||||||
tunits = Range("B18:F18")
|
tunits = Range("B18:F18")
|
||||||
tprice = Range("H18:L18")
|
tprice = Range("H18:L18")
|
||||||
tsales = Range("N18:R18")
|
tsales = Range("N18:R18")
|
||||||
ReDim adjust(12)
|
ReDim adjust(12)
|
||||||
Set basejson = JsonConverter.ParseJson(Sheets("_month").Range("P1").FormulaR1C1)
|
Set basejson = JsonConverter.ParseJson(shMonthUpdate.Range("P1").FormulaR1C1)
|
||||||
For i = 1 To 12
|
For i = 1 To 12
|
||||||
'volume
|
'volume
|
||||||
units(i, 5) = units(i, 2)
|
units(i, 5) = units(i, 2)
|
||||||
@ -1018,13 +1007,13 @@ Sub new_part()
|
|||||||
|
|
||||||
'-------------push revised arrays back to _month, not revertable-------------------------------
|
'-------------push revised arrays back to _month, not revertable-------------------------------
|
||||||
|
|
||||||
Worksheets("_month").Range("A2:E13") = units
|
shMonthUpdate.Range("A2:E13") = units
|
||||||
Worksheets("_month").Range("F2:J13") = price
|
shMonthUpdate.Range("F2:J13") = price
|
||||||
Worksheets("_month").Range("K2:o13") = sales
|
shMonthUpdate.Range("K2:o13") = sales
|
||||||
|
|
||||||
|
|
||||||
'force basket to show to demonstrate the part was changed
|
'force basket to show to demonstrate the part was changed
|
||||||
Sheets("config").Cells(6, 2) = 1
|
shConfig.Cells(6, 2) = 1
|
||||||
Call Me.print_basket
|
Call Me.print_basket
|
||||||
dumping = False
|
dumping = False
|
||||||
|
|
||||||
@ -1032,7 +1021,7 @@ End Sub
|
|||||||
|
|
||||||
Function newpart() As Boolean
|
Function newpart() As Boolean
|
||||||
|
|
||||||
If Worksheets("config").Cells(7, 2) = 1 Then
|
If shConfig.Cells(7, 2) = 1 Then
|
||||||
newpart = True
|
newpart = True
|
||||||
Else
|
Else
|
||||||
newpart = False
|
newpart = False
|
@ -2,26 +2,23 @@ VERSION 1.0 CLASS
|
|||||||
BEGIN
|
BEGIN
|
||||||
MultiUse = -1 'True
|
MultiUse = -1 'True
|
||||||
END
|
END
|
||||||
Attribute VB_Name = "pivot"
|
Attribute VB_Name = "shOrders"
|
||||||
Attribute VB_GlobalNameSpace = False
|
Attribute VB_GlobalNameSpace = False
|
||||||
Attribute VB_Creatable = False
|
Attribute VB_Creatable = False
|
||||||
Attribute VB_PredeclaredId = True
|
Attribute VB_PredeclaredId = True
|
||||||
Attribute VB_Exposed = True
|
Attribute VB_Exposed = True
|
||||||
Option Explicit
|
Option Explicit
|
||||||
|
|
||||||
Private Sub Worksheet_Activate()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
||||||
|
Dim pt As PivotTable
|
||||||
|
Set pt = ActiveSheet.PivotTables("ptOrders")
|
||||||
|
|
||||||
If Intersect(Target, ActiveSheet.Range("b8:v100000")) Is Nothing Then
|
Dim intersec As Range
|
||||||
|
Set intersec = Intersect(Target, pt.DataBodyRange)
|
||||||
|
|
||||||
|
If intersec Is Nothing Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
ElseIf intersec.address <> Target.address Then
|
||||||
|
|
||||||
On Error GoTo nopiv
|
|
||||||
|
|
||||||
If Target.Cells.PivotTable Is Nothing Then
|
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -38,10 +35,8 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Dim cd As Object
|
Dim cd As Object
|
||||||
Dim dd As Object
|
Dim dd As Object
|
||||||
|
|
||||||
Dim pt As PivotTable
|
|
||||||
Dim pf As PivotField
|
Dim pf As PivotField
|
||||||
Dim pi As PivotItem
|
Dim pi As PivotItem
|
||||||
Dim wapi As New Windows_API
|
|
||||||
|
|
||||||
Set ri = Target.Cells.PivotCell.RowItems
|
Set ri = Target.Cells.PivotCell.RowItems
|
||||||
Set ci = Target.Cells.PivotCell.ColumnItems
|
Set ci = Target.Cells.PivotCell.ColumnItems
|
||||||
@ -51,7 +46,6 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Set cd = Target.Cells.PivotTable.ColumnFields
|
Set cd = Target.Cells.PivotTable.ColumnFields
|
||||||
|
|
||||||
ReDim handler.sc(ri.Count, 1)
|
ReDim handler.sc(ri.Count, 1)
|
||||||
Set pt = Target.Cells.PivotCell.PivotTable
|
|
||||||
|
|
||||||
handler.sql = ""
|
handler.sql = ""
|
||||||
handler.jsql = ""
|
handler.jsql = ""
|
||||||
@ -70,8 +64,6 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Call handler.load_config
|
Call handler.load_config
|
||||||
Call handler.load_fpvt
|
Call handler.load_fpvt
|
||||||
|
|
||||||
nopiv:
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function piv_pos(list As Object, target_pos As Long) As Long
|
Function piv_pos(list As Object, target_pos As Long) As Long
|
9
VBA/shSupportingData.cls
Normal file
9
VBA/shSupportingData.cls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
VERSION 1.0 CLASS
|
||||||
|
BEGIN
|
||||||
|
MultiUse = -1 'True
|
||||||
|
END
|
||||||
|
Attribute VB_Name = "shSupportingData"
|
||||||
|
Attribute VB_GlobalNameSpace = False
|
||||||
|
Attribute VB_Creatable = False
|
||||||
|
Attribute VB_PredeclaredId = True
|
||||||
|
Attribute VB_Exposed = True
|
@ -2,26 +2,22 @@ VERSION 1.0 CLASS
|
|||||||
BEGIN
|
BEGIN
|
||||||
MultiUse = -1 'True
|
MultiUse = -1 'True
|
||||||
END
|
END
|
||||||
Attribute VB_Name = "pivot1"
|
Attribute VB_Name = "shWalk"
|
||||||
Attribute VB_GlobalNameSpace = False
|
Attribute VB_GlobalNameSpace = False
|
||||||
Attribute VB_Creatable = False
|
Attribute VB_Creatable = False
|
||||||
Attribute VB_PredeclaredId = True
|
Attribute VB_PredeclaredId = True
|
||||||
Attribute VB_Exposed = True
|
Attribute VB_Exposed = True
|
||||||
Option Explicit
|
Option Explicit
|
||||||
|
|
||||||
Private Sub Worksheet_Activate()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
|
||||||
|
Dim pt As PivotTable
|
||||||
|
Set pt = ActiveSheet.PivotTables("ptWalk")
|
||||||
|
Dim intersec As Range
|
||||||
|
Set intersec = Intersect(Target, pt.DataBodyRange)
|
||||||
|
|
||||||
If Intersect(Target, ActiveSheet.Range("b7:v100000")) Is Nothing Then
|
If intersec Is Nothing Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
ElseIf intersec.address <> Target.address Then
|
||||||
|
|
||||||
On Error GoTo nopiv
|
|
||||||
|
|
||||||
If Target.Cells.PivotTable Is Nothing Then
|
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -38,10 +34,8 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Dim cd As Object
|
Dim cd As Object
|
||||||
Dim dd As Object
|
Dim dd As Object
|
||||||
|
|
||||||
Dim pt As PivotTable
|
|
||||||
Dim pf As PivotField
|
Dim pf As PivotField
|
||||||
Dim pi As PivotItem
|
Dim pi As PivotItem
|
||||||
Dim wapi As New Windows_API
|
|
||||||
|
|
||||||
Set ri = Target.Cells.PivotCell.RowItems
|
Set ri = Target.Cells.PivotCell.RowItems
|
||||||
Set ci = Target.Cells.PivotCell.ColumnItems
|
Set ci = Target.Cells.PivotCell.ColumnItems
|
||||||
@ -51,7 +45,6 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Set cd = Target.Cells.PivotTable.ColumnFields
|
Set cd = Target.Cells.PivotTable.ColumnFields
|
||||||
|
|
||||||
ReDim handler.sc(ri.Count, 1)
|
ReDim handler.sc(ri.Count, 1)
|
||||||
Set pt = Target.Cells.PivotCell.PivotTable
|
|
||||||
|
|
||||||
handler.sql = ""
|
handler.sql = ""
|
||||||
handler.jsql = ""
|
handler.jsql = ""
|
||||||
@ -70,8 +63,6 @@ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean
|
|||||||
Call handler.load_config
|
Call handler.load_config
|
||||||
Call handler.load_fpvt
|
Call handler.load_fpvt
|
||||||
|
|
||||||
nopiv:
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function piv_pos(list As Object, target_pos As Long) As Long
|
Function piv_pos(list As Object, target_pos As Long) As Long
|
Loading…
Reference in New Issue
Block a user