Giúp em Link kết quả từ ngày cũ sang ngày mới

Liên hệ QC

I_m_Stupid

Thành viên mới
Tham gia
7/8/09
Bài viết
21
Được thích
32
Nghề nghiệp
quản trị web
Bữa nay em lục lại 1 file vừa rồi tìm hiểu cách truy vấn dữ liệu. Xem qua và thấy còn có lỗi truy vấn.
Nên mạn phép nhờ các tiền bối chỉ giúp em với ạ.
Hiện tại file này em mặc định cho TỒN ĐẦU của ngày mới là TỒN CUỐI của ngày cũ, mà quên mất 1 vấn đề là số lượng tồn đó đi theo Mã vật tư.

excel1-1.jpg


Nên khi em chọn sheet ngày mới, trong sheet chưa có chọn mã đó mà đã xuất hiện có TỒN ĐẦU rồi. Như vậy là sai quy tắc.

excel2-1.jpg


Xin nhờ các tiền bối chỉ giúp em coi có cách nào chỉnh sao cho chọn đúng mã đó nó sẽ tự xuất ra TỒN hay không.
Hoặc làm sao cho ngày hôm sau tự động xuất mã của ngày hôm trước có sử dụng và đồng thời xuất TỒN của mã đó luôn ạ.
Em cảm ơn các tiền bối nhiều ạ.

File kèm theo:
Mã:
[URL]http://www.mediafire.com/?uq2xgshccl17ugu[/URL]
 
Lần chỉnh sửa cuối:
Bữa nay em lục lại 1 file vừa rồi tìm hiểu cách truy vấn dữ liệu. Xem qua và thấy còn có lỗi truy vấn.
Nên mạn phép nhờ các tiền bối chỉ giúp em với ạ.
Hiện tại file này em mặc định cho TỒN ĐẦU của ngày mới là TỒN CUỐI của ngày cũ, mà quên mất 1 vấn đề là số lượng tồn đó đi theo Mã vật tư.

excel1-1.jpg


Nên khi em chọn sheet ngày mới, trong sheet chưa có chọn mã đó mà đã xuất hiện có TỒN ĐẦU rồi. Như vậy là sai quy tắc.

excel2-1.jpg


Xin nhờ các tiền bối chỉ giúp em coi có cách nào chỉnh sao cho chọn đúng mã đó nó sẽ tự xuất ra TỒN hay không.
Hoặc làm sao cho ngày hôm sau tự động xuất mã của ngày hôm trước có sử dụng và đồng thời xuất TỒN của mã đó luôn ạ.
Em cảm ơn các tiền bối nhiều ạ.

File kèm theo:
Mã:
[URL]http://www.mediafire.com/?uq2xgshccl17ugu[/URL]
File này thiết kế quá công phu, code qua siêu và màu mè theo trường phái NDU. Hình như NDU làm thì phải.
Vấn đề Double Click để lấy tồn ngày hôm trước (ngày -1)
Ta có form sẵn rồi, khi show form thay vì lấy từ DMHH ta thêm 1 cột nữa để lấy số tồn cuối của ngày -1 và form thêm 1 cột.
Mà thôi, để NDU tiếp tục luôn.
 
File này thiết kế quá công phu, code qua siêu và màu mè theo trường phái NDU. Hình như NDU làm thì phải.
Vấn đề Double Click để lấy tồn ngày hôm trước (ngày -1)
Ta có form sẵn rồi, khi show form thay vì lấy từ DMHH ta thêm 1 cột nữa để lấy số tồn cuối của ngày -1 và form thêm 1 cột.
Mà thôi, để NDU tiếp tục luôn.
Ấy ấy... mình không "thiết kế riêng" cho ai cả. Chẳng qua người ta áp dụng form và code của mình vào file của họ thôi
Nói chung, nếu hỏi cụ thể 1 code nào đó thì mình còn giúp được... nói chung chung về XUẤT, NHẬP, TỒN hoặc KẾ TOÁN gì gì đó thì mình... KHÔNG BIẾT GÌ CẢ
Ẹc...Ẹc...
--------------
(mà thật ra cái Form chỉ làm nhiệm vụ tìm kiếm và nhập liệu thôi, chẳng có tính toán gì ---> ThuNghi giúp người ta mới là đúng chuyên ngành đấy)
 
Lần chỉnh sửa cuối:
Bạn dùng macro sự kiện này ở 30 trang tính cuối với chú í bên dưới

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Range("E6:E999"), Target) Is Nothing And Target.Count = 1 Then
    Dim ShName As String, Num As Byte, Ton As Range
    
    Num = CByte(Mid(Target.Parent.Name, 2, 2)) - 1
    ShName = "N" & Right("0" & CStr(Num), 2)
    Set Ton = Sheets(ShName).Columns("E:e").Find(Target.Value, , xlFormulas, xlWhole)
    If Not Ton Is Nothing Then _
         Target.Offset(, 4).Value = Ton.Offset(, 13).Value
 End If
End Sub


(hú í: Tên các trang tính mình đã sửa lại có dạng N01. . . .N31 (Của bạn dài nhưng chả ích gì thêm)
Trước khi thử ở trang nào thì trang trước nó đã có số liệu tồn (để trực quan í mà!)

Mong sẽ mĩ mãn!
 
Lần chỉnh sửa cuối:
Bạn dùng macro sự kiện này ở 30 trang tính cuối với chú í bên dưới
Sao Bác không cho code này vào sự kiện double click của listbox trong form cho cháu nó nhờ vậy bác?
ndu đã viết:
ThuNghi giúp người ta mới là đúng chuyên ngành đấy
ndu à, cởi chuông thì phải gọi người cột chuông chứ ThuNghi và người khác biết gì về cấu trúc form. Bác Sa còn không làm được kia: Ai đời có 31 sheet phải copy paste 31 lần code vô.
 
Lần chỉnh sửa cuối:
Mấy thầy pro quá, các tiền bối nói mà em đọc vẫn chưa hiểu.
Ak em xin hỏi các tiền bối thêm 1 chút ạ.Hiện tại thì file này em làm để thử nghiệm cách lưu trữ dữ liệu sao cho dễ hiểu hơn là nhìn trên sổ ạ.
Em nghĩ : cách làm để chọn mã vt đã sử dụng bên ngày 1 ở sheet ngày 2 , kết quả sẽ tự xuất ra Tồn của vt đó. Nhưng thiết nghĩ có vẻ khó hiểu nếu như nhìn đến ngày 31 mà em không rõ được mình đã sử dụng hết những vt nào thì càng thất vô nghĩa quá.
Còn cách click chọn mã vt sử dụng cho ngày 1 và sử dụng bao nhiêu kg thì sẽ tự động ở ngày 2, 3, ... cũng như ngày 31 sẽ xuất hiện mã và Tồn của vt đó. Trong khi ngày 2 ta có sử dụng tiếp vt đó hay không thì nó vẫn hiện hữu trong sheet để tiện theo dõi, hoặc có click chọn thêm mã mới để sử dụng thì tương tự ngày kế tiếp trở về sau sẽ tự động có. Nhưng em nghĩ cách này coi có vẻ khó. Và nếu có code chắc cũng rối lắm nhỉ?
Vì khi có xuất hiện mã vt mới thì chỉ có ngày sau ngày đó mới xuất hiện mã đó trong sheet, còn ngày trước đó thì ko xuất hiện .
Xin tiền bối cho ý kiến và chỉ giáo thêm ạ.
Cảm ơn các tiền bối nhiều nhiều !
 
Làm tạm như sau:
- Sheet DMVT thêm 1 cột số dư đầu tháng
- Nếu là sheet ngày_01, lấy số dư đầu tháng cho vào tồn đầu
- Nếu là sheet ngày >1, lấy số tồn cuối ngày hôm trước cho vào tồn đầu.
(Lụm code bác Sa xài tạm, bỏ vô sự kiện listbox_double click)

Một vấn đề nảy sinh:
Nếu ngày hôm trước không phát sinh, sẽ không có tồn cuối, không có gì để lấy.
Chả lẽ dò ngược lại từng ngày một và cuối cùng lấy số dư đầu tháng? Chỗ này là do cấu trúc dữ liệu chưa chuẩn. Tạm thời (lại tạm thời), nếu ngày hôm trước không phát sinh, không có số dư, cho =0, từ từ tính tiếp.

Còn 1 chuyện nữa:
Nếu trong ngày lấy 1 vật tư 2 lần, thì:
- tồn đầu ngày nằm ở 2 nơi không có ý nghĩa
- tồn cuối ngày cũng nằm 2 nơi, và không thể hiên đúng tồn cuối ngày (lẽ ra phải trừ tổng xuất của 2 lần)

Tạm để đó! (lại tạm)
__________

Nghĩ ra 1 cách, tạo 1 sheet tồn tới ngày 31, gồm đủ mặt hàng luôn, vô đó lụm cho khoẻ. Nếu trong ngày xuất nhiều lần thì tồn đầu lần sau là tồn cuối lần trước luôn. Mai làm, giờ đi nghỉu
 

File đính kèm

  • (v3) TKSX-THOI.rar
    133.2 KB · Đọc: 15
Lần chỉnh sửa cuối:
Dạ con cảm ơn thầy!
Mà con không xem dc file thầy gủi thầy ui :(
 
Làm lại như sau:
1. Trong sheet DMVT, thêm 31 cột, là tồn cuối ngày 1 - 31: Công thức = tồn cuối ngày hôm trước + SumIf nhập - SumIf xuất

2. Để bảo đảm số tồn đúng với thực tế nếu xuất 1 ngày nhiều lần cùng 1 mặt hàng, phải làm thêm:
- 7 ô nhập liệu trên form: 1 ô nhập và 6 ô xuất
- Bỏ sự kiện Listbox DoubleClick
- Tạo 1 nút nhấn ghi dữ liệu:
  • Ghi mã, tên vật tư
  • Ghi số lượng tồn tại đúng thời điểm đó
  • Ghi số lượng nhập xuất
  • Tính lại số tồn mới cho lần nhập liệu kế tiếp
Cái bước cuối đo đỏ đó hiện giờ làm cho code hơi chậm do dùng công thức trên sheet 31 cột 500 dòng. Để nhờ ThuNghi cải tiến xem sao.

File rar mà không mở được chời? File zip nha.
 
Lần chỉnh sửa cuối:
Cải tiến lại, chờ ThuNghi lâu quá nên làm luôn. (ThuNghi độ rày làm biếng tệ)

Tính số tồn trong 31 cột sheet DMVT bằng VBA
Chỉ tính lại số tồn cho 1 dòng vừa xảy ra xuất nhập
Hết bị chậm.
 

File đính kèm

  • (ptm) TKSX-THOI.zip
    192.1 KB · Đọc: 17
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom