Lấy lại dữ liệu đã lưu sang Data

Liên hệ QC

Võ Thiếu Gia

Thành viên hoạt động
Tham gia
19/7/08
Bài viết
105
Được thích
54
Các bác giúp mình với. Có chổ này đã bí từ lâu. Không ai giúp mình hết.

Mình có một Sheet Data đã được lưu các dữ liệu (Bao gồm các hóa đơn đã xuất bán hoặc nhập)
Bây giờ, mình muốn cho nó hiện lại trên hóa đơn giống như lúc đầu mình nhập.
Mình dùng User Form cho thao tác này. Các bác cho mình code với.
 
Có lẽ ý của bạn là vầy :
Textbox1.value = Sheets("Data").Cells(dòng,cột).Value
Textbox2.value = Sheets("Data").Cells(dòng,cột+1).Value
..............

TDN
 
Upvote 0
Các bác giúp mình với. Có chổ này đã bí từ lâu. Không ai giúp mình hết.

Mình có một Sheet Data đã được lưu các dữ liệu (Bao gồm các hóa đơn đã xuất bán hoặc nhập)
Bây giờ, mình muốn cho nó hiện lại trên hóa đơn giống như lúc đầu mình nhập.
Mình dùng User Form cho thao tác này. Các bác cho mình code với.

Chào bạn,
Bạn đưa file cụ thể bạn đang làm lên để mọi người cùng làm nhé. Chứ không có file đính kèm khó làm việc quá.

Đại khái có thể dùng for..next để quét chọn dòng nào có số Hóa đơn đó và lưu ra sheet tạm. Sau đó copy nó vào sheet chứa hóa đơn/ hoặc form do bạn quy định.
 
Upvote 0
Chào bạn,
Bạn đưa file cụ thể bạn đang làm lên để mọi người cùng làm nhé. Chứ không có file đính kèm khó làm việc quá.

Đại khái có thể dùng for..next để quét chọn dòng nào có số Hóa đơn đó và lưu ra sheet tạm. Sau đó copy nó vào sheet chứa hóa đơn/ hoặc form do bạn quy định.

Kiệt xem dùm mình chổ này với. Code cho mấy cái Text box mình không biết viết làm sao

Hoặc có thể tạo thêm 1 Sheet xem lại HĐ cũ, Form giống như phiếu xuất kho cũng được. Khi Số HĐ và ngày HĐ được chấp nhận sẽ nhảy sang Sheet "Xem lại HĐ cũ" và dữ liệu được chọn sẽ nằm chễm chệ bên đó. Khi thao tác ở đó xong sẽ nhảy về lại Sheet "Xuat"
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Kiệt xem dùm mình chổ này với. Code cho mấy cái Text box mình không biết viết làm sao

Hoặc có thể tạo thêm 1 Sheet xem lại HĐ cũ, Form giống như phiếu xuất kho cũng được. Khi Số HĐ và ngày HĐ được chấp nhận sẽ nhảy sang Sheet "Xem lại HĐ cũ" và dữ liệu được chọn sẽ nằm chễm chệ bên đó. Khi thao tác ở đó xong sẽ nhảy về lại Sheet "Xuat"
Bạn xem file đính kèm nhé.
Góp ý tí: Giao diện để chọn xem lại hóa đơn đã cập nhập phải pro như thế này chứ. Không ai thiết kế kiểu như bạn đâu. Xem hình bên dưới, mình thiết kế lại cho bạn theo mẫu này rồi đấy nhé!
invoice.png
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn xem file đính kèm nhé.
Góp ý tí: Giao diện để chọn xem lại hóa đơn đã cập nhập phải pro như thế này chứ. Không ai thiết kế kiểu như bạn đâu. Xem hình bên dưới, mình thiết kế lại cho bạn theo mẫu này rồi đấy nhé!
invoice.png

Vâng, nó đúng là như vậy thì hay hơn thật hơn. Nhưng lại vướng ở một chổ nữa. Khi mình Clear Content. Cột DƠN GIÁ không xóa và bị mất công thức cho việc nhập hóa đơn mới tiếp theo.

Theo mình nghĩ, nên lập một Sheet "XEM LAI HOA DON CU" thì hay hơn. Mình sẽ nghiên cứu tiếp. nếu có vướng mắc nữa mong Bạn giúp đỡ.

Thanks
 
Upvote 0
Vâng, nó đúng là như vậy thì hay hơn thật hơn. Nhưng lại vướng ở một chổ nữa. Khi mình Clear Content. Cột DƠN GIÁ không xóa và bị mất công thức cho việc nhập hóa đơn mới tiếp theo.

Theo mình nghĩ, nên lập một Sheet "XEM LAI HOA DON CU" thì hay hơn. Mình sẽ nghiên cứu tiếp. nếu có vướng mắc nữa mong Bạn giúp đỡ.

Thanks

Không cần lập thêm sheet mới làm gì, chỉ chỉnh một tí xíu là xong. Mời bạn tải lại file ở bài #6 nhé. Thêm vào đó, trong danh sách hóa đơn, chỉ cần double click vào số hóa đơn cần xem là sẽ thấy kết quả (hoặc click nút OK).
 
Lần chỉnh sửa cuối:
Upvote 0
Không cần lập thêm sheet mới làm gì, chỉ chỉnh một tí xíu là xong. Mời bạn tải lại file ở bài #6 nhé. Thêm vào đó, trong danh sách hóa đơn, chỉ cần double click vào số hóa đơn cần xem là sẽ thấy kết quả (hoặc click nút OK).

Vâng, như vậy thì gần như là hoàn chỉnh. Thanks Mr Ca_dafi rất nhiều.

Do mình còn quá gà về VBA nên lại có mấy vấn đề nữa.
  1. Khi xem lại số HĐ thì sẽ không tiếp tục số HĐ đang nhập được. Ví dụ: Mình đang nhập số HĐ 009. Bất chợt phải xem lại số HĐ 004. Khi xem xong và in. Mình không thể tiếp tục được HĐ Tiếp Tục là 0010 (Theo lẽ nhập liên tục là 009 đến 0010).
  2. Ngày HĐ mình có thể sử dụng hàm today() không? Bởi khi xem lại HĐ thì ngày HĐ cũng mất hàm.
  3. Trong User Form không cập nhật được các hóa đơn mới lưu sau này
Do đó mình mới nghĩa ra ý tưởng là dùng thêm 1 Sheet mới tương tự như Sheet Xuat cho việc xem lại HĐ.
Bạn xem lại như vầy có được không, góp ý, chỉnh sửa dùm mình. Thanks
 

File đính kèm

Upvote 0
Vâng, như vậy thì gần như là hoàn chỉnh. Thanks Mr Ca_dafi rất nhiều.

Do mình còn quá gà về VBA nên lại có mấy vấn đề nữa.
  1. Khi xem lại số HĐ thì sẽ không tiếp tục số HĐ đang nhập được. Ví dụ: Mình đang nhập số HĐ 009. Bất chợt phải xem lại số HĐ 004. Khi xem xong và in. Mình không thể tiếp tục được HĐ Tiếp Tục là 0010 (Theo lẽ nhập liên tục là 009 đến 0010).
  2. Ngày HĐ mình có thể sử dụng hàm today() không? Bởi khi xem lại HĐ thì ngày HĐ cũng mất hàm.
  3. Trong User Form không cập nhật được các hóa đơn mới lưu sau này
Do đó mình mới nghĩa ra ý tưởng là dùng thêm 1 Sheet mới tương tự như Sheet Xuat cho việc xem lại HĐ.
Bạn xem lại như vầy có được không, góp ý, chỉnh sửa dùm mình. Thanks

1. Đặt 1 Name xác định số hóa đơn lớn nhất (vào Insert/Name/Define:
MaxInvoice ="HD"&RIGHT("000000"&MAX(VALUE(RIGHT(OFFSET(DATA!$C$3,,,COUNTA(DATA!$C:$C)-2,1),6)))+1,6)
Khi tạo hóa đơn mới sau khi vửa xem xong hóa đơn cũ, gõ tại ô số HD: = MaxInvoice
Gợi ý: Cần tạo một nút có tên "Tạo mới Hóa Đơn" để tự động làm việc này.

2. Việc bạn gõ vào ô Ngày hóa đơn = TODAY() có mất nhiều thời gian không vậy? Nếu bạn cho rằng mất thời gian thì có thể làm theo gợi ý tại câu 1 (tức là tạo một nút tạo mới Hóa đơn và cho excel tự làm việc này).

3. Chưa hiểu ý bạn như thế nào?
 
Upvote 0
1. Đặt 1 Name xác định số hóa đơn lớn nhất (vào Insert/Name/Define:

Khi tạo hóa đơn mới sau khi vửa xem xong hóa đơn cũ, gõ tại ô số HD: = MaxInvoice
Gợi ý: Cần tạo một nút có tên "Tạo mới Hóa Đơn" để tự động làm việc này.

2. Việc bạn gõ vào ô Ngày hóa đơn = TODAY() có mất nhiều thời gian không vậy? Nếu bạn cho rằng mất thời gian thì có thể làm theo gợi ý tại câu 1 (tức là tạo một nút tạo mới Hóa đơn và cho excel tự làm việc này).

3. Chưa hiểu ý bạn như thế nào?

Bạn xem file mình làm ở bài #9 rồi góp ý dùm mình

Vâng, như vậy. đối với mình thì làm được. Nhưng có vấn đề như sau:
  1. Mình muốn Số HĐ được liên tục từ ngày này sang ngày khác.
  2. Mỗi một ngày là Ngày HĐ tự động cập nhật. Theo hàm today()
  3. Nhưng quan trọng nhất là dữ liệu không cập nhật được vô User Form. Minh muốn nó cập nhật cho tất cã các ngày và các số HĐ luôn. Có nghĩa là khi mình vừa lưu xong một HĐ vào Sheet Data thì nó sẽ tự động cập nhật vào User Form xem lại HĐ cũ
  4. Còn 1 việc nữa. Trong đoạn code của bạn. Mình thấy có 2 đoạn giống nhau. Không hiếu nó là thế nào
Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem file mình làm ở bài #9 rồi góp ý dùm mình

Vâng, như vậy. đối với mình thì làm được. Nhưng có vấn đề như sau:
  1. Mình muốn Số HĐ được liên tục từ ngày này sang ngày khác.
  2. Mỗi một ngày là Ngày HĐ tự động cập nhật. Theo hàm today()
  3. Nhưng quan trọng nhất là dữ liệu không cập nhật được vô User Form. Minh muốn nó cập nhật cho tất cã các ngày và các số HĐ luôn. Có nghĩa là khi mình vừa lưu xong một HĐ vào Sheet Data thì nó sẽ tự động cập nhật vào User Form xem lại HĐ cũ
  4. Còn 1 việc nữa. Trong đoạn code của bạn. Mình thấy có 2 đoạn giống nhau. Không hiếu nó là thế nào
Thanks

1. Tạo một nút làm tự động việc này.
2. Giống câu 1
3. Lúc này để Listbook được làm tươi, bạn đặt lại Name ListHD cho rộng hơn một chút là xong.
Bạn xem và tải lại file đính kèm ở bài #6 nhé.

4. Hai đoạn giống nhau nhưng áp dụng cho hai đối tượng và hai sự kiện khác nhau:
- Một là sự kiện Listbox được Double Click
- Một là sự kiện nút OK được nhấn.
Cả hai sự kiện này cùng cho ra một cách xử lý sự việc giống nhau. Vì bạn chưa quen với VBA nên những đoạn này mình để chung vào Form cho bạn dễ thấy.
Đúng ra ta làm một thủ tục trong Module, sau đó khi có các sự kiện này xảy ra, chỉ cần gọi thủ tục này ra chạy.
 
Lần chỉnh sửa cuối:
Upvote 0
1. Tạo một nút là tự động việc này.
2. Giống câu 1
3. Lúc này để Listbook được làm tươi, bạn đặt lại Name ListHD cho rộng hơn một chút là xong.
Bạn xem và tải lại file đính kèm ở bài #6 nhé.

4. Hai đoạn giống nhau nhưng áp dụng cho hai đối tượng và hai sự kiện khác nhau:
- Một là sự kiện Listbox được Double Click
- Một là sự kiện nút OK được nhấn.
Cả hai sự kiện này cùng cho ra một cách xử lý sự việc giống nhau. Vì bạn chưa quen với VBA nên những đoạn này mình để chung vào Form cho bạn dễ thấy.
Đúng ra ta làm một thủ tục trong Module, sau đó khi có các sự kiện này xảy ra, chỉ cần gọi thủ tục này ra chạy.

Vâng, như vậy là OK lắm ruì. Mình chỉnh sửa tí nữa là OK.
Mình còn một thắc mắc. Trong Pivot Table. Làm sao để dùng Border tự động khi mình cập nhật được.

Thanks
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom