在物料管理中,我们需要使用一些reports来做出一些判断,如Consign,VMI,Safety Stock,Milk Run等:
1,对于未来6个月每个物料的Demand,Amount
2,对于未来6个月每个供应商的Demand,Amount
我们先看看,当我们点击一个供应商时,自动列出这个供应商涉及的物料如何实现?
实际应用,我还延伸了很多的物料管理工具,感觉还是挺有用的。
一,基础数据(Excel表格)
二,在Supplier List中点击一个供应商后:
2.1,然后将供应商的物料清单从“一,基础数据“中复制到一个Reports的Sheets中
2.2,按金额大小排序
2.3,每次点击新的供应商,将清空Reports中旧的数据
三、结果:在这个Reports中我们可以看到A5这个供应商,哪些Items还没有做Consign开发。
代码部分:注意画个按钮,并把这段代码指定个按钮。
Sub Supplier_Material_list()
Dim k, c, m As Integer
Dim str1, str2, str3 As String
Application.ScreenUpdating = False
'-------------------------delete old data------------------------------
str2 = Selection.Address
Sheets("Reports").Activate
i = Sheets("Reports").UsedRange.Rows.Count
If i > 2 Then
Rows("2:" & i).Select
Selection.Delete Shift:=xlUp
End If
Sheets("Supplier_List").Activate
'--------------------------------------------------------
Sheets("Supplier_List").Activate
str3 = Replace(str2, "$", "")
Range(str3).Select
If Mid(Selection.Address, 2, 1) <> "A" Then
'Debug.Print Mid(Selection.Address, 2)
MsgBox ("请选择A列中的供应商:")
Exit Sub
End If
str1 = Selection.Value
Debug.Print VarType(Sheets("Summary").Cells(3, 7).Value)
c = 2
For k = 2 To Sheets("Summary").UsedRange.Rows.Count
If CStr(Sheets("Summary").Cells(k, 7).Value) = CStr(str1) Then
Sheets("Summary").Rows(k).Copy Sheets("Reports").Rows(c)
c = c + 1
Debug.Print c
End If
Next k
Sheets("Reports").Activate
Columns("T:W").Select
Selection.Delete Shift:=xlToLeft
Cells(2, 19).Select
'---------descend-----------
m = Sheets("Reports").UsedRange.Rows.Count
Columns("A:S").Select
ActiveWorkbook.Worksheets("Reports").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Reports").Sort.SortFields.Add2 Key:=Range("S2:S" & m _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Reports").Sort
.SetRange Range("A1:S" & m)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("S2").Select
End Sub