Hỏi cách tạo combo box thông minh

Liên hệ QC
Bạn mở Module2 trong file ra, thay đoạn code này vào là được như ý rồi
PHP:
Sub loc()
Dim kq(1 To 10000, 1 To 1), dl(), i, j
With Sheet2
   dl = .Range(.[a2], .[a65536].End(3)).Value
End With
For i = 1 To UBound(dl)
   If dl(i, 1) <> "" Then
      If dl(i, 1) Like "*" & Sheet1.TextBox1.Value & "*" Then
         j = j + 1
         kq(j, 1) = dl(i, 1)
      End If
   End If
Next
If j Then Sheet1.ListBox1.List = kq
End Sub
anh cho em hỏi với, em muốn insert thêm cột ở sheet khách hàng ( dữ liệu cần lấy nằm ở cột B7 trở xuống ) thì phải sửa code lại thế nào?
 
Cái file của bác quá hay.. và em đang rất cần nó. nhưng em không biết phải làm sao, em copy cái code cua bac mà sai k được. bác có thể chỉ tường tận cho em được k vì em đang rất cần nó... hic hic
 
Cái file của bác quá hay.. và em đang rất cần nó. nhưng em không biết phải làm sao, em copy cái code cua bac mà sai k được. bác có thể chỉ tường tận cho em được k vì em đang rất cần nó... hic hic
Lạ thế cơ đấy! Copy code xài không được mà biết cái file quá hay là sao ta?
 
Điền tên CN nghỉ; CN làm thay một cách nhanh chóng

Xin phép chủ nhà cho vào, Cảm ơn
Kính gửi anh chị GPE
Tôi có danh sách tên ở cột B sheet PPCM
công việc của tôi phải điền tên nguoi nghỉ, người làm thay
Nhưng danh sách số CNV rất nhiều nên việc điền tên gặp khó khăn
Rất mong GPE giúp đỡ cho Giải pháp là khi:
Nhắp chuột vào ô cần điền (VD D6:điền tên nguoi nghỉ)---Đồng thời gõ họ và tên---thì hiện lên những tên gần đúng để mình chọn cho nhanh
Trân trọng cảm ơn
Kèm file
 

File đính kèm

  • GPE Điền tên.rar
    22.9 KB · Đọc: 41
Xin phép chủ nhà cho vào, Cảm ơn
Kính gửi anh chị GPE
Tôi có danh sách tên ở cột B sheet PPCM
công việc của tôi phải điền tên nguoi nghỉ, người làm thay
Nhưng danh sách số CNV rất nhiều nên việc điền tên gặp khó khăn
Rất mong GPE giúp đỡ cho Giải pháp là khi:
Nhắp chuột vào ô cần điền (VD D6:điền tên nguoi nghỉ)---Đồng thời gõ họ và tên---thì hiện lên những tên gần đúng để mình chọn cho nhanh
Trân trọng cảm ơn
Kèm file

Đã giúp bạn,
xem trong code của trang sheet-code "Thay treo", hiệu chỉnh vùng nhập cho hợp lý

chú ý khi muốn xoá nội dung thì nhớ chọn ít nhất 2 cells trở lên
 

File đính kèm

  • GPE Điền tên.rar
    31.3 KB · Đọc: 163
Đã giúp bạn,
xem trong code của trang sheet-code "Thay treo", hiệu chỉnh vùng nhập cho hợp lý

chú ý khi muốn xoá nội dung thì nhớ chọn ít nhất 2 cells trở lên

Lần sau TamCam nên chú ý đưa file dữ liệu phải hợp lý gần thực tế nhất, không phải kiểu như
Nguyễn Viết 1
Nguyễn Viết 2
Nguyễn Viết 3
..........
tất cả

như thế thể hiện sự ẩu thả khi nhờ giúp
 
Đã giúp bạn,
xem trong code của trang sheet-code "Thay treo", hiệu chỉnh vùng nhập cho hợp lý

chú ý khi muốn xoá nội dung thì nhớ chọn ít nhất 2 cells trở lên
Thật là nhanh... nhanh.. & hay ..hay...
Chúc Vodoi2x sức khỏe, hạnh phúc
---------
Lần sau TamCam nên chú ý đưa file dữ liệu phải hợp lý gần thực tế nhất, không phải kiểu như
Nguyễn Viết 1
Nguyễn Viết 2
Nguyễn Viết 3
..........
tất cả

như thế thể hiện sự ẩu thả khi nhờ giúp
-------

Tamcam nhớ rui, Tamcam rút kinh nghiệm lần sau.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Muốn thì có thôi mà. Xem file coi đúng chưa.

http://www.giaiphapexcel.com/forum/...-tạo-combo-box-thông-minh&p=456482#post456482

Mã:
Sub ScrList()
Dim dl(), i As Long, c As Byte
With Sheets("Danhmuc_NVL")
   dl = .[D7:D39].Value
End With
Sheets("BM14.10").ListBox1.Clear
[COLOR=#ff0000][B]c = ActiveCell.Column - 2[/B][/COLOR]
For i = 1 To UBound(dl)
   If dl(i, c) <> "" Then
      If TV(dl(i, c)) Like TV("*" & Sheets("BM14.10").TextBox1.Value & "*") Then
         Sheets("BM14.10").ListBox1.AddItem dl(i, c)
      End If
   End If
Next
End Sub

@Anh Hải!
Em chưa hiểu tại sao lại phải đưa cái dòng lệnh c = ActiveCell.Column - 2 vào, phiền anh giải thích rõ hơn với ạ.
Cảm ơn anh.
 
Bạn vào Excel Options->Advanced. Sau đó bạn tích vào hàng "Enable AutoComplete for cell values".
 
Tìm nhanh tên và mã số tương ứng từ danh sách cho sẵn

Chào các bậc tiền bối ạ.
Em có một danh sách dài cần tìm ra tên chính xác từ đó tìm mã tương ứng
Em gửi kèm file nhờ các bác giúp đỡ.
 

File đính kèm

  • Danh sach.xls
    800.5 KB · Đọc: 30
Chào các bậc tiền bối ạ.
Em có một danh sách dài cần tìm ra tên chính xác từ đó tìm mã tương ứng
Em gửi kèm file nhờ các bác giúp đỡ.

- bạn tải file đính kèm, kiểm tra kết quả xem có đúng ko nhé !

- nhập từ khóa tìm kiếm vào ô G1 --> click nút GPE_Find

GPE_find.jpg

'--------
hic, bài này đang hỏi về lập trình tự nhiên lại post vào "Box này" **~**
 

File đính kèm

  • Danh sach (tim nhieu tu khoa xen ke).rar
    170.2 KB · Đọc: 157
Lần chỉnh sửa cuối:
Cảm ơn bác phucbugis đã giúp đỡ nhưng cách này tính ra cũng ko nhanh hơn lọc custom là mấy vì phải làm đến 3 thao tác (em phải tìm cái này nhiều lần trong ngày nên càng ít thao tác càng ok). Muốn post nhờ vào chỗ này vì thấy các bác tạo được cái box tìm kiếm nhanh như kiểu danh bạ điện thoại ấy.-\\/. "Trình độ hạn chế chạy lung tung đi nhờ vả nếu sai cửa cũng mong các bác hết sức thông cảm".
 
Cảm ơn bác phucbugis đã giúp đỡ nhưng cách này tính ra cũng ko nhanh hơn lọc custom là mấy vì phải làm đến 3 thao tác (em phải tìm cái này nhiều lần trong ngày nên càng ít thao tác càng ok). Muốn post nhờ vào chỗ này vì thấy các bác tạo được cái box tìm kiếm nhanh như kiểu danh bạ điện thoại ấy.-\\/. "Trình độ hạn chế chạy lung tung đi nhờ vả nếu sai cửa cũng mong các bác hết sức thông cảm".

Muốn tự động hơn --> bạn thêm 2 bước

1. thêm sự kiện bên dưới --> bỏ qua thao tác click

Mã:
Private Sub [B]Worksheet_Change[/B](ByVal Target As Range)
    If Target.Address = "$G$1" Then
    If Target <> "" Then
        Call FindNext
    End If
    End If
End Sub

2. tại sub Sub FindNext()
bạn off 2 dòng bên dưới nữa là OK hen ! :-=
'Answer = MsgBox ...
'If Answer = vbNo Then Exit Sub
 
Bác đánh giá cao em quá, em dò dẫm vào Sub FindNext xóa được 2 dòng nhưng vẫn chưa ưng ý.
Thôi bác down về chỉnh sửa nốt giúp em cho trót ntn:
- Bỏ qua thao tác click
- Bỏ qua thao tác xóa vùng dữ liệu
- Bỏ qua cả hộp thoại thông báo xóa vùng dữ liệu trước khi tìm kiếm
Em ngàn lần cảm ơn ạ ;;;;;;;;;;;
 
Bác đánh giá cao em quá, em dò dẫm vào Sub FindNext xóa được 2 dòng nhưng vẫn chưa ưng ý.
Thôi bác down về chỉnh sửa nốt giúp em cho trót ntn:
- Bỏ qua thao tác click
- Bỏ qua thao tác xóa vùng dữ liệu
- Bỏ qua cả hộp thoại thông báo xóa vùng dữ liệu trước khi tìm kiếm
Em ngàn lần cảm ơn ạ ;;;;;;;;;;;

bạn tải tiếp file đính kèm nhé ! (đã xử lý hết yêu cầu trên + thêm "1 tí code")

'----------------
p/s # 118
Function MyCountif --> mình đã sửa điều kiện Thoat
Mã:
Thoat:
    If i = 0 And tukhoa <> "" Then
        MyCountif = wsFunc.CountIf(tendonvi, "*" & tukhoa & "*")
    End If

Sub FindNext()

- thêm điều kiện Unhide Row: code cũ chỉ có If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData ---> chưa chặt chẽ
(phải kiểm tra các Row đang bị hide SpecialCells(xlCellTypeVisible))

- thêm GoTo Next_

'-----------
file mới Split_Function: ko dùng phương thức FindNext ----> gắn công thức trực tiếp
 

File đính kèm

  • Danh sach (tim nhieu tu khoa xen ke) 1.rar
    174.1 KB · Đọc: 146
  • Danh sach (tim nhieu tu khoa xen ke) Split_Function.rar
    169.2 KB · Đọc: 139
Lần chỉnh sửa cuối:
Cho minh hoi chut!
Minh copy cac code nay ap dung cho bang tinh khac, khi chay no bao loi : Sub Loc() " mau vang"
Minh tim ma ko biet loi dau, cac code khac chay binh thuong.

Minh cam on nhieu!
 
Cho minh hoi chut! Minh copy code nay va cac code khac sang 01 bang tinh khac, khi chay no bao loi: Sub Loc() la sao ban?
Duong dan gium minh nhe!
 
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2
Back
Top Bottom