返回列表 上一主題 發帖

依訂單資料轉換成六週排程表,敬請各位大大賜教!!!

小弟有延伸性問題想再請問版主,是否可依明細中的需求日期及數量,於Sheet2對應的欄位最後一欄秀出附件中希望的資料???

Book3.rar (16.21 KB)

TOP

感謝Hsieh版主,小弟會好好研究程式碼的,希望有朝一日自己也可靈活運用,另剛小弟提問的另一項功能,是否也可以巨集達成呢???

TOP

回復 21# p6703
  1. Sub Ex()
  2. Dim A As Range, x#, y#
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet2 's("Sheet2")
  5. s = Application.Min(.Rows(1))
  6. With Sheets("Sheet1")
  7. n = Application.Max(.Columns("G:H")) - s + 6
  8.    For Each A In .Range(.[A2], .[A2].End(xlDown))
  9. ReDim ar(0 To 1, 0 To n)
  10.        m = A & "," & A.Offset(, 1) & "," & A.Offset(, 2) '訂單、料號、項次為索引
  11.        If IsEmpty(d(m)) Then
  12.        GoTo 10
  13.        Else
  14.        For i = 0 To 1
  15.          For j = 0 To n
  16.            ar(i, j) = d(m)(i, j)
  17.          Next
  18.        Next
  19.        End If
  20. 10
  21.        x = A.Offset(, 6) - s + 6 '需求日
  22.        y = A.Offset(, 7) - s + 6 '交期
  23.        For i = 0 To 4
  24.          ar(0, i) = A.Offset(, IIf(i >= 3, i + 1, i))
  25.        Next
  26.        ar(0, 5) = "需求日"
  27.        ar(1, 5) = "交期"
  28.        If x > 0 Then ar(0, x) = ar(0, x) + A.Offset(, 3) '需求避免Sheet1內需求日無日期
  29.        If y > 0 Then ar(1, y) = A.Offset(, 3) '交期避免Sheet1內交期無日期
  30.        d(m) = ar
  31.        Erase ar
  32.    Next
  33. End With
  34. r = 2
  35. For Each ky In d.keys
  36.   .Cells(r, 1).Resize(2, n + 1) = d(ky)
  37.   For i = 0 To 1
  38.   mystr = ""
  39.   Set Rng = .Range("G" & r).Offset(i).Resize(, n - 5)
  40.   If Application.CountA(Rng) > 0 Then
  41.       For Each A In Rng.SpecialCells(xlCellTypeConstants)
  42.         mystr = IIf(mystr = "", .Cells(1, A.Column).Text & "*" & A / 1000 & "K", mystr & "," & .Cells(1, A.Column).Text & "*" & A / 1000 & "K")
  43.       Next
  44.       .Cells(r + i, "CF") = mystr
  45.   End If
  46.   Next
  47.   r = r + 2
  48. Next
  49. End With
  50. End Sub
複製代碼
學海無涯_不恥下問

TOP

Hsieh版主你真的太神了,感謝你,小弟會好好先研究程式碼的,再次感謝!!!

TOP

Hsieh版主小弟又有問題請教,原Sheet2 F欄位需求日及交期需再增加一入庫
但入庫此資料尚不會在Sheet1中,只是每筆訂單於排程表中變成固定要做成三列,請教巨集如何修改???

F欄位
需求日
交期
入庫

TOP

依訂單資料轉換成六週排程表,敬請各位大大賜教!!!

本次提問的問題,主要延續原以下的發帖內容,但因本次需求較為複雜,故特再另開一新話題,請教各位先進指教
http://forum.twbts.com/viewthrea ... a=pageD1&page=1

如附件中,加入之前Hsieh版主編寫的巨集,希望修改的地方:

1.原欄位由A~E增加至A~J欄位,除了J欄位是捉取其他的資料外,其餘均由Sheet1資料中截取得出

2.原一筆訂單由二列匯整而成,修改為3列(需求日、交期、實際出貨)

3.依輸入日期自動展出排程表六週日期(如附件,輸入10/1起捉取42天的日期,包含六日)

4.延伸第三點,將訂單資料判定僅將符合此期間之訂單資料捉入(符合需求日即需代入,例:需求日10/14,但交期回覆至11/20,則此筆捉入排程表中僅於10/14有列出其需求數;需求日一旦不符此日期範圍內,該筆訂單即不列入)

5.巨集執行排出排程表後,將Sheet1中有列入排程及無列入的再各存成一工作表(工作表名稱:有列入,無列入)

6.排程表巨集最後程式碼是小弟以土法練鋼方式將各排程表首列以巨集執行跑出後,再將對應的第二及第三列複製第一列的資料,再貼上值(因合併欄位無法篩選查看出該訂單資料,故小弟只能以上方法將一筆訂單變成三筆),程式碼是否可再修改???

本次修改之處較多,且往後仍有可能會有一些延伸的問題,希望各位大大能不吝賜交,在此先感謝各位....

排程表巨集.rar (16.17 KB)

小弟知道一次提了太多問題,還是針對各別問題請各位先進可解的可先不吝賜教,小弟在此先再道謝^^

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題