CombBox và Listbox

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

khoa_pr

Thành viên hoạt động
Tham gia
16/6/09
Bài viết
141
Được thích
13
Tôi có một file Bangdiem voi các sheets sau:Sheets Trangchu, các sheets còn lại là các sheets tên lớp như: Lớp 61,62,63,64,71,71,71,81,82,83,91,92,93,94 . . . Ở sheets Trangchu cột A tôi tạo nội dung là các khối: Khối 6, khối 7, khối 8, khối 9. Ở cột B tôi tạo tên các lớp như trên. Tôi tạo 1 combobox tên là khối và cho hiển thị nội dung cột A vào combobox khối, một listbox tên Các lớp hiển thị tên các lớp ở cột B, một nút CommandButton tên Thực hiện. Tôi muốn 2 yêu cầu:
1- Khi Click vào combobox khối để chọn 1 khối bất kỳ thì bên listbox các lớp hiển thị tên các lớp thuộc khối đó. Ví dụ: Chọn Khối 6 thì Listbox chỉ hiện tên các lớp 61,62,63,64.
2- Khi Click chuột vào tên 1 lớp 6 và nhấn nút Thực hiện thì Sheets lớp 6 đó sẽ mở ra.
Xin cám ơn mọi người
 
Bạn đưa ví dụ lên đi nhé
 
Upvote 0
Đây là một ví dụ................
 

File đính kèm

Upvote 0
Chào bạn sealand! (Lần này tôi có kèm theo file)
Rất cám ơn vì bạn và chibi đã góp ý, giúp đỡ tôi cách thực hiện việc chọn khối và lớp. tuy nhiên sao bạn không làm luôn một commandbutton thực hiện để sau khi chọn khối và lớp thì nó sẽ gọi sheet lớp đó ra luôn ?
Còn việc sử dụng trang phụ thì cũng có lý do của nó: Tôi viết code sử dụng cho 4 sheets gốc: Diem_L6, Diem_L7, Diem_L8 và Diem_L9, cho chúng ẩn. Trong Form chính khi tôi nhấn nút tạo lớp, sau khi tạo tên sẽ được đặt là L61, L71, L82 . . . và các tên sheets đó sẽ được gán vào cột B, tôi sẽ dùng hàm trích một số, vị trí thứ 2 từ trái qua (đó là số 6, số 7 . . .) để vào cột A. sau đó Tạo Form như các bạn hướng dẫn. như vậy số lớp tạo ra bao nhiêu tự động thêm vào cột A (tên khối) và cột B (Tên lớp). Mục đích sử dụng sheet phụ là như thế.
Tuy nhiên giớ này có 2 vấn đề mong mọi người tiếp tục giúp đỡ:
1- Cũng với các combobox đó (như của bạn chibi) hoặc của sealand, làm thế nào để viết code và một nút lệnh xóa, khi chọn lớp và nhấn nút xóa thì sheet của lóp đó bị xóa ra khỏi Workbook.
2- Khi các bạn khởi động tập tin tôi đính kèm theo, sẽ có một Form hiện lên, khi nhần nút Nhập-Xem DSHS các lớp thì sẽ mở ra sheet DSHS nhưng đừng ẩn sheet Trangchu mà chỉ ẩn Form thôi, khi nhấn nút Hiện Form bên sheets DSHS thì hiện lại Form và sheets Trangchu. Đoạn code như sau:
Private Sub CmDSlop_Click()
With ActiveWorkbook
Main.Hide
ActiveSheet.Visible = xlVeryHidden
Worksheets("DSHS").Activate

Cells(4, 2).Select
End With
End Sub
Nhưng nếu tôi bỏ đoạn ẩn sheets "ActiveSheet.Visible = xlVeryHidden" thì nó chỉ ẩn Form mà sheets DSHS cũng chẳn chịu mở ra, nó trơ trơ . . . thật là tức. Hoặc là chổ tạo lớp nếu sau khi nhập trùng tên lớp hoặc tên lớp bỏ trống chưa nhập, thì hiển thị thông báo, nếu nhấn nút Thoát thì bỏ qua quá trình tạo lớp, quay lại Trangchu và hiện Form, nhưng nó quay lại Trangchu nhưng chả chịu hiện Form.
Mong các bạn giúp đỡ. Xin chân thành cám ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Đã dùng Form và code thì nên bỏ trang phụ đi. Mình tham gia 1 ví dụ
 

File đính kèm

Upvote 0
1- ... tại sao lại là Worksheets(cbb_lop.Text).Activate mà không phải là một tên Worksheets (". . .") cụ thể nào đó.
2- Chỗ code khi Click cmd_OK: nếu không ghi thêm On error resume next thì khi chọn tên khối mà bên lop khong chon thì bị báo lỗi ngay. Tôi đã thêm và không bị báo lỗi nữa.
1- Mỗi lớp tương ứng với 1 sheet, mà tên lớp bạn chọn trong cbb_lop nên nếu viết tên lớp cụ thể trong code thì chỉ hiện đúng sheet của lớp đã viết.
2- Nếu không chọn lớp thì cbb_lop là trống và không có sheet "trống" nên bị lỗi.
Chúc vui vẻ.
 
Upvote 0
Minh bổ xung phần chon sheet, không cần comman đâu bạn. Khi bạn chọn trên list thì đã chọn sheet rồi. Thoát Form là đã ở Sheet đó
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom