Trang 1/5 1 2 3 4 5 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 48

Ðề tài: ComBoBox trong Excel

  1. #1
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết

    ComBoBox trong Excel

    Lê Văn Duyệt


    Muốn tạo combo box trong Excel (chứ không phải trong VBE) thì bạn làm như sau:
    Đưa con trỏ đến thanh tiêu đề của màn hình Excel (như hình sau)

    Sau đó bạn chọn mục Visual basic

    Và tới đây bạn click vào Control Toolbox (hình cái búa và kèm?)
    Chú ý khi bạn thiết kế bạn nên để ở chế độ design mode hình cây thước Eke.

  2. Có 10 thành viên cảm ơn handung107 về bài viết này:


  3. #2
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết
    Các bạn nhìn lên hình trên, bạn cũng thấy có thể vào View / Toolbars /Control Toolbox, bạn cũng được một thanh công cụ để tạo ComboBox. ComboBox này thuộc lọai ActiveX Control.
    Bạn cũng có thể tạo ComboBox bằng thanh Menu View/ Toolbars/ Form.

  4. Có 7 thành viên cảm ơn handung107 về bài viết này:


  5. #3
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết

    Bạn muốn có 1 ComboBox sử dụng chung để lựa chọn 3 DS ?

    Chúng ta đã biết để tạo các DS lựa chọn, có thể dùng Data / Validation hay ComboBox. Nhưng chúng ta vẫn có thể kết hợp nhiều DS lựa chọn cho cùng một ComboBox hay Validation. Điều này rất cần thiết cho các bạn nào muốn File thiết kế của chúng ta tiết kiệm khỏi phải Insert các Sheet nhiều quá.

    TD : Bạn có thể thiết kế Sổ chi tiết thanh toán chung cho cả Khách hàng, NCC, thanh toán tạm ứng và cả tiền vay nữa. Chúng ta chỉ cần một Cell để làm vùng Criteria và tại Cell này, chúng ta sẽ đặt DS để lựa chọn.
    Ta sẽ đặt CSDL tại Sheet DS. Cột A ta có DS những Mã KH Nợ, cột B ta có DS nợ các Mã NCC, cột C ta có DS các Mã NV nhận tạm ứng, cột D ta có DS các Mã nguồn Vay ngắn hạn. DS của tôi bắt đầu từ A2:D100

    1/ Thiết kế ComboBox và các Option để chọn lựa :

    Bạn vào View / Toolbars /Forms. Chọn nút Option, bạn lần lượt vẽ cho tôi 4 Option và đặt tên là :
    Option 1 : DS KH Nợ
    Option 2 : DS Nợ NCC
    Option 3 : DS NV nhận tạm ứng
    Option 4 : DS Vay ngắn hạn
    Vào Format Control, tại thẻ Control bạn cho Link Cell tại G2 chẳng hạn, bạn có thể Link tại đâu tuỳ thích, và nếu bạn muốn đẹp, hãy Format Cell này có Font chữ màu trắng
    Tại Cell E1 bạn đặt công thức :
    =ADDRESS(2,$G$2)&":"&ADDRESS(100,$G$2)
    Bạn vào Insert Name đặt tên cho ô E1 này là MyRange. Tại hộp Reference, bạn nhập công thức sau :
    =Indirect(DS!E1)

    Sau đó, chúng ta lại dùng thanh công cụ Form, chọn nút ComboBox, vẽ 1 ComboBox và vào Menu Format Control, tại thẻ Control, chúng ta nhập vào hộp Input Range là MyRange.
    Thế là bây giờ, bạn chỉ cần lựa các Option, DS trong ComboBox sẽ thể hiện đúng DS các bạn cần để các bạn lựa chọn
    2/ Dùng Data Validation :
    Nếu bạn sử dụng Data Validation, bạn không cần ComboBox, nhưng vẫn dùng các Option như trên để chọn lựa. Bạn đặt Validation vào Cell bất kỳ. Tại hộp Validation, bạn chọn List tại hộp Allow, và tại Source, bạn nhập : =MyRange. Bạn cũng sẽ đạt được kết quả như trên
    Chúc các bạn thành công


  6. #4
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết

    Chọn nhiều danh sách trên cùng 1 ComboBox (Dùng VBA

    Adam_tran


    Chọn nhiều danh sách trên cùng 1 ComboBox (Dùng VBA)

    Có một cách cũng đơn giản (nhưng phải dùng VBA) để ComboBox của chúng ta có thể chọn nhiều hơn 1 danh sách bằng cách viết mã vào thủ tục GotFocus, Click , Worksheet_Change v...v.
    Đối với control ComboBox trên thanh Toolbar Control Toolbox, ta thay đổi thuộc tính ListFillRange, còn ComboBox trên Form ta thay đổi thuộc tính RowSource.
    Private Sub ComboBox1_GotFocus()
    If Dieukien1 Then ComboBox1.ListFillRange = Range1
    ElseIf Dieukien2 Then ComboBox1.ListFillRange = Range2
    ElseIf Dieukien3 Then ComboBox1.ListFillRange = Range3
    ... v...v
    end if
    End Sub

  7. Có 8 thành viên cảm ơn handung107 về bài viết này:


  8. #5
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết

    Sự khác nhau giữa ComboBox tạo bằng Menu Form và Menu Control ToolBox

    Adam tran


    Cả 2 object trên đều có chức năng tương tự nhau, do đó bạn tìm hiểu 1 chút để sử dụng phù hợp cho mình. Cái khác nhau thì nhiều, từ "nguồn", các thuộc tính, các Method đều khác nhau. Bạn phải học VB nhiều, chuyên sâu cỡ bác hai2hai hay Tuân mới hiểu. Tôi chỉ hiểu nôm na thế này:
    - ComboBox trên thanh công cụ Form bản chất nó là 1 Graphic Object, nó chỉ có thêm 1 vài thuộc tính (nằm trong Tab Format - Control). Nó không có các method riêng cũng như nhiều thuộc tính "chuẩn" của một Control. "Nguồn" của nó có lẽ chính là file Excel.exe
    - ComboBox trên thanh Cotrol Tools Box là 1 addtional control thuộc bộ MS Form 2.0 control (File nguồn FM20.DLL). Tùy nơi sử dụng (sử dụng trực tiếp dạng Embed trên worksheet hay sử dụng trên Form VBA) mà nó có một số thuộc tính và Method khác nhau.

    Paulsteigel


    Về cơ bản Combo Box trên Excel được phân làm 2 nhóm sau:
    1. Combo box nằm trong bộ điều khiển của Excel:
    Đây là bộ điều khiển viết riêng của Excel và có thể đặt trực tiếp vào các trang tính của excel. Các điều khiển này có thể làm việc trực tiếp với các đối tượng của trang tính.
    Hãy tưởng tượng thế này: Trang tính excel như một form và chúng ta bổ sung các điều khiển trực tiếp vào nó như khi thiết kế form trong VBA. Chỉ có điều khác, sau khi kết thúc thiết kế, ta phải đưa Trang tính về chế độ chạy bằng cách bật công tắc trên thanh công cụ Form Control hoặc bật chế độ Protect Sheet. (Khác với Form trong VBA - ta cần bấm F5 đúng không)
    Các đối tượng này nằm trên thanh công cụ Form control.
    Sự kiện liên quan đến loại đối tượng này sẽ gọi trực tiếp đến một thủ tục nằm trong Module của Workbook hoặc trong module của worksheet, tuỳ theo ta gán cho nó thủ tục nào. Và lưu ý là thủ tục của các đối tượng này không giống như thủ tục sự kiện của các điều khiển.
    2. Combo box trong bộ thư viện MsForm Control 2.0
    Cái này chính là các điều khiển như ta nhìn thấy trên thanh công cụ khi thiết kế form trên VBA. Excel cho phép chúng ta nhúng các điều khiển này vào trang tính qua thủ tục embed.
    Để đưa các đối tượng này vào sheet ta chỉ cần chọn Thanh công cụ Control Toolbox thôi.
    Sau khi kéo thả một đối tượng vào Sheet, ta có thể thấy được đoạn mã sau trên thanh công thức của bảng tính.
    =EMBED("Forms.ComboBox.1","")
    Với các đối tượng này, chúng ta có thể viết mã sự kiện trực tiếp cho nó giống như một điều khiển thông thường của Form trong VBA. Bạn chỉ cần nhấn kép một đối tượng điều khiển này là có thể bật màn hình soạn thảo VBA thôi.
    Sau khi kéo thả xong, các điều khiển này sẽ sẵn sàng để thực hiện mà không cần khoá như trong phần1.

    Đào Việt Cường


    Vấn đề đã được đưa ra đây thì em xin phép góp ý thêm thế này.
    Nếu xem xét ở góc độ thiết kế, hai điều khiển này có sự khác nhau tương đối:
    - Một là (em chỉ làm rõ ý của bác Pauls): Drop down trên Forms toolbar chỉ có thể được vẽ (thiết kế) trên Sheet - chúng ta không làm việc với nói trên VBA Design. Ngược lại khi làm việc với điều khiển này, bạn không phải bật công tắc Design Mode để vào thiết kế giống ComboBox
    - Hai là tập hợp các thuộc tính của chúng khác nhau: nói cho rõ hơn thì Drop Down không có thuộc tính (Properties). Điều mà có thể bạn quan tâm nhiều nhất đến điều khiển này là thẻ Control trong bảng Format Control.
    - Ba là thủ tục sự kiện: Như bác pauls đã nói, thủ tục của các Drop Down không giống như thủ tục sự kiện của các điều khiển. Hầu như bạn không thể làm được gì ngoài việc phải assign hay chỉnh sửa vĩ lệnh macro cho Drop Down. Với Combobox, bạn có thể lựa chọn các sự kiện và xây dựng chúng như các đối tượng khác.
    thay đổi nội dung bởi: handung107, 22-06-06 lúc 02:12 PM

  9. Có 14 thành viên cảm ơn handung107 về bài viết này:


  10. #6
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết

    Tác động đến các combobox trong worksheets

    OverAC


    Em có Một số các combox được tạo ra trên worksheet (chứ không phải trên form).
    Và em muốn dùng VBA để thay đổi một số properties của combox này nhưng không biết phải làm thế nào mong các bác giúp đở

  11. Có 3 thành viên cảm ơn handung107 về bài viết này:


  12. #7
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,466
    Cảm ơn
    1,202
    Được cảm ơn 16,203 lần trong 1,302 bài viết
    Đào Việt Cường


    Việc điều khiển các control thuộc về vấn đề kỹ thuật. Tôi xin phép các cao thủ xin góp ý như thế này:
    Truy xuất đến thuộc tính của đối tượng nào đó phụ thuộc vào các khai báo biến/thủ tục. Hơn nữa phạm vi và tầm ảnh hưởng của các biến/thủ tục phụ thuộc vào từ khoá khai báo (Public, Private, Dim...)
    Bạn vẫn có thể truy xuất đến các thuộc tính của điều khiển từ một module chuẩn (standard module) chứ không bắt buộc phải từ "module của sheet" (module chứac các sự kiện - nói nôm na là vậy) có chứa điều khiển đó. Cú pháp:
    [Workbook.][Worksheet.]<Control>.<Property>
    Bạn lưu ý là nếu bạn đang ở một module khác với "module của sheet" thì cách truy cập này bạn có thể không được hỗ trợ Ctrl + PaceBar.
    Theo tôi, để dễ đọc và dễ quản lý, bạn lên khai báo một điều khiển với kiểu là kiểu của điều khiển được bạn vẽ trên sheet sau đó gán điều khiển trên sheet vào điều khiển mà bạn đã khai báo:
    Dim <myControl> as <ControlType>
    Set <myControl>=[Workbook.][Worksheet.]<Control>
    Sau đó làm việc với <myControl> này bình thường.

  13. Có 4 thành viên cảm ơn handung107 về bài viết này:


  14. #8
    E không làm thế nào để đặt các danh sách trên một sheet khác,cái combox luôn nhận name của myrange trên sheet đặt nó, anh help em với

  15. #9
    Tham gia ngày
    06 2006
    Nơi Cư Ngụ
    Hà Nội
    Bài gởi
    5,606
    Cảm ơn
    7,852
    Được cảm ơn 20,874 lần trong 4,719 bài viết
    Bạn thử vào và tải file ví dụ của tôi gửi lên về:

    http://www.giaiphapexcel.com/forum/showthread.php?t=94

    Công thức ô F4=INDEX(Sheet1!A3:A8,C3,1)

    Còn trong Format Control, khai báo trong Input range:
    Sheet1!$A$3:$A$8

    Ví dụ dữ liệu gốc nằm tại Sheet1

    Chúc bạn thành công!

  16. Có 2 thành viên cảm ơn PhanTuHuong về bài viết này:


  17. #10
    Trích Nguyên văn bởi handung107
    Chúng ta đã biết để tạo các DS lựa chọn, có thể dùng Data / Validation hay ComboBox. Nhưng chúng ta vẫn có thể kết hợp nhiều DS lựa chọn cho cùng một ComboBox hay Validation. Điều này rất cần thiết cho các bạn nào muốn File thiết kế của chúng ta tiết kiệm khỏi phải Insert các Sheet nhiều quá.

    TD : Bạn có thể thiết kế Sổ chi tiết thanh toán chung cho cả Khách hàng, NCC, thanh toán tạm ứng và cả tiền vay nữa. Chúng ta chỉ cần một Cell để làm vùng Criteria và tại Cell này, chúng ta sẽ đặt DS để lựa chọn.
    Ta sẽ đặt CSDL tại Sheet DS. Cột A ta có DS những Mã KH Nợ, cột B ta có DS nợ các Mã NCC, cột C ta có DS các Mã NV nhận tạm ứng, cột D ta có DS các Mã nguồn Vay ngắn hạn. DS của tôi bắt đầu từ A2:D100

    1/ Thiết kế ComboBox và các Option để chọn lựa :

    Bạn vào View / Toolbars /Forms. Chọn nút Option, bạn lần lượt vẽ cho tôi 4 Option và đặt tên là :
    Option 1 : DS KH Nợ
    Option 2 : DS Nợ NCC
    Option 3 : DS NV nhận tạm ứng
    Option 4 : DS Vay ngắn hạn
    Vào Format Control, tại thẻ Control bạn cho Link Cell tại G2 chẳng hạn, bạn có thể Link tại đâu tuỳ thích, và nếu bạn muốn đẹp, hãy Format Cell này có Font chữ màu trắng
    Tại Cell E1 bạn đặt công thức :
    =ADDRESS(2,$G$2)&":"&ADDRESS(100,$G$2)
    Bạn vào Insert Name đặt tên cho ô E1 này là MyRange. Tại hộp Reference, bạn nhập công thức sau :
    =Indirect(DS!E1)

    Sau đó, chúng ta lại dùng thanh công cụ Form, chọn nút ComboBox, vẽ 1 ComboBox và vào Menu Format Control, tại thẻ Control, chúng ta nhập vào hộp Input Range là MyRange.
    Thế là bây giờ, bạn chỉ cần lựa các Option, DS trong ComboBox sẽ thể hiện đúng DS các bạn cần để các bạn lựa chọn
    2/ Dùng Data Validation :
    Nếu bạn sử dụng Data Validation, bạn không cần ComboBox, nhưng vẫn dùng các Option như trên để chọn lựa. Bạn đặt Validation vào Cell bất kỳ. Tại hộp Validation, bạn chọn List tại hộp Allow, và tại Source, bạn nhập : =MyRange. Bạn cũng sẽ đạt được kết quả như trên
    Chúc các bạn thành công
    E muốn các option va combox nằm một sheet và dữ liệu nằm ở sheet khác, e tải file lên cho các anh xem thử, các a hưỡng dẫn dùm
    Tập tin đính kèm Tập tin đính kèm

  18. Có 4 thành viên cảm ơn thhch về bài viết này:


Trang 1/5 1 2 3 4 5 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Tạo combobox trong excel
    Viết bởi Chau Cuong trong chuyên mục Hướng dẫn sử dụng các hàm trong Excel
    Trả lời: 1
    Bài mới gởi: 27-04-13, 07:05 AM
  2. Lấy giá trị từ combobox trong excel?
    Viết bởi hailinhflp trong chuyên mục Lập Trình với Excel
    Trả lời: 3
    Bài mới gởi: 01-10-12, 08:08 AM
  3. Làm sao để tạo 1 ô trong Excel như 1 combobox!
    Viết bởi trungtn1005 trong chuyên mục Hỏi đáp những vấn đề khác
    Trả lời: 3
    Bài mới gởi: 27-12-11, 03:31 PM
  4. Tạo ComboBox và thực hiện macro theo giá trị trong ComboBox?
    Viết bởi slackerdeb trong chuyên mục Những vấn đề chung
    Trả lời: 2
    Bài mới gởi: 03-10-11, 01:04 PM
  5. Nhận dữ liệu vào Excel từ combobox trong VBA
    Viết bởi mymapmap trong chuyên mục Hỏi đáp về VBA - Macro
    Trả lời: 4
    Bài mới gởi: 16-03-11, 07:57 PM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]