Hiển Thị Dữ Liệu Khi Chọn Dữ Liệu Trong ComboBoxx

Liên hệ QC

misibi

Thành viên chính thức
Tham gia
18/3/15
Bài viết
51
Được thích
1
Em xin chào các Bác!
Các bác cho em hỏi một vấn đề sau. Hiện tại em có một file excel có chứa dữ liệu trong Sheet Du Lieu và một sheet có 1 combobox em đã tạo sẵn gồm 4 thứ hạng. Em muốn sau khi chọn thứ hạng nào đó trong combobox thì dữ liệu sẽ xuất hiện theo thứ hạng đó bên dưới combobox. Mong được sự giúp đỡ của các Bác trong diễn đàn.
Em xin cảm ơn rất nhiều. Em xin đính kèm file
 

File đính kèm

  • demo.xlsx
    20.6 KB · Đọc: 11
Em xin chào các Bác!
Các bác cho em hỏi một vấn đề sau. Hiện tại em có một file excel có chứa dữ liệu trong Sheet Du Lieu và một sheet có 1 combobox em đã tạo sẵn gồm 4 thứ hạng. Em muốn sau khi chọn thứ hạng nào đó trong combobox thì dữ liệu sẽ xuất hiện theo thứ hạng đó bên dưới combobox. Mong được sự giúp đỡ của các Bác trong diễn đàn.
Em xin cảm ơn rất nhiều. Em xin đính kèm file
Bạn xem file xem đúng ý bạn không?
 

File đính kèm

  • demo.xlsx
    19 KB · Đọc: 14
Bạn xem file xem đúng ý bạn không?
Trước tiên xin cám ơn bạn 0905744404 đã trả lời mình. Phần bạn đưa ra vẫn chưa đúng với mục đích của mình. Mình muốn sử dụng combobox để đưa ra dữ liệu mình mong muốn như ở sheet Danh Sách trong đó có 5 cột là STT, HOTEN, GT,NGAYVAO, HANG; nếu dùng bộ lọc filter để lọc thì bảng dữ liệu của mình có bao nhiêu cột thì nó cũng hiển thị hết. Ở đây mình chỉ muốn xuất hiện 5 cột đó thôi. Mong các bạn giúp đỡ. Xin cám ơn
 
Các bạn ơi giúp mình với.
 
Tạm làm theo cách đơn giản này, bạn xem có đúng ý không.
 

File đính kèm

  • demo.xlsx
    24.6 KB · Đọc: 9
Bạn ơi giúp người thì giúp cho chót. Làm giúp mình 5 cột nhé bạn

thử một trong 2 đoạn code sau (file lấy bài #6 nha)
Mã:
Sub Loc()
Application.ScreenUpdating = False
  Sheet2.[A4:G60000].ClearContents
  Sheet1.[A1].Resize(Sheet1.[a60000].End(3).Row, 7).AdvancedFilter 2, Sheet2.[B1:B2], Sheet2.[A4:G4]
  Range("C:C,G:G").Delete
Application.ScreenUpdating = True
End Sub
========
Mã:
Sub loc()
Dim dulieu, DS(1 To 60000, 1 To 5) As Variant
dulieu = Sheet1.[a2].Resize(Sheet1.[a60000].End(3), 7).Value
For i = 1 To UBound(dulieu)
    If dulieu(i, 6) = [b2].Value Then
        k = k + 1
        DS(k, 1) = dulieu(i, 1)
        DS(k, 2) = dulieu(i, 2)
        DS(k, 3) = dulieu(i, 4)
        DS(k, 4) = dulieu(i, 5)
        DS(k, 5) = dulieu(i, 6)
    End If
Next i
[a5:E60000].ClearContents
[a5].Resize(k, 5).Value = DS
End Sub
 
thử một trong 2 đoạn code sau (file lấy bài #6 nha)
Mã:
Sub Loc()
Application.ScreenUpdating = False
  [COLOR=#FF0000][B]Sheet2.[A4:G60000].ClearContents[/B][/COLOR]
  Sheet1.[A1].Resize(Sheet1.[a60000].End(3).Row, 7).AdvancedFilter 2, Sheet2.[B1:B2], Sheet2.[A4:G4]
[COLOR=#0000cd]  [B]Range("C:C,G:G").Delete[/B][/COLOR]
Application.ScreenUpdating = True
End Sub

Đang "quỡn" nên chọt chọt chơi nà!

1) Thử xóa luôn cái dòng màu đỏ xem nó có chạy tốt không hen! --=0

2) Thay vì xóa 2 cột (dòng màu xanh), vậy thì tại sheet Danh Sach, ta đặt sẳn 5 tiêu đề cần thiết thôi:

[STT] [HOTEN] [GT] [NGAYVAO] [Hạng]

Code có thể chỉnh lại như sau:

Mã:
Sub Loc()
    Application.ScreenUpdating = False
        Sheet1.[A1].Resize(Sheet1.[B65536].End(3).Row, 7).AdvancedFilter 2, _
        Sheet2.[B1:B2], Sheet2.[A4:E4]
    Application.ScreenUpdating = True
End Sub
 
Đang "quỡn" nên chọt chọt chơi nà!

1) Thử xóa luôn cái dòng màu đỏ xem nó có chạy tốt không hen! --=0

2) Thay vì xóa 2 cột (dòng màu xanh), vậy thì tại sheet Danh Sach, ta đặt sẳn 5 tiêu đề cần thiết thôi:

[STT] [HOTEN] [GT] [NGAYVAO] [Hạng]

Code có thể chỉnh lại như sau:

Mã:
Sub Loc()
    Application.ScreenUpdating = False
        Sheet1.[A1].Resize(Sheet1.[B65536].End(3).Row, 7).AdvancedFilter 2, _
        Sheet2.[B1:B2], Sheet2.[A4:E4]
    Application.ScreenUpdating = True
End Sub

cũng đã từng làm như vậy, mà sao nó ko ra, nó chép luôn toàn bộ sheet bên kia qua..........ko hiểu tại sao kỳ vậy nữa..........hihihihihi
 
Trước tiên xin cám ơn bạn 0905744404 đã trả lời mình. Phần bạn đưa ra vẫn chưa đúng với mục đích của mình. Mình muốn sử dụng combobox để đưa ra dữ liệu mình mong muốn như ở sheet Danh Sách trong đó có 5 cột là STT, HOTEN, GT,NGAYVAO, HANG; nếu dùng bộ lọc filter để lọc thì bảng dữ liệu của mình có bao nhiêu cột thì nó cũng hiển thị hết. Ở đây mình chỉ muốn xuất hiện 5 cột đó thôi. Mong các bạn giúp đỡ. Xin cám ơn

Góp thêm file - Không muốn VBA thì có thể dùng Name+công thức nha.
 

File đính kèm

  • demo.rar
    17 KB · Đọc: 6
Góp thêm file - Không muốn VBA thì có thể dùng Name+công thức nha.

Dùng cthuc mảng chi cho nặng
để trống dòng số 5 (cho nó ẩn đi)
Mã:
A6=IF(ROW(1:1)<=COUNTIF('Du Lieu'!$F$2:$F$79,$B$2),MATCH($B$2,OFFSET('Du Lieu'!$F$2,A5,,MAX('Du Lieu'!A:A)-A5),0)+A5,"")

kéo xuống, có stt rồi thì dùng vlookup tìm mấy vột còn lại...hhihihhi
 
Web KT
Back
Top Bottom