cách lấy gía trị từ combo box (1 người xem)

  • Thread starter Thread starter thoai
  • Ngày gửi Ngày gửi
Liên hệ QC

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

thoai

Thành viên thường trực
Tham gia
5/8/06
Bài viết
225
Được thích
25
Mình có sheet xuất kho cần truy xuất bằng combo box từ sheet mà hàng hoá. nhưng vấn đề là mình cần lấy hết dữ liệu khi chọn list mà k dc: k lấy dc giá trị số lượng, đơn gía...
 

File đính kèm

Mình có sheet xuất kho cần truy xuất bằng combo box từ sheet mà hàng hoá. nhưng vấn đề là mình cần lấy hết dữ liệu khi chọn list mà k dc: k lấy dc giá trị số lượng, đơn gía...
Bạn bổ sung thêm 2 dòng sau:
Mã:
ActiveCell.Offset(, 2) = .List(, 2)
ActiveCell.Offset(, 3) = .List(, 3)
vào đoạn
Mã:
Private Sub ComboBox1_Change()
    With ComboBox1
        If .MatchFound Then
            ActiveCell.Value = .Value
            ActiveCell.Offset(, 1) = .List(, 1)

            '!!!!!===>Bổ sung vào đoạn này<====!!!!!!'

            ActiveCell.Offset(, 9) = .List(, 3)
        Else
            ActiveCell.Resize(, 9).ClearContents
        End If
    End With
End Sub
Mình đã thử chắc là đúng ý bạn thôi. Nhưng mà dùng code này trên win 64 toàn báo lỗi ; mình phải bổ sung thêm tiền tố PtrSafe ở đoạn khai báo đầu code. Với lại mình thấy hình như code bị lỗi; sau khi sử dụng combo box; click chuột vào 1 ô nào đó bên sheet Mã hàng hóa thì bị xóa dữ liệu
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn bổ sung thêm 2 dòng sau:
Mã:
ActiveCell.Offset(, 2) = .List(, 2)
ActiveCell.Offset(, 3) = .List(, 3)
vào đoạn
Mã:
Private Sub ComboBox1_Change()
    With ComboBox1
        If .MatchFound Then
            ActiveCell.Value = .Value
            ActiveCell.Offset(, 1) = .List(, 1)

            '!!!!!===>Bổ sung vào đoạn này<====!!!!!!'

            ActiveCell.Offset(, 9) = .List(, 3)
        Else
            ActiveCell.Resize(, 9).ClearContents
        End If
    End With
End Sub
Mình đã thử chắc là đúng ý bạn thôi. Nhưng mà dùng code này trên win 64 toàn báo lỗi ; mình phải bổ sung thêm tiền tố PtrSafe ở đoạn khai báo đầu code. Với lại mình thấy hình như code bị lỗi; sau khi sử dụng combo box; click chuột vào 1 ô nào đó bên sheet Mã hàng hóa thì bị xóa dữ liệu
muốn thêm cột 4 và cột 5 thì sao bạn
 
Upvote 0
Mình đang không ngồi ở máy, nhưng bạn cứ thử bổ sung thêm vào chỗ đó các dòng
Active.cell.offset(,4)=.list(,4)
Active.cell.offset(,5)=.list(,5)
 
Upvote 0
dòng thứ 5 trở lên thì code bị lỗi, bạn xem dùm
Vì Combo box lấy dữ liệu của Sheet bang ma hang hoa đến hết cột ngày nhập. Nên Code cũng chỉ dừng lại Active.cell.offset(,4)=.list(,4) . Bạn bỏ đoạn Active.cell.offset(,5)=.list(,5) đi là hết lỗi nhé
 
Lần chỉnh sửa cuối:
Upvote 0
muốn thêm cột 4 và cột 5 thì sao bạn

ActiveCell.Offset(, 1) = .List(, 1) sẽ cho ra tên hàng hóa của Combo Box
ActiveCell.Offset(, 2) = .List(, 2) sẽ cho ra tên số lượng còn trong kho của Combo Box
ActiveCell.Offset(, 3) = .List(, 3) sẽ cho ra Giá nhập của Combo Box
ActiveCell.Offset(, 4) = .List(, 4) sẽ cho ra ngày nhập của Combo Box
Nhưng nếu xét vào file gốc của bạn thì
ActiveCell.Offset(, 4) = .List(, 4) sẽ cho ra ngày nhập là thừa. Vì cột G của sheet Xuat kho là cột Thành tiền = Số lượng x Đơn giá. Mình có điều chỉnh lại chút file gốc của bạn xem thử nhé.
Mình thì đúng là chưa gặp code nào về combo box như file này của bạn, kể cũng khá thú vị và mới lạ với mình. Nhưng nếu xét để áp dụng vào xử lý các công việc cụ thể thì mình sẽ không chọn giải pháp này vì không hỗ trợ tìm kiếm mã, tên hàng.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Trong thời gian phiêu du trên diễn đàn; mình có học hỏi và tìm tòi từ các anh, chị đi trước. Sử dụng List box có hỗ trợ tìm kiếm và lựa chọn Item từ danh sách, mình thấy khá phù hợp cho thực tiễn xử lý trong công việc.
Bạn tham khảo thêm giải pháp này nhé (biết đâu lại tiện hơn là dùng Combo Box)
Trong file mình gửi kèm. Khi mở file Click vào nút "Thêm đơn hàng tiếp"; list box hiện ra; gõ "công ty"; rồi lựa chọn từ danh sách bằng double click chuột. (nếu bạn gõ thông tin công ty càng chi tiết danh sách của list box sẽ càng rút gọn, ví dụ ta gõ "Công ty tnhh t" thì sẽ chỉ còn 3 item trong list, đấy là cái hay của dạng List này)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
ActiveCell.Offset(, 1) = .List(, 1) sẽ cho ra tên hàng hóa của Combo Box
ActiveCell.Offset(, 2) = .List(, 2) sẽ cho ra tên số lượng còn trong kho của Combo Box
ActiveCell.Offset(, 3) = .List(, 3) sẽ cho ra Giá nhập của Combo Box
ActiveCell.Offset(, 4) = .List(, 4) sẽ cho ra ngày nhập của Combo Box
Nhưng nếu xét vào file gốc của bạn thì
ActiveCell.Offset(, 4) = .List(, 4) sẽ cho ra ngày nhập là thừa. Vì cột G của sheet Xuat kho là cột Thành tiền = Số lượng x Đơn giá. Mình có điều chỉnh lại chút file gốc của bạn xem thử nhé.
Mình thì đúng là chưa gặp code nào về combo box như file này của bạn, kể cũng khá thú vị và mới lạ với mình. Nhưng nếu xét để áp dụng vào xử lý các công việc cụ thể thì mình sẽ không chọn giải pháp này vì không hỗ trợ tìm kiếm mã, tên hàng.
sao file bạn gởi lại k dùng dc combo, nhờ bạn xem lại. Tiện bạn có thể cho mình xin code form theo dõi đơn hàng nhé! cảm ơn bạn
 
Upvote 0
Mình vẫn sử dụng được bình thường nhé. Bạn chụp thử màn hình gửi ảnh lên đây mình xem thử
 
Upvote 0
Bạn xem giúp mình lấy đến giá trị giá bán 3 của sheet mã hàng hoá nhé
. Ý bạn là muốn đưa vào combo box thêm cột giá bán 3. Và khi ở sheet Xuat kho chọn trong combo box thì xuất đủ ra các cột tương ứng phải ko
Tốt nhất Bạn xây dựng 1 file hoàn chỉnh , có đủ các cột và cả dữ liệu cần thiết để đưa vào Combo Box. Rồi mình sửa code 1 lần. Còn hiện tại mình làm ví dụ 1 file này, có thêm cột giá bán 2,3, như bạn mong muốn. Và sheet Xuat kho lấy đủ cả 6 cột của Combo box
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom