nhờ anh chị sửa giúp code cập nhập dữ liệu trên Listbox (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

lexuantruong

Thành viên chính thức
Tham gia
27/11/08
Bài viết
65
Được thích
3
nội dung như tiêu đề ạ.
Cụ thể là: ở bên danh sách thuốc hết hạn, sau khi bấm nút " Xóa" để cập nhập lại dữ liệu thì trên listbox hiển thị không đúng. anh chị sửa giúp em sau khi bấm " Cập Nhập Dữ Liệu" thì trên listbox không bị lỗi, đồng thời những thuốc vừa " cập nhập" đó không hiện lại trên listbox nữa ( vì đã xóa hạn dùng của thuốc hết hạn nên không cần hiển thị lên listbox nữa, chỉ hiển thị những thuốc hết hạn thôi)
Nhờ anh chị sửa giúp ạ, em cám ơn nhiều nhiều ạ.
 

File đính kèm

nội dung như tiêu đề ạ.
Cụ thể là: ở bên danh sách thuốc hết hạn, sau khi bấm nút " Xóa" để cập nhập lại dữ liệu thì trên listbox hiển thị không đúng. anh chị sửa giúp em sau khi bấm " Cập Nhập Dữ Liệu" thì trên listbox không bị lỗi, đồng thời những thuốc vừa " cập nhập" đó không hiện lại trên listbox nữa ( vì đã xóa hạn dùng của thuốc hết hạn nên không cần hiển thị lên listbox nữa, chỉ hiển thị những thuốc hết hạn thôi)
Nhờ anh chị sửa giúp ạ, em cám ơn nhiều nhiều ạ.

Góp ý cho bạn:

1/ Dùng hàm API trong sheet Source thì phải có nội dung chứ, nhưng trình độ như bạn thì không nên dùng hàm này chi cho rắc rối mà nó chẳng có tác dụng gì cả, còn muốn cho nó hiện nội dung khi rê chuột vào Control nào đó thì click chọn Control rồi vào cửa sổ Properties gõ nội dung vào ControlTipText là được rồi.

2/ Bạn cần xóa là xóa dòng hay chỉ xóa riêng 1 Cell nào đó thôi thì cần nêu rỏ để các thành viên hiểu mà còn biết đường mà giúp cho bạn, bài 1 bạn nêu vấn đề dông dài nhưng chẳng ai hiểu được (còn code thì bạn lắp ráp lung tung quá).
 
Upvote 0
Góp ý cho bạn:

1/ Dùng hàm API trong sheet Source thì phải có nội dung chứ, nhưng trình độ như bạn thì không nên dùng hàm này chi cho rắc rối mà nó chẳng có tác dụng gì cả, còn muốn cho nó hiện nội dung khi rê chuột vào Control nào đó thì click chọn Control rồi vào cửa sổ Properties gõ nội dung vào ControlTipText là được rồi.

2/ Bạn cần xóa là xóa dòng hay chỉ xóa riêng 1 Cell nào đó thôi thì cần nêu rỏ để các thành viên hiểu mà còn biết đường mà giúp cho bạn, bài 1 bạn nêu vấn đề dông dài nhưng chẳng ai hiểu được (còn code thì bạn lắp ráp lung tung quá).

1/. em đâu có rành mấy vụ VBA này đâu anh, em copy code từ các file khác vào rồi sửa lại cái mình cần thôi.

2/. em chỉ cần xóa riêng 1 Cell thôi anh, vì còn dữ liệu ở các cell sau nữa nên không thể xóa dòng được (anh thấy trên Form có mấy nút xóa đó)
nghĩa là: - khi nào có thuốc hết hạn thì hiện lên listbox, sau khi xóa đi thì không cần hiện lại thuốc mới xóa nữa
- Chỗ xóa đó em để dành khi nào có hàng mới về thì em nhập vào lại cho đỡ mất công ghi lại từ đầu thôi.

Trong code chỗ nào cần sửa thì anh giúp em luôn được không ạ.
 
Upvote 0
Tôi thấy file của bạn tự làm phức tạp qúa. Mấy cái hàm API trông mà thấy ngán tác dụng thì chẳng bao nhiêu chủ yếu trang trí là chính.

Bạn phải xác định xóa là xóa cái gì? ở đâu? Của bạn xóa xong update nó thêm luôn môtỵ dòng mới, còn dòng cũ vẫn nằm nguyên. Thật chả hiểu ra làm sao.

Phương án làm cũng bất hợp lý là cấp dữ liệu LB lại nằm trong sự kiện active của form. Bạn làm riêng 1 sub nạp cho LB cần nạp ta gọi nó là xong
 
Upvote 0
Tôi thấy file của bạn tự làm phức tạp qúa. Mấy cái hàm API trông mà thấy ngán tác dụng thì chẳng bao nhiêu chủ yếu trang trí là chính.

Phương án làm cũng bất hợp lý là cấp dữ liệu LB lại nằm trong sự kiện active của form. Bạn làm riêng 1 sub nạp cho LB cần nạp ta gọi nó là xong

em đâu có biết j về VBA đâu anh, code chỉ copy tu các file khác về thôi chứ không biết viết

Bạn phải xác định xóa là xóa cái gì? ở đâu? Của bạn xóa xong update nó thêm luôn môtỵ dòng mới, còn dòng cũ vẫn nằm nguyên. Thật chả hiểu ra làm sao.

như em nói ở bài #4, cụ thể em chi cần xóa " Đơn giá, Số lô, Hạn dùng" trực tiếp trên Form luôn chứ không phải vào excel để xóa.
code bị lỗi nên mới có hiện tượng " Của bạn xóa xong update nó thêm luôn môtỵ dòng mới, còn dòng cũ vẫn nằm nguyên" nên em mới nhờ anh giúp đỡ. em chỉ muốn sau khi Cập nhâp dữ liệu thì không còn hiện lên LB thuốc hết hạn nữa ( vì đã xóa hạn dùng nên không còn trong danh sách thuốc hết hạn), LB chỉ hiện những thuốc hết hạn thôi, còn trong excel thì chỉ cần xóa các cell " Đơn giá, Số lô, Hạn dùng" chứ không thêm dòng mới nào cả.
Cần sự giúp đỡ của anh nhiều ạ.
 
Upvote 0
Vậy là tôi hiểu: Khi vào form Thuoc hết hạn sẽ liệt kê các đơn thuốc đã qua ngày hạn sử dụng. Tùy chọn của bạn có 2 hình thức:

1/Sửa chữa thông tin lô thuốc : Sau khi update nó sẽ cập nhật vào Sheet và Listbox
2/Bạn xóa lô: Xóa toàn bộ thông tin lô thuốc (Chỉ để tên thuốc, đơn vị tính sau này nếu có dùng lại) Đây là phương án không hay nhất là thuốc chữa bệnh. Bạn nên có 1 danh mục thuốc riêng để chọn nhập cho đồng bộ, 1 loại thuốc có thể có dạng viên nén hay thuốc nước cần phân biệt rõ ràng.) Nếu đã để lại thì để nguyên còn tham khảo sau và cột hạn sử dụng ghi STOP hay 1/1/1900 cho đồng bộ dữ liệu

Tôi sẽ giúp bạn thử xem sao, nhưng không hối thúc vì chỉ tranh thủ luc rỗi thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn Test thử xem sao (Chỉ Form Thuoc Het Han thôi)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn Test thử xem sao (Chỉ Form Thuoc Het Han thôi)
ok rồi anh, đúng như ý của em rồi @$@!^%

còn vấn đề ngày tháng chỗ Hạn dùng nó hiển thị bị ngược rồi anh, trên LB là mm/dd/yyyy, trong excel là dd/mm/yyyy, em muốn trên LB hiển thị dd/mm/yyyy được không anh( để không bị nhầm).

K biết trên máy anh có bị như vây không
 
Upvote 0
Đơn giản như sau:
Mã:
Sub LoadLB()
Dim Tm, i, j, x
Tm = Sheet1.Range("A2:A" & Sheet1.[A65000].End(3).Row).Resize(, 8)
If Me.ListHetHan.ListCount > 0 Then Me.ListHetHan.Clear
For i = 1 To UBound(Tm, 1)
If IsDate(Tm(i, 6)) Then
If DateDiff("d", Date, Tm(i, 6)) < 0 Then
Me.ListHetHan.AddItem Tm(i, 1), x
[B][COLOR=#ff0000]For j = 2 To 7 [/COLOR][/B][COLOR=#ff0000][I]' Dòng này sửa 8 thành 7[/I][/COLOR][B][COLOR=#ff0000][/COLOR][/B]
Me.ListHetHan.List(x, j - 1) = Tm(i, j)
Next j
[B][COLOR=#ff0000]Me.ListHetHan.List(x, 7) = Format(Tm(i, 8), "dd/mm/yyyy") [/COLOR][/B][I][COLOR=#ff0000]'Thêm dòng này[/COLOR][/I][B][COLOR=#ff0000][/COLOR][/B]
Me.ListHetHan.List(x, 8) = i + 1
x = x + 1
End If
End If
Next i
End Sub
 
Upvote 0
Upvote 0
Mã:
Sub LoadLB()
Dim Tm, i, j, x
Tm = Sheet1.Range("A2:A" & Sheet1.[A65000].End(3).Row).Resize(, 8)
If Me.ListHetHan.ListCount > 0 Then Me.ListHetHan.Clear
For i = 1 To UBound(Tm, 1)
If IsDate(Tm(i, 6)) Then
If DateDiff("d", Date, Tm(i, 6)) < 0 Then
Me.ListHetHan.AddItem Tm(i, 1), x
[B][COLOR=#ff0000]For j = 2 To 8 [/COLOR][/B][COLOR=#ff0000][I]' Dòng này sửa 8 thành 7[/I][/COLOR]
Me.ListHetHan.List(x, j - 1) = Tm(i, j)
Next j
[B][COLOR=#ff0000]Me.ListHetHan.List(x, 5) = Format(Tm(i, 6), "dd/mm/yyyy") [/COLOR][/B][I][COLOR=#ff0000]'Thêm dòng này[/COLOR][/I]
Me.ListHetHan.List(x, 8) = i + 1
x = x + 1
End If
End If
Next i
End Sub
bên danh sách thuốc sắp hết hạn em sửa lại code của anh là:
Mã:
If DateDiff("d", Date, Tm(i, 6)) < [B][COLOR=#0000cd]90[/COLOR][/B] Then ' nhằm thông báo thuốc sắp hết hạn trước 3 tháng

sao nó hiện luôn cả thuốc hết hạn luôn. anh sửa giúp em với.
 
Upvote 0
bên danh sách thuốc sắp hết hạn em sửa lại code của anh là:
Mã:
If DateDiff("d", Date, Tm(i, 6)) < [B][COLOR=#0000cd]90[/COLOR][/B] Then ' nhằm thông báo thuốc sắp hết hạn trước 3 tháng

sao nó hiện luôn cả thuốc hết hạn luôn. anh sửa giúp em với.

Tôi đồng ý với ý của sealand
Tôi thấy file của bạn tự làm phức tạp qúa. Mấy cái hàm API trông mà thấy ngán tác dụng thì chẳng bao nhiêu chủ yếu trang trí là chính.
.................................
Nếu bạn không làm chủ được mấy cái Form và ListBox... thì tạo Form nhập trên sheet luôn như file này cho "khoẻ".
Tôi không biết "Sắp hết hạn" là sao nên cho nó 30 ngày.
 

File đính kèm

Upvote 0
Tôi đồng ý với ý của sealand

Nếu bạn không làm chủ được mấy cái Form và ListBox... thì tạo Form nhập trên sheet luôn như file này cho "khoẻ".

em dùng Form để nhập dữ liệu luôn cho nó nhanh anh, chứ vào excel nhìn rối mắt lắm ( em thì thích dùng Form hơn)

Tôi không biết "Sắp hết hạn" là sao nên cho nó 30 ngày.

nghĩa là thuốc nào sắp hết hạn dùng thì báo trước khoảng 3 tháng để mà bán đi chứ anh, chứ để hết hạn thì tiêu em rồi.

em dựa theo bài #9 của anh sealand, thay vì hết hạn thì em sửa lại sắp hết hạn trước 3 tháng, nhưng nó lại hiện luôn cả thuốc hết hạn vào luôn.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
em dùng Form để nhập dữ liệu luôn cho nó nhanh anh, chứ vào excel nhìn rối mắt lắm ( em thì thích dùng Form hơn)



nghĩa là thuốc nào sắp hết hạn dùng thì báo trước khoảng 3 tháng để mà bán đi chứ anh, chứ để hết hạn thì tiêu em rồi.

em dựa theo bài #9 của anh sealand, thay vì hết hạn thì em sửa lại sắp hết hạn trước 3 tháng, nhưng nó lại hiện luôn cả thuốc hết hạn vào luôn.

Help me ............. :pray:
 
Upvote 0
Web KT

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

Back
Top Bottom