Trong đổi tương bằng để tạo ra danh sách các lựa chọn trong 1 thuộc tính combo box

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.

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.

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ừ A2100

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

Chọn nhiều danh sách trên cùng 1 ComboBox [Dùng VBA 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

Sự khác nhau giữa ComboBox tạo bằng Menu Form và Menu Control ToolBox 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. 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. 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.

Lần chỉnh sửa cuối: 22/6/06

Tác động đến các combobox trong worksheets 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 đở

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.]. 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 as Set =[Workbook.][Worksheet.]

Sau đó làm việc với này bình thường.

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

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ừ A2100

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

Dear thhch, ------------ Bạn chỉ cần chỉnh sửa lại một chút công thức tại ô H7 trong Sheet2 như thế này là ổn:

="Sheet2!"&ADDRESS[1;Sheet2!H4]&":"&[ADDRESS[3;Sheet2!H4]]


Bạn chú ý các địa chỉ tham chiếu mặc định sẽ được sử dụng là Sheet hiện hành. Nếu bạn muốn chỉ ra tường minh thì phải điền đẩy đủ thông tin cho tham chiếu theo dạng sau:
[Workbook!][Worksheet!]Address

Trên form, tôi đặt một ComboBox với thuộc tính là 2 colomne. Bây giờ tôi muốn dùng VB để AddItem vào combo này, tuy nhiên tôi chỉ làm được có 1 cột à ... Có cách nào addItem vào combo cho 02 cột không các bác ... em 'mò' hoài mà chưa biết!

Cảm ơn các bác nhé ...

Tại Linked Cell mình đặt công thức : A1 hay Sheet1!A1 nhằm lấy giá trị của Combobox vào ô A1 của Sheet1 [hay Sheet hiện hành].

Bình thường vẫn không sao. Nhưng thỉnh thoảng Excel bị "hai lần chín", thế là nó lại chạy sang ô A1 của sheet khác hoặc của File khác [mặc dù tên Sheet hoàn toàn khác].

Thế là mình đành cho nó Linked đến ô AW1 chẳng hạn, sau đó tại ô A1=AW1 để nếu có chạy sang sheet khác thì cũng không ảnh hưởng đến dữ liệu.

Không biết tại sao nhỉ ?????

P/S : Mình đã dặt cả địa chỉ tương đối và tuyệt đối nhưng vẫn bị.

Trên form, tôi đặt một ComboBox với thuộc tính là 2 colomne. Bây giờ tôi muốn dùng VB để AddItem vào combo này, tuy nhiên tôi chỉ làm được có 1 cột à ... Có cách nào addItem vào combo cho 02 cột không các bác ... em 'mò' hoài mà chưa biết!

Cảm ơn các bác nhé ...

Bạn tham khảo code sau:

Private Sub UserForm_Initialize[] ' ComboBox1.ColumnCount = 2 ' ComboBox1.AddItem "Lua chon 1, Cot so 1" ComboBox1.List[0, 1] = "Lua chon 1, Cot so 2" ' ComboBox1.AddItem "Lua chon 2, Cot so 1" ComboBox1.List[1, 1] = "Lua chon 2, Cot so 2" ' End Sub

Bác NVSon thiên vị thế, sao không trả lời cho mình luôn.
híc híc híc . . . . .

Bác NVSon thiên vị thế, sao không trả lời cho mình luôn.
híc híc híc . . . . .

Chào MrHieu! Thực tình thì tôi cũng chưa gặp "lỗi" trên bao giờ nên cũng chưa thể trả lời chính xác cho bạn được. Có lẽ là do Excel bị 2x9????

Để chính xác thì anh upload file lên diễn đàn để mọi người cùng khắc phục giúp cho!

Up file, nhưng có khi chạy thì nó không bị gì, nhưng thỉnh thoảng [khoảng 0,001%] thì nó lại bị. Thế mới khổ chứ. Mọi người chạy thấy không sao thì mình lại bị chửi bây giừ. hì hì
Thân!

Chào bạn Handung107.Bạn có thể chỉ cho tôi cách mở cái hộp Reference được không? Tôi mới hoc excel ma.

Bạn tham khảo code sau:

Private Sub UserForm_Initialize[] ' ComboBox1.ColumnCount = 2 ' ComboBox1.AddItem "Lua chon 1, Cot so 1" ComboBox1.List[0, 1] = "Lua chon 1, Cot so 2" ' ComboBox1.AddItem "Lua chon 2, Cot so 1" ComboBox1.List[1, 1] = "Lua chon 2, Cot so 2" ' End Sub

Cảm ơn cậu nhé, Cậu viết từ tháng 1 mà nay tháng 10 tớ mới ngộ ra [đủ để vợ tớ snh được em bé
] Cho hỏi thêm : Để

ComboBox1.List[1, 1] = "Lua chon 1, Cot so 2"


ComboBox1.List[2, 1] = "Lua chon 2, Cot so 2" Thì phải làm sao ???? Thật đúng là . . . tứ chi phát triển!!!

Thân!

Page 2

Bác Mr_Okebab tham khảo đoạn code sau:

Private Sub UserForm_Initialize[] Dim i ComboBox1.ColumnCount = 2 For i = 0 To 1 ' ComboBox1.AddItem "Lua chon " & i + 1 & ", Cot so 1" ComboBox1.List[i, 1] = "Lua chon " & i + 1 & ", Cot so 2" Next i End Sub

Bác Mr_Okebab tham khảo đoạn code sau:

Private Sub UserForm_Initialize[] Dim i ComboBox1.ColumnCount = 2 For i = 0 To 1 ' ComboBox1.AddItem "Lua chon " & i + 1 & ", Cot so 1" ComboBox1.List[i, 1] = "Lua chon " & i + 1 & ", Cot so 2" Next i End Sub

Uh, thì mình cũng đang dung cách này. Tuy nhiên ý mình hỏi là có cái cách nào giống như khai báo cho mảng ấy : Option Base 1 Cảm ơn cậu!!

Thân!

Combobox khi sử dụng luôn có dấu nháy tại ô nhập. nhập thế có nghĩa là lấy dữ liệu cũng có thể sai. Làm thế nào để giải quyết tình trạng trên khi chỉ muốn cho ngơời dùng chọn 5-->6 lựa chọn khác, không cho người dùng có thể nhập vào combo bõ

cảm ơn các bạn nhiều,
bác nào có bài nào rõ ràng hơn về combbox hơn không, vì mình chưa làm quen với cái này bao giờ.

làm ơn cho mình hỏi với. 1. mình đọc mà không hiểu VBA là gì và dùng như thế nào? có ai biết làm ơn chỉ giùm với. 2. mình thấy mọi người có dùng code, không hiểu nó được dùng ở đây? code ấy viết ở đâu? Làm ơn chỉ bảo giùm em với nhé.

Thanks nhiều.

Rất cám ơn bạn, nhưng thực sự tôi vẫn không làm được một xíu nào về cái combo box
Những hướng dẫn của bạn có thể cho người đã rành lắm rồi.
Chứ tôi làm theo hướng dẫn của bạn nhưng cũng mù tịt khi bạn nói là: >

Tôi vào đến form rồi nhưng chẳng hiểu option ở đâu để tạo ra option 1, 2, 3, 4 cả


Có thể vui lòng chỉ từng bước được không? tôi đang rất cần, thật đấy.
Cám ơn nhiều.

Đơn giản mình chỉ cần làm sao để làm được cái mũi tên bên cạnh xổ xuống có các lựa chọn để click vào thôi.

cho hỏi làm combo bõ 2 cột thì như thế nào ậy chỉ dùm với,thanks....

Bạn handung107 thân mến, bạn hướng dẫn tạo combox trên excel, nhưng mình dùng window 2007
phải làm sao, giúp mình với.Cam ơn nhiều.

Bạn handung107 thân mến, bạn hướng dẫn tạo combox trên excel, nhưng mình dùng window 2007
phải làm sao, giúp mình với.Cam ơn nhiều.


Bạn hỏi sao chẳng ăn nhập gì với Excel vậy? Nếu Win bất kỳ và có cài đặt Microsoft Office Excel thì cứ làm theo hướng dẫn của Chị handung107 thôi.

Vấn đề là Excel ở Version nào thôi, nếu vậy thì có chút khác biệt, nhưng không lớn lắm.

Lần chỉnh sửa cuối: 25/7/11

Bạn hỏi sao chẳng ăn nhập gì với Excel vậy? Nếu Win bất kỳ và có cài đặt Microsoft Office Excel thì cứ làm theo hướng dẫn của Chị handung107 thôi.

Vấn đề là Excel ở Version nào thôi, nếu vậy thì có chút khác biệt, nhưng không lớn lắm.

Chắc ý bạn này hỏi, Excell 2007 thì combox làm sao ấy mà.

Mình đọc cách tạo lits danh sách bằng combo box nhưng ko hiểu. Từ chỗ "bạn lần lượt vẽ cho tôi 4 Option và". Rất mong được bạn handung107 giúp đỡ.

Mình thấy ComboBox thiết kế theo kiểu form... lúc nào cũng hiện sẵn nút DropDown và khi nhận được focus thì tự động xổ danh sách ra. Cho mình hỏi đối với ComboBox thiết kế theo kiểu "Data Validation" có cách nào làm nó tự động sổ danh sách khi nhận được focus không?

Cám ơn các bác.

Tại sao khi sử dụng combo box tôi không thể bảo vệ ô mình muốn. Khóa chỉ 1 ô nhưng lại thành khóa cả bảng tính. Thử máy nào cũng bị. Xin cao thủ chỉ giáo.

Giúp mình cách tạo combobox trên excel đi

Mình mới học Excel và có 1 bài như này.ae chỉ giáo với Tạo các combobox sau: - Combobox chứa loại khách hàng - Combobox chứa kỳ hạn dựa trên dữ liệu sau:

- Tạo combobox trên cột C để chọn loại khách hàng - Tạo combobox trên cột G để chọn loại kỳ hạn

Mình dùng excel 07.k biết dùng combobox trong form control hay activeX control và tạo ra rồi thì viết code như thế nào để đưa dl như yêu cầu trên

Mình mới học Excel và có 1 bài như này.ae chỉ giáo với Tạo các combobox sau: - Combobox chứa loại khách hàng - Combobox chứa kỳ hạn dựa trên dữ liệu sau:

View attachment 96344

- Tạo combobox trên cột C để chọn loại khách hàng - Tạo combobox trên cột G để chọn loại kỳ hạn

Mình dùng excel 07.k biết dùng combobox trong form control hay activeX control và tạo ra rồi thì viết code như thế nào để đưa dl như yêu cầu trên

Bạn đưa file lên bạn sớm có kết quả hơn

Video liên quan

Bài Viết Liên Quan

Chủ Đề