監造及施工報表 VBA化

"寫在篇首,由於程式的設計是給特定格式的預算書格式使用,無法應對各種不同編排方式
,所以無法給予檔案,另若有VBA的設計想法討論,是歡迎的。"

有鑑於過去 在製作監造報表的時候
大家通常都使用LOOKUP的函式功能去抓取相對應的資料庫數字
在我看過許多河川局的報表之後
發現用LOOKUP函式的已經算不錯的了
像是三局或四局的報表
則是一天一個頁面 沒有資料庫的概念
這通常會導致EXCEL的檔案特別的大
而且填報表會顯得麻煩
每次都還必須去計算累計數量再去填列

雖然LOOKUP可以解決很多事情
但它畢竟不是C4 不能像是流言終結者一樣處理「全部」的事情
因為LOOKUP並沒辦法用拉的 去調整函式的第三個項目 (Row_index_num或Column_index_num)
必須一個一個去針對個別項目做修改
這個手動的工作 就常常會出錯
導致你可能填了好幾天的報表 然後發現進度不對
才一個一個項目來Debug
所以LOOKUP好用 但是麻煩

之前一直有想過用VBA來建立自動化的表單
但是一直沒動力去寫
直到後來偶然的機緣下遇到八局的沈大哥 以及 水利會的 Hank Lin
在共同的討論以及互相協助下
我才開始把這個報表開發出來

這個報表有幾個功能
1.直接匯入PCCES的檔案建資料庫
2.VBA自動建立報表
3.批次列印功能
4.展延工期功能
5.各個月5日及20日進度及工項施做金額抓取(用來畫圖用的)



整個報表的更新上也感謝有許多同事幫忙抓蟲子
讓現在的版本可以達到基本使用沒甚麼大問題的狀況

報表的施做邏輯如下

  • 首先先根據二局既有的報表格式來作為基礎,然後建立資料匯入模組來吃進PCCES的資料,這個部分就要感謝八局的沈大哥提供CODE參考,讓我可以不用花太多時間在上面。
  • 接著建立日報資料庫,讓大家來填列每日工作數量,然後用SUMIF函數來算今日累計跟昨日累計,再把兩者相減就可以得到今日施做數量了呢!!,最後在日報資料庫另外也根據SUMIF的值來計算實際進度~~
  • 然後再來根據工項以及二局既有格式來建立報表,建報表就有趣了,先前的版本由於預設的工項空格很多,如果一件工項少的案子匯入,整張報表就會空空的很難看....,因此用了有點土法煉鋼的方式來進行工項格數FIT項目數量的工作,透過新增欄位以及複製格式的VBA CODE來達到我要的功能。
  • 批次列印的功能其實以前就有寫給同事用,在那個還在使用LOOKUP年代的時候......,這次的批次功能也嚴格的用了防呆的CODE,避免日期輸錯導致無限循環列印.......。
  • CATCH DATA功能則是為了要應付督導查核用的,可以把開工跟指定日期以及之間的5日及20日的實際進度、預定進度及各工項的施作金額調用出來,接著就看使用者要如何運用這些資料畫進度表。
在完成基本報表建置後,接下來可能會開發請款單的功能,但是由於這個檔案實在太多分頁了,sheets就有8個,要再放請款的表單可能會增加到10個以上,所以考慮把請款功能獨立出來。

另外就是未來可能要增進VBA的Class Module 技術,把各個代碼的建置更獨立一些,就像以前我寫Fortran使用的大量的Subroutine一樣,讓各個部件獨立,達到好維護且不互相干涉的環境。

如果你對VBA的表單製作也有興趣,歡迎大家一起交流。






留言

  1. 大大您好~~~~
    小弟剛好也在從事監造的部分~
    看到您的網頁想讓小弟覺得種有神一樣的先驅願意花時間在這方面造福大家....
    想請問大大可以分享您的軟體嗎??
    小弟的信箱是:a0963356343@gmail.com

    回覆刪除
    回覆
    1. 可以請大大分享Vba的檔案嗎,因為我一直在學習,就是寫不出來,可以請大大幫忙一下嗎我的信箱是asck7253@gmail.com

      刪除
  2. 我也想要請大大分享軟体,可以嗎,我的信箱是asck7253@gmail.com

    回覆刪除
  3. 您好,小弟一直為監造日報所煩惱,之前案子小還可以土法煉鋼,現在工程項目越來越多,報表常常 直修正、重新列印。可否跟您要vba檔案來研究看看,感謝您。
    我的MAIL: liuct0731@gmail.com

    回覆刪除
  4. 請問可以分享Vba的檔案嗎,我的信箱ohqcuphaha64@gmail.com,謝謝!

    回覆刪除
  5. 不知是否可以索取
    mail:laiglook@gmail.com

    回覆刪除
  6. 大大您好~~~~
    小妹綱要邁入監造的部分~
    知曉監造需要超多文件...等備查
    偶然看到大大這神器不知可否索取
    謝謝
    mail:itscpcsoho@gmail.com

    回覆刪除
  7. 請問可以分享Vba的檔案嗎,我的信箱a0932834480@gmail.com,謝謝!

    回覆刪除
  8. 請問前輩可分享VBA的檔案嗎?我的E-mail:yehyuanyu980@gmail.com

    回覆刪除
  9. 不知能否提供前輩的EXCEL嗎?謝謝
    信箱shui740128@gmail.com

    回覆刪除
  10. 您好:請問是否可分享您的檔案?感謝您
    信箱:mouma1982@gmail.com

    回覆刪除
  11. 請問是否可分享您的檔案?感謝您
    信箱:arc23602098@gmail.com

    回覆刪除
  12. 請問可以分享軟體嗎?感謝你
    lem15291@gmail.com

    回覆刪除
  13. 你好,正遇到監造日報問題,能否分享此檔案研究看看,謝謝。
    yuanhen1001@gmail.com

    回覆刪除
  14. 您好,可請大大分享檔案嗎?
    信箱:dagancivil1931@gmail.com

    回覆刪除
  15. 您好,小妹目前填寫日報遇到各種難題,請問前輩可否分享您的檔案?感激不盡 ,信箱:wentzu41@gmail.com

    回覆刪除
  16. 能否分享此檔案,謝謝。

    回覆刪除
  17. 能否分享此檔案,信箱:skysolemn@gmail.com,謝謝。

    回覆刪除
  18. 我導入不進去一直出錯!能否分享檔案!感恩很多!2007hoanggia@gmail.com

    回覆刪除
    回覆
    1. 怎麼樣的導不進去呢@@
      pcces存出的檔案也有xls檔
      基本做法就是吧pcces的詳細價目表複製到報表檔案,然後從複製的價目標去擷取要的資訊而已

      刪除
  19. 可以分享研究看看嗎?謝謝您~mailbox:chuangsen@gmail.com

    回覆刪除
  20. 您好
    可以分享研究嗎??謝謝您
    我的e-mail為funjengsu@gmail.com
    感恩

    回覆刪除
  21. 您好
    可以分享您的檔案來研究嗎??謝謝您
    我的e-mail為t0101248@gmail.com

    回覆刪除
  22. 真的心懷感恩的看到了這篇分享文!萬祈您分享檔案協助ㄒ-ㄒ
    我的email為wanwanlu2203@gmail.com 再次感恩您的不吝分享!!

    回覆刪除
    回覆
    1. 想請教TACO如何在既有的日報格式做出設定日期範圍的批次列印,祈請TACO不吝分享
      已然落髮嚴重的文書處理人員ㄒ-ㄒ

      刪除
    2. 你好
      不曉得您會不會寫VBA
      我簡述幾個步驟
      1.用錄製巨集的方式找出列印的VBA CODE
      2.在日報頁列印範圍外,一個儲存格填開始日期、一個填結束日期
      3.用DO Until語法寫迴圈,然後設定一個變數跑日期
      4.語法結構如下
      Data_R=.range("Z"1) '
      {設定一變數為開始日期
      Data_E=.range("Z"2)
      {設定另一變數為結束日期)
      Do Until Data_R=Data_E
      {跑迴圈直到兩者相等結束}
      “這邊放列印語法”
      Data_R=Data_R+1
      {每跑一次迴圈就+1}
      Loop
      {迴圈語尾指令}

      這樣子起始一直+1到結束日期就會停止列印

      然後再做個按鈕方便按啟動列印就好

      刪除
  23. 您好
    請問施工日誌關於施工項目有方法可以隨著項目的多寡而自動縮減或增加欄位嗎?煩請指導,謝謝。

    回覆刪除
  24. 可以
    先預留2欄調整好的格式
    1.計算全工項的數目
    2.用.select以及selection.insert shift.down插入欄位
    3.用.copy以及.PasteSpecial xlFormate 把預留調整好的格式複製貼上
    以上就可以針對不同案子的項目去擴增相應的欄位
    後續就是跑loop把資料填入而已
    如果要做到本日施工為0隱藏
    就只要跑loop時,把0項目不填入
    後續再跑.Hidden隱藏空白欄位就好

    回覆刪除
  25. 您好,可請大大分享檔案嗎?
    信箱:w6901775@gmail.com

    回覆刪除
  26. 你好,職為五河局監造,惠請大大分享監造報表,信箱:yutsngchen@gmail.com

    回覆刪除
  27. 你好,可以分享此檔案研究嗎?,信箱:c1935963@gmail.com,謝謝。

    回覆刪除
  28. 你好 請問可以分享此檔案嗎? 謝謝您。信箱 : wilson0418@gmail.com

    回覆刪除
  29. 網誌管理員已經移除這則留言。

    回覆刪除
  30. 借用你的範例
    跑我的app
    多指教

    回覆刪除
  31. 您好 是否可以跟您分享檔案嗎??謝謝,信箱:03905411@yahoo.com.tw
    另外請教,若工程施工期間遭遇變更設計,相關儲存之數量及工項重新設定是否可依序累積,不會有重疊之狀況產生呢??
    感謝大大指導!

    回覆刪除
  32. 你好 請問可以分享此檔案嗎? 謝謝您。信箱 :love12030425@gmail.com

    回覆刪除
  33. 您好,請問可以分享檔案嗎?謝謝您。信箱:shui740128@gmail.com

    回覆刪除
  34. 您好,小弟我的日誌跟您一樣是用lookup的方式做的,不過因為我不懂VBA所以無法做到像您一樣的完善。不知道能否提供您的檔案做為參考呢?謝謝您。信箱:gn00694310@gmail.com

    回覆刪除
  35. 您好,請問可以分享檔案嗎?謝謝您。信箱:apple583237@gmail.com

    回覆刪除
  36. 您好,請問可以分享檔案嗎?謝謝您。信箱:e3322379@gmail.com

    回覆刪除
  37. 您好,請問可以分享檔案嗎?謝謝您。信箱:shogin@gmail.com

    回覆刪除
  38. 可以請大大分享檔案嗎? 非常感謝 。信箱 : gn00169126@gmail.com

    回覆刪除
  39. 您好,請問可以分享檔案嗎?謝謝您。信箱:forever440102@gmail.com

    回覆刪除
  40. 您好,請問可以分享程式嗎 謝謝您
    我的信箱是f0917186160@gmail.com

    回覆刪除
  41. 可以請大大分享檔案嗎? 非常感謝 。p4139@yahoo.com.tw

    回覆刪除
  42. 你好:請問可以分享檔案嗎? 信箱: ying021787@gmail.com

    回覆刪除
  43. 你好~請問可以分享檔案研究嗎? 信箱:nanasb@kimo.com

    回覆刪除
  44. 你好:請問可以分享檔案嗎? 信箱: Ww8610680@gmail.com

    回覆刪除
  45. 可請大大分享檔案嗎?信箱: hsien117@gmail.com 感謝!!

    回覆刪除
  46. 您好,請問可以分享檔案嗎?謝謝您。信箱:cody123k@yahoo.com.tw

    回覆刪除

張貼留言

這個網誌中的熱門文章

模板結構計算分析-JASS 5 臺灣常用計算方式

淺談堤防護岸設計