Cập nhật dữ liệu trên ListBox

Liên hệ QC

namhandsome1

Thành viên mới
Tham gia
11/9/16
Bài viết
38
Được thích
3
Các cao nhân cho mình hỏi, có cách nào để dữ liệu luôn dc làm mới trên listbox khi ta nhập dữ liệu vào bảng, và trên list box hiện thị dòng cuối của bảng dữ liệu thay vì hiện dòng đầu tiên của bảng. Thanks các bác
 
Các cao nhân cho mình hỏi, có cách nào để dữ liệu luôn dc làm mới trên listbox khi ta nhập dữ liệu vào bảng, và trên list box hiện thị dòng cuối của bảng dữ liệu thay vì hiện dòng đầu tiên của bảng. Cảm ơn các bác
Cách thì có, nhưng bạn sẽ không được giúp đỡ vì chẳng có ai dám tự nhận mình là Cao nhân đâu. Muốn giúp thì bạn làm 2 việc, thứ nhất sửa lại chổ Cao nhân, thứ hai phải có file mẫu và dữ liệu mẫu, sau đó mô tả chi tiết mong muốn của mình.
 
Upvote 0
Các cao nhân cho mình hỏi, có cách nào để dữ liệu luôn dc làm mới trên listbox khi ta nhập dữ liệu vào bảng, và trên list box hiện thị dòng cuối của bảng dữ liệu thay vì hiện dòng đầu tiên của bảng. Cảm ơn các bác
Hiện tại thì bạn đang làm cách nào?
 
Upvote 0
ở from: frm_IEport. em nhập dẽ liều vào Sheets CSDL, nhưng mỗi lần nhập xong thì trên list box của form nó ko tự động update giá trị mới lên, muốn xem phải tắt form và mở lại thì dữ liệu ở dòng cuối. và mình phải kéo listbox xuống dưới cùng mới thấy nó mà ko thể thấy lúc mình vừa nhập xong
Bài đã được tự động gộp:

Cách thì có, nhưng bạn sẽ không được giúp đỡ vì chẳng có ai dám tự nhận mình là Cao nhân đâu. Muốn giúp thì bạn làm 2 việc, thứ nhất sửa lại chổ Cao nhân, thứ hai phải có file mẫu và dữ liệu mẫu, sau đó mô tả chi tiết mong muốn của mình.
Phải gọi người làm dc là cao nhân, chứ những bạn như mình mới tập tành vba thì ko thể làm cao nhân dc.
 

File đính kèm

  • QuanLyKho_OK.xlsm
    943.6 KB · Đọc: 134
Upvote 0
ở from: frm_IEport. em nhập dẽ liều vào Sheets CSDL, nhưng mỗi lần nhập xong thì trên list box của form nó ko tự động update giá trị mới lên, muốn xem phải tắt form và mở lại thì dữ liệu ở dòng cuối. và mình phải kéo listbox xuống dưới cùng mới thấy nó mà ko thể thấy lúc mình vừa nhập xong
Bài đã được tự động gộp:


Phải gọi người làm dc là cao nhân, chứ những bạn như mình mới tập tành vba thì ko thể làm cao nhân dc.
Ủa, Bạn ở Thái NGuyên hả? Tiếc là mình không phải cao nhân nên ngồi hóng cao nhân vậy.
 
Upvote 0
ở from: frm_IEport. em nhập dẽ liều vào Sheets CSDL, nhưng mỗi lần nhập xong thì trên list box của form nó ko tự động update giá trị mới lên, muốn xem phải tắt form và mở lại thì dữ liệu ở dòng cuối. và mình phải kéo listbox xuống dưới cùng mới thấy nó mà ko thể thấy lúc mình vừa nhập xong
Bài đã được tự động gộp:


Phải gọi người làm dc là cao nhân, chứ những bạn như mình mới tập tành vba thì ko thể làm cao nhân dc.
Vậy giờ bạn muốn sao? Muốn vừa mở form và vừa nhập liệu được luôn? Mỗi lần nhập liệu xong, listbox tự cập nhật?
 
Upvote 0
Vậy giờ bạn muốn sao? Muốn vừa mở form và vừa nhập liệu được luôn? Mỗi lần nhập liệu xong, listbox tự cập nhật?
mở form hay nhập liệu thì ok hết rồi, chỉ là khi mình nhập mới 1 dòng thì trên list box nó ko update lên cho mình nhin thấy dc, và muốn xem giá trị mới đó trên listbox thì phải reset lại form
 
Upvote 0
mở form hay nhập liệu thì ok hết rồi, chỉ là khi mình nhập mới 1 dòng thì trên list box nó ko update lên cho mình nhin thấy dc, và muốn xem giá trị mới đó trên listbox thì phải reset lại form
Bạn có code tạo list cho listbox đó thì sau khi nhập xong thì gọi lại cái code đó thôi
 
Upvote 0
mở form hay nhập liệu thì ok hết rồi, chỉ là khi mình nhập mới 1 dòng thì trên list box nó ko update lên cho mình nhin thấy dc, và muốn xem giá trị mới đó trên listbox thì phải reset lại form
Chừa hỉnh dung được, bạn quay phim màn hình xem thử. Bởi tôi test trên máy tôi nó cập nhật bình thường
Trong file bạn có code:
Mã:
Private Sub UserForm_Initialize()
Dim endR As Long
cmd_SuaCSDL.Enabled = False
cmd_XoaCSDL.Enabled = False
endR = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
arr = Sheet1.Range("B2:I" & endR)
With ListBox_CSDL
    .ColumnCount = 8
    .ColumnWidths = "80,250,70,150,50,50,50,50"
    .BoundColumn = 1
    .TextColumn = 2
    .List = arr

End With
End Sub
Code gán mảng cho ListBox thì không lý gì nó không cập nhật, cứ nhập xong rồi mở form thì sẽ thấy có ngay dữ liệu mới. Trừ phi bạn muốn vừa mở form vừa nhập liệu thì đó là chuyện khác
 
Upvote 0
Chừa hỉnh dung được, bạn quay phim màn hình xem thử. Bởi tôi test trên máy tôi nó cập nhật bình thường
Trong file bạn có code:
Mã:
Private Sub UserForm_Initialize()
Dim endR As Long
cmd_SuaCSDL.Enabled = False
cmd_XoaCSDL.Enabled = False
endR = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
arr = Sheet1.Range("B2:I" & endR)
With ListBox_CSDL
    .ColumnCount = 8
    .ColumnWidths = "80,250,70,150,50,50,50,50"
    .BoundColumn = 1
    .TextColumn = 2
    .List = arr

End With
End Sub
Code gán mảng cho ListBox thì không lý gì nó không cập nhật, cứ nhập xong rồi mở form thì sẽ thấy có ngay dữ liệu mới. Trừ phi bạn muốn vừa mở form vừa nhập liệu thì đó là chuyện khác
Ý em là lúc mình nhập dữ liệu xong, kicks vào nút OK, thì trên listbox sẽ hiện thị luôn dữ liệu mình vừa nhập đó, và có thể thì làm cho list box đó mặc định hiện thì trường dữ liệu ở phía cuối của bảng csdl ý ạ?
Bài đã được tự động gộp:

Bạn có code tạo list cho listbox đó thì sau khi nhập xong thì gọi lại cái code đó thôi
mình cho vào sự kiện change hả bác?
 
Upvote 0
Ý em là lúc mình nhập dữ liệu xong, kicks vào nút OK, thì trên listbox sẽ hiện thị luôn dữ liệu mình vừa nhập đó, và có thể thì làm cho list box đó mặc định hiện thì trường dữ liệu ở phía cuối của bảng csdl ý ạ?
Bài đã được tự động gộp:


mình cho vào sự kiện change hả bác?
cho vào sự kiện khi bấm nút ok ấy, còn để cho nó chọn dòng nào thì dùng ListIndex.

sao bạn lạm dụng Worksheet_SelectionChange vậy, click vào cell cứ quay tròn, nên xác định khi nào sẽ chạy sub, không thì tạo cái nút để nó chạy
 
Upvote 0
Chừa hỉnh dung được, bạn quay phim màn hình xem thử. Bởi tôi test trên máy tôi nó cập nhật bình thường
Trong file bạn có code:
Mã:
Private Sub UserForm_Initialize()
Dim endR As Long
cmd_SuaCSDL.Enabled = False
cmd_XoaCSDL.Enabled = False
endR = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
arr = Sheet1.Range("B2:I" & endR)
With ListBox_CSDL
    .ColumnCount = 8
    .ColumnWidths = "80,250,70,150,50,50,50,50"
    .BoundColumn = 1
    .TextColumn = 2
    .List = arr

End With
End Sub
Code gán mảng cho ListBox thì không lý gì nó không cập nhật, cứ nhập xong rồi mở form thì sẽ thấy có ngay dữ liệu mới. Trừ phi bạn muốn vừa mở form vừa nhập liệu thì đó là chuyện khác
dữ liệu cũ thì có, nhưng dữ liệu mình vừa nhập thêm vào thì ko thấy nó sau khi kích nút OK, muốn nhìn thấy dữ liệu mới phải tắt mở lại form
Bài đã được tự động gộp:

cho vào sự kiện khi bấm nút ok ấy, còn để cho nó chọn dòng nào thì dùng ListIndex.

sao bạn lạm dụng Worksheet_SelectionChange vậy, click vào cell cứ quay tròn, nên xác định khi nào sẽ chạy sub, không thì tạo cái nút để nó chạy
em làm việc chủ yếu tự động và dùng sub mà, tại nhiều lúc mình cần phải vào csdl để chỉnh sửa nội dung nên gán thêm cho vào sự kiện selectionchange thôi bác
 
Lần chỉnh sửa cuối:
Upvote 0
cứ gọi là cao nhân nếu bạn thích. chả hiêu sao lại dị ứng vô lý về cái từ đó. trong nội quy
chả thấy cấm.
 
Upvote 0
Tôi không theo dõi chi tiết code của bạn.
Tôi hiểu là bạn nhập một vùng dữ liệu vào ListBox. Tôi hiểu là khi bạn nhấn một nút thêm dữ liệu nào đó thì các giá trị từ Form được code đập vào sheet ở dòng trống đầu tiên.của sheet. Bây giờ bạn muốn là những dữ liệu kia cũng xuất hiện trong ListBox? Nếu thế ngoài việc đập xuống sheet thì làm thêm việc thêm chúng vào ListBox thôi. ListBox có phương thức AddItem. Hoặc thay cho AddItem thì nhập lại dữ liệu từ sheet vào ListBox. Nhưng code trong UserForm_Initialize nó làm việc này nên thay vì lặp lại code nhập dữ liệu thì sau khi đập xuống sheet thì thêm 1 dòng
Mã:
UserForm_Initialize

Nếu muốn chọn dòng cuối thì lại thêm 1 dòng
Mã:
ListBox_CSDL.ListIndex = ListBox_CSDL.ListCount - 1

Nói nôm na thì thêm 2 dòng trên sau đoạn code đập xuống sheet.

Chịu khó suy nghĩ lôgíc đi bạn
 
Upvote 0
cứ gọi là cao nhân nếu bạn thích. chả hiêu sao lại dị ứng vô lý về cái từ đó. trong nội quy
chả thấy cấm.
Đúng là không cấm, nhưng nên khuyên người hỏi tránh từ đó - vì đốt đuốc tìm cao nhân đúng nghĩa hơi khó ở đây

@Chủ Topic:
Nên nói rõ muốn listbox nào tên gì, form nào, xảy ra lỗi không muốn khi nào, mật khẩu login sao...
Cụ thể ở module, code, form nào, dòng nào đoạn nào?

Còn đưa 1 đống như bạn thì ai mò ra đây?
 
Upvote 0
Tôi không theo dõi chi tiết code của bạn.
Tôi hiểu là bạn nhập một vùng dữ liệu vào ListBox. Tôi hiểu là khi bạn nhấn một nút thêm dữ liệu nào đó thì các giá trị từ Form được code đập vào sheet ở dòng trống đầu tiên.của sheet. Bây giờ bạn muốn là những dữ liệu kia cũng xuất hiện trong ListBox? Nếu thế ngoài việc đập xuống sheet thì làm thêm việc thêm chúng vào ListBox thôi. ListBox có phương thức AddItem. Hoặc thay cho AddItem thì nhập lại dữ liệu từ sheet vào ListBox. Nhưng code trong UserForm_Initialize nó làm việc này nên thay vì lặp lại code nhập dữ liệu thì sau khi đập xuống sheet thì thêm 1 dòng
Mã:
UserForm_Initialize

Nếu muốn chọn dòng cuối thì lại thêm 1 dòng
Mã:
ListBox_CSDL.ListIndex = ListBox_CSDL.ListCount - 1

Nói nôm na thì thêm 2 dòng trên sau đoạn code đập xuống sheet.

Chịu khó suy nghĩ lôgíc đi bạn
Bài đã được tự động gộp:

Tôi không theo dõi chi tiết code của bạn.
Tôi hiểu là bạn nhập một vùng dữ liệu vào ListBox. Tôi hiểu là khi bạn nhấn một nút thêm dữ liệu nào đó thì các giá trị từ Form được code đập vào sheet ở dòng trống đầu tiên.của sheet. Bây giờ bạn muốn là những dữ liệu kia cũng xuất hiện trong ListBox? Nếu thế ngoài việc đập xuống sheet thì làm thêm việc thêm chúng vào ListBox thôi. ListBox có phương thức AddItem. Hoặc thay cho AddItem thì nhập lại dữ liệu từ sheet vào ListBox. Nhưng code trong UserForm_Initialize nó làm việc này nên thay vì lặp lại code nhập dữ liệu thì sau khi đập xuống sheet thì thêm 1 dòng
Mã:
UserForm_Initialize

Nếu muốn chọn dòng cuối thì lại thêm 1 dòng
Mã:
ListBox_CSDL.ListIndex = ListBox_CSDL.ListCount - 1

Nói nôm na thì thêm 2 dòng trên sau đoạn code đập xuống sheet.

Chịu khó suy nghĩ lôgíc đi bạn
thanks bác! đã chọn dc dòng cuối để xem, còn làm mới listbox để mình xem luôn giá trị sau khi mình nhập vào thì e làm chưa dc, bác xem giúp em.
Bài đã được tự động gộp:

Tôi không theo dõi chi tiết code của bạn.
Tôi hiểu là bạn nhập một vùng dữ liệu vào ListBox. Tôi hiểu là khi bạn nhấn một nút thêm dữ liệu nào đó thì các giá trị từ Form được code đập vào sheet ở dòng trống đầu tiên.của sheet. Bây giờ bạn muốn là những dữ liệu kia cũng xuất hiện trong ListBox? Nếu thế ngoài việc đập xuống sheet thì làm thêm việc thêm chúng vào ListBox thôi. ListBox có phương thức AddItem. Hoặc thay cho AddItem thì nhập lại dữ liệu từ sheet vào ListBox. Nhưng code trong UserForm_Initialize nó làm việc này nên thay vì lặp lại code nhập dữ liệu thì sau khi đập xuống sheet thì thêm 1 dòng
Mã:
UserForm_Initialize

Nếu muốn chọn dòng cuối thì lại thêm 1 dòng
Mã:
ListBox_CSDL.ListIndex = ListBox_CSDL.ListCount - 1

Nói nôm na thì thêm 2 dòng trên sau đoạn code đập xuống sheet.

Chịu khó suy nghĩ lôgíc đi bạn
Giải quyết xong rồi bác!. Cao nhân đây chứ còn đâu nữa.
 
Upvote 0
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2
Back
Top Bottom