Đưa item của listbox vào form (1 người xem)

Liên hệ QC

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

loinguyen212

Thành viên thường trực
Tham gia
21/2/14
Bài viết
254
Được thích
35
Chào mọi người, trên listbox được tạo trong form khi muốn click chuột vào một trong số những item hiện trong listbox để đưa item đó lên form thì phải làm như thế nào? Xin mọi người giúp đỡ.
Mục đích: đưa item lên để sửa, xong lại ghi xuống sheet.
 

File đính kèm

Lần chỉnh sửa cuối:
Xem có hiểu bạn muốn gì đâu thì làm sao mà giúp được.
 
Upvote 0
GT: trong listbox có danh sách (item). Có cách nào để kích đúp vào một trong các dòng trong danh sách của listbox thì lấy được toàn bộ thông tin của dòng đó. Mục đích lấy là để đưa vào form mới để chỉnh sửa, sau đó update lại sheet. Có vấn đề gì anh chưa rõ xin cứ hỏi. Mong anh giúp đỡ.
 
Upvote 0
Nhờ mọi người giúp đỡ.
Mã:
Private Sub ListBox1_Click()
a = Array("txtNgayThang", "txtSoPhieu", "ComboBox1", "txtDVT", "txtSL")
For i = 0 To UBound(a)
Controls(a(i)) = ListBox1.List(, i)
Next
txtNgayThang = Format(txtNgayThang, "dd/mm/yyyy")
End Sub
Private Sub Cmdcapnhat_Click()
a = Array("txtNgayThang", "txtSoPhieu", "ComboBox1", "txtDVT", "txtSL")
ReDim b(UBound(a))
For i = 0 To UBound(a)
b(i) = Controls(a(i))
Next
With ListBox1
    Set s = Sheet1.Range(.RowSource)
    s.Rows(1 + .ListIndex) = b
    Set s = s.Resize(s.Rows.Count + Int((1 + .ListIndex) / .ListCount))
    .RowSource = "Sheet1!" & s.Address
End With
End Sub
thêm vào đoạn With ListBox1....End With của UserForm_Initialize() các dòng sau
Mã:
                Do While Not Sheet1.[A4:E4].Offset(i).Find("*") Is Nothing                    
i = i + 1
                Loop
                .RowSource = "Sheet1!" & [A4:E4].Resize(i + 1).Address
                .BoundColumn = 0
Lưu ý:
- Các đoạn code trên áp dụng cho Userform1
- Chọn hàng bất kỳ trong ListBox1 sẽ hiển thị các giá trị của hàng được chọn lên các TextBox tương ứng để xem hoặc chỉnh sửa, nhấn nút "Cập nhật" để lưu các thay đổi .
- Chọn hàng trống cuối cùng của ListBox1 để nhập thêm record mới, nhấn nút "Cập nhật" để lưu lại .
 
Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người, trên listbox được tạo trong form khi muốn click chuột vào một trong số những item hiện trong listbox để đưa item đó lên form thì phải làm như thế nào? Xin mọi người giúp đỡ.
Mục đích: đưa item lên để sửa, xong lại ghi xuống sheet.

Nếu sử dụng phiếu với nhiều mặt hàng thì nên dùng SheetForm sẽ thuận lợi hơn UserForm.
 
Upvote 0
Mã:
Private Sub ListBox1_Click()
a = Array("txtNgayThang", "txtSoPhieu", "ComboBox1", "txtDVT", "txtSL")
For i = 0 To UBound(a)
Controls(a(i)) = ListBox1.List(, i)
Next
txtNgayThang = Format(txtNgayThang, "dd/mm/yyyy")
End Sub
Private Sub Cmdcapnhat_Click()
a = Array("txtNgayThang", "txtSoPhieu", "ComboBox1", "txtDVT", "txtSL")
ReDim b(UBound(a))
For i = 0 To UBound(a)
b(i) = Controls(a(i))
Next
With ListBox1
    Set s = Sheet1.Range(.RowSource)
    s.Rows(1 + .ListIndex) = b
    Set s = s.Resize(s.Rows.Count + Int((1 + .ListIndex) / .ListCount))
    .RowSource = "Sheet1!" & s.Address
End With
End Sub
thêm vào đoạn With ListBox1....End With của UserForm_Initialize() các dòng sau
Mã:
                Do While Not [A4:E4].Offset(i).Find("*") Is Nothing                    
i = i + 1
                Loop
                .RowSource = "Sheet1!" & [A4:E4].Resize(i + 1).Address
                .BoundColumn = 0
Chào bác Ẹc Ẹc. Test thử thấy báo lỗi ở dòng: Controls(a(i)) = ListBox1.List(, i)
Gửi file lên để mọi người xem thử.
 

File đính kèm

Upvote 0
Không biết anh dhn46 đã hiểu chưa?
Trong File của bạn có 2 form: UserForm1, UserForm2. Tất cả đều có Listbox. Code của bạn hiện thời chưa đưa được dữ liệu lên listbox. Câu hỏi là kích đúp listbox đưa lên Form??? - Đã có dữ liệu lên Listbox đâu bạn? Lên Form là lên Form nào? Vị trí nào.
Bạn có thể trình bày rõ hơn không?


Trong File tôi có vùng dữ liệu ABC, tôi muốn đưa dữ liệu đó lên listbox XYZ trên form Fn. Khi kích đúp dữ liệu tại Listbox thì giá trị G1 hiện tại textbox T1 của form Fn....
 
Upvote 0
Em muốn làm đơn giản, bởi vì chưa có đủ kiến thức, có file nào sử dụng sheetform như anh nói xin chia sẻ để học tập thêm. Cảm ơn anh.

Nếu muốn SheetForm thì chụp hình mẫu 1 cái phiếu Copy bỏ nó vào 1 sheet cần lập phiếu để biết mặt mũi nó thế nào mới làm được, chứ nói khơi khơi thì chẳng biết đường mà lần.
 
Upvote 0
Trong File của bạn có 2 form: UserForm1, UserForm2. Tất cả đều có Listbox. Code của bạn hiện thời chưa đưa được dữ liệu lên listbox. Câu hỏi là kích đúp listbox đưa lên Form??? - Đã có dữ liệu lên Listbox đâu bạn? Lên Form là lên Form nào? Vị trí nào.
Bạn có thể trình bày rõ hơn không?


Trong File tôi có vùng dữ liệu ABC, tôi muốn đưa dữ liệu đó lên listbox XYZ trên form Fn. Khi kích đúp dữ liệu tại Listbox thì giá trị G1 hiện tại textbox T1 của form Fn....

File đã sửa lại để dễ hiểu hơn. Khi gọi form, chọn Loại hàng: A, ghi diễn giải => có một danh sách trong listbox, ví dụ phát hiện một bản ghi trong listbox bị sai => Làm thế nào để sửa.
Có cách nào để kích đúp vào bản ghi đó trong listbox để đưa vào FormSua3, điều chỉnh lại số liệu, và ghi xuống sheet.
Anh xem lại file ở bài #1.
 
Upvote 0
Gửi anh Ẹc Ẹc, đã đổi sang UserForm1 thì cũng xảy ra lỗi...
 
Upvote 0
Web KT

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

Back
Top Bottom