Tạo một thanh sổ xuống trong 1 ô excel

Liên hệ QC
nhưng đã chỉnh thì nó in đậm hết cho tất cả danh sách đó chớ không nào mình muốn in đậm thì in đậm còn dòng nào muons không in đậm thì không in đậm
 
........nhưng tôi vẫn không hiểu phải có thêm bước 8 (bước tạo cái macro) để làm gì
Mình không tạo macro (vì phức tạp quá) nhưng nó vẫn cho ra cái thanh xổ đó
Nếu không có đoạn code (macro) đó, thì cái combobox bạn tạo ra nó sẽ "đứng im" một chỗ cho dù bạn đã chuyển con trỏ xuống dòng dưới trong cùng cột E. Bạn thử xem.

Nhưng cong một cái mữa là sao trong bảng mình gõ có dòng chủ là in đậm để dễ nhìn nhưng trong thanh sổ nó không in đậm
có cách nào khắc phục tình trạng này không
Định dạng Font và Format Font trong combobox không liên quan gì đến Format Font của sheet.

Muốn có chữ in đậm trong Combobox, làm như sau:
- Click chuột phải vào combobox (dĩ nhiên là phải bật chế độ Design Mode lên) chọn Properties.
- Tìm đến thuộc tính Font và tùy chỉnh loại font chữ, in đậm, in nghiêng, cỡ chữ tùy thích.
- Tìm đến thuộc tính ForeColor để tùy chỉnh màu sắc cho chữ trong combobox.

Chúc bạn thành công.
 
KHÔNG PHẢI THẾ CA_DAFI ƠI
Tôi đã chỉnh thử rồi
Ý tôi muốn là trong danh sách đó có cái chủ và các nhánh của nó
Tôi muốn in đậm cái chủ thôi
Ví dụ trong danh sách mục 7000, tôi có 15 cái con là 7001, 7002, 7003, ... 7015
Tôi muốn In đậm cái mẹ là 7000 để dễ nhìn thôi
Nếu chỉnh theo cách bạn tôi đã chỉnh thử nhưng nó in đậm cho cả danh sách luôn không có dòng in đậm và dòng không in đậm
 
Ý tôi muốn là trong danh sách đó có cái chủ và các nhánh của nó
Tôi muốn in đậm cái chủ thôi
Ví dụ trong danh sách mục 7000, tôi có 15 cái con là 7001, 7002, 7003, ... 7015
Tôi muốn In đậm cái mẹ là 7000 để dễ nhìn thôi
Nếu chỉnh theo cách bạn tôi đã chỉnh thử nhưng nó in đậm cho cả danh sách luôn không có dòng in đậm và dòng không in đậm

Bạn không thể làm được việc đó với combobox. Combobox không hỗ trợ định dạng riêng cho các record ngang hàng trong cùng 1 list.
 
gIẢ Sử mình cũng có bảng tính như vậy, nhưng có thêm mục B. Lúc này mình muốn có lệnh tìm kiếm mục B thì ngay lập tức trong bảng sẽ chỉ đến mục B. lúc này mới chọn những mã có mục B ở trước vd: B001.
Ý bạn có phải thế này không
 

File đính kèm

  • Test2.xls
    43.5 KB · Đọc: 149
Tôi nghĩ là mục đích tìm mã số bắt đầu bằng B , nên đánh chữ B sẽ có kết quả là B001,...
Như bạn Ca_dafi góp ý ở bài #7
Nguyên tắt là nếu đánh các chữ bắt đầu , VD: AB nó sẽ có kết quả AB1,AB2,AB... ,...
Nếu bạn muốn có luôn chữ Mục B thì thử cái này ( vẫn đánh 1 chữ B thôi)
 

File đính kèm

  • Test3.xls
    43.5 KB · Đọc: 91
Rất cảm ơn các bạn, tôi đã làm được rồi, hay quá
Bây giờ tôi muốn trong 1 sheet có tới 4 cột có chứa các thanh sổ xuống mà mà tự động chạy từ dòng đầu tiên xuống tới dòng 2656 (dòng cuối) thì đoạn code viết làm sao
(trên chỉ chỉ cho tôi cách viết 1 ô)
Ví vụ tôi có 3 dòng muốn tạo ra các thanh sổ xuống từ A2, B2, C2 đến ô A2656, B2656, C2656
Xin cảm ơn
 
có thể trong đoạn code đó viết 3 đoạn trên 1 cái macro đó được không, mỗi đoạn chỉ thay đổi số liệu ô có thanh sổ xuống thôi
Tôi gửi kèm theo file này mong các bạn chỉ giúp cách viết đoạn code trong sheet 1 có đến 3 thanh sổ xuống
Xin chân thành cảm ơn
 

File đính kèm

  • Phieu Thu ------2009.7z
    159.5 KB · Đọc: 90
Lần chỉnh sửa cuối:
có thể trong đoạn code đó viết 3 đoạn trên 1 cái macro đó được không, mỗi đoạn chỉ thay đổi số liệu ô có thanh sổ xuống thôi
Tôi gửi kèm theo file này mong các bạn chỉ giúp cách viết đoạn code trong sheet 1 có đến 3 thanh sổ xuống
Xin chân thành cảm ơn

Có phải ý của bạn như thế này không? Vẫn xử lý sự kiện Worksheet_SelectionChange, bạn sử dụng cú pháp:
PHP:
If  ............. Then
    .............
Else If ............. Then
    .............
End If

Đây là đoạn code để xử lý 3 combobox của bạn:
[highlight=VB]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, [B4:B65536]) Is Nothing Then
ComboBox2.Visible = False
ComboBox3.Visible = False
With ComboBox1
.Visible = True
.LinkedCell = ActiveCell.Address
.Height = ActiveCell.Height
.Left = ActiveCell.Left
.Width = ActiveCell.Width
.Top = ActiveCell.Top
End With
'---------------------------------------------------------
ElseIf Not Intersect(Target, [D4:D65536]) Is Nothing Then
ComboBox1.Visible = False
ComboBox3.Visible = False
With ComboBox2
.Visible = True
.LinkedCell = ActiveCell.Address
.Height = ActiveCell.Height
.Left = ActiveCell.Left
.Width = ActiveCell.Width
.Top = ActiveCell.Top
End With
'---------------------------------------------------------
ElseIf Not Intersect(Target, [E4:E65536]) Is Nothing Then
ComboBox1.Visible = False
ComboBox2.Visible = False
With ComboBox3
.Visible = True
.LinkedCell = ActiveCell.Address
.Height = ActiveCell.Height
.Left = ActiveCell.Left
.Width = ActiveCell.Width
.Top = ActiveCell.Top
End With
'---------------------------------------------------------
Else
ComboBox1.Visible = False
ComboBox2.Visible = False
ComboBox3.Visible = False
End If
Application.ScreenUpdating = True
End Sub
[/highlight]
 

File đính kèm

  • PThu2009_cadafi.zip
    223 KB · Đọc: 237
Lần chỉnh sửa cuối:
Anh ca_dafi ơi, lại vấn đề tạo combox làm list xổ xuống ấy mà, em thấy anh làm rất hay, nhưng chỉ là trên 1 cột, bây giờ trên nhiều cột thì thế nào, hoangdanh282vn có làm tại đây http://www.giaiphapexcel.com/forum/showthread.php?p=149898#post149898 nhưng sao em áp dụng ở file của em thì không được, toàn báo lỗi như hình sau (hình 1). Anh có code nào thật tổng quát, ví dụ ở sheet1 em làm ở 5 cột, sheet2 cũng thế, mỗi cột có ListFillrange khác nhau thì làm thế nào. Anh giúp em với!
 
Lần chỉnh sửa cuối:
Anh ca_dafi ơi, lại vấn đề tạo combox làm list xổ xuống ấy mà, em thấy anh làm rất hay, nhưng chỉ là trên 1 cột, bây giờ trên nhiều cột thì thế nào, hoangdanh282vn có làm tại đây http://www.giaiphapexcel.com/forum/showthread.php?p=149898#post149898 nhưng sao em áp dụng ở file của em thì không được, toàn báo lỗi như hình sau (hình 1). Anh có code nào thật tổng quát, ví dụ ở sheet1 em làm ở 5 cột, sheet2 cũng thế, mỗi cột có ListFillrange khác nhau thì làm thế nào. Anh giúp em với!

Nếu khi áp dụng, thấy lỗi sao bạn không gửi file lên ngay ở topic đó để mọi người dễ theo dõi và trả lời.
Lỗi của bạn có thể do bạn thêm mới một Combobox và trong code lại không khai báo combobox này nên báo lỗi. bạn gửi file lên nha.
 
Uh, do mình không có thời gian thực tập ngay, tối hôm qua thử nghiệm thì thấy không được, mình gửi file lên hoangdanh282vn giúp mình với nhé! (Mình dân kế toán nên không am hiểu về excel lắm, thấy code hay nên mình copy về ứng dụng công việc thôi chứ mình không biết về VBA)
 
Lần chỉnh sửa cuối:
Các bác ơi, nghĩ cách cứu em với. Em là dân văn chương nên không rành về excel đâu. Sắp tới Đại hội Đảng bộ, em được phân công nhiệm vụ là thư kí, trong đó có việc nhập danh sách đề cử, ứng cử và làm phiếu bầu cử ngay tại Đại hội luôn. Danh sách đề cử, ứng cử có thể rất dài, tầm khoảng trên 20 người mà không lẽ lại ngồi gõ tay tại ĐH, trông nó ko Pro tí nào vả lại có thể gõ không kịp. Vì vậy em muốn tạo trước một danh sách sổ xuống ở hai cột A (úng cử) và B (đề cử) nhưng không biết làm thế nào. Tham khảo mấy bài của các bác em thấy hay và đúng yêu cầu của mình lắm nhưng chịu không biết làm. Các bác bày giúp em với. Đa tạ các bác.
 
Bạn có thể gửi file ds và yêu cầu cụ thể lên.mọi người sẽ giúp bạn
 
Lập báo cáo

Tôi có file dữ liệu sau, tôi muốn tạo các combo box: Vùng miền, Nhóm và Tỉnh. Khi chọn vùng miền nó sẽ cộng theo vùng và ghi sang sheet report: cột Đơn vị ghi tên mỗi nhóm thuộc Vùng vào 1 dòng, các tháng thì sum từ bảng dữ liệu theo nhóm thuộc vùng, tương tự khi chọn Nhóm sẽ ra các tỉnh thuộc nhóm. Khi chọn tỉnh thì nó sẽ ra dữ liệu của tỉnh đó.
Các bạn có thể chỉ sơ qua cho tôi cách lập trình trong VBA để điều khiển các Combo box đó được không? Tôi thì suy nghĩ rằng khi chọn Vùng miền bắc chẳng hạn, nó sẽ select các nhóm và tỉnh thuộc miền bắc ra, tuy nhiên tôi không rõ lệnh select đó trong VBA như thế nào.
Xin cảm ơn rất nhiều!
 

File đính kèm

  • baocao.xlsx
    10 KB · Đọc: 49
cadafi oi. neu lam tren excel 2007 thi lam nhu nao. toi khong lam duoc tren 2007. lam on giup nhe
 
Các bạn cho mình hỏi tại sao mình tao llist bằng combobox như các bạn chỉ mà trong thanh sổ xuống của mình chỉ có vài danh sách thế??? mình làm mãi nó cũng như thế mong các bạn giúp đỡ.
 

File đính kèm

  • vattu.rar
    191.7 KB · Đọc: 38
cadafi oi, toi muon keo dai so luong cua dmuc them thi nhu nao vay
 
Bạn cần tạo 1 Name động để lấy danh sách [Mục-Khoản mục] từ sheet2, cách làm như sau:

1. Từ sheet2, bạn vào Insert/Name/Define:

Pic1-3.jpg


-----------------------------------------------------------------------------------------------------------------------

2
. Đặt 1 Name động (dùng Offset) như hình đính kèm:

Pic2-3.jpg


-----------------------------------------------------------------------------------------------------------------------

3.
Chọn sheet1, click chuột phải lên thanh Menu chọn Control Toolbox:

Pic3-3.jpg


-----------------------------------------------------------------------------------------------------------------------
4. Click chọn chế độ Design Mode trên thanh Control Toolbox, (xem hình)
Pic4-3.jpg


-----------------------------------------------------------------------------------------------------------------------

5. Tạo một combobox trên sheet hiện hành, như sau:

pic6-3.jpg
pic7-1.jpg


-----------------------------------------------------------------------------------------------------------------------

6
. Click chuột phải lên combobox và chọn Properties
Pic5-3.jpg


-----------------------------------------------------------------------------------------------------------------------
7. Tìm đến thuộc tính ListFillRange, gõ tên của Name động vừa đặt vào đây.

Pic6-2.jpg


-----------------------------------------------------------------------------------------------------------------------

8. Viết code điều khiển cho combobox hiện ra đúng vị trí ô mình cần chọn (cột E), bằng cách vào Tool/Macro/Visual basic Editor (hoặc ấn Atl+F11)

pic8-3.jpg


Click vào sheet1 trong cửa sổ VBAProject bên phải, xử lý sự kiện Worksheet SelectionChange bằng đoạn code sau:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [E2:E65536]) Is Nothing Then
Me.cboMuc.Visible = True
Me.cboMuc.LinkedCell = ActiveCell.Address
Me.cboMuc.Height = ActiveCell.Height
Me.cboMuc.Left = ActiveCell.Left
Me.cboMuc.Width = ActiveCell.Width
Me.cboMuc.Top = ActiveCell.Top
Else
Me.cboMuc.Visible = False
Exit Sub
End If
End Sub

pic9.jpg


Đóng cửa sổ VBA lại, tắt chế độ design Mode đi và tự thưởng thức nha.

Chúc bạn thành công!
Bác cadafi ơi, sao em làm như của bác sao ko đc . Nó toàn báo lỗi thôi


Bác nào có thời gian xem qua hộ em với nhé. Em cảm ơn trước nhé
File của em đây, em ko up đc lên diễn đàn em up lên mediafire
http://www.mediafire.com/file/g733h1xu4gk4ksp/thulam.xls
 
Web KT
Back
Top Bottom