• Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
Chủ Nhật, Tháng Ba 26, 2023
  • Login
No Result
View All Result
NEWSLETTER
Học gia sư kế toán
  • Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
  • Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
No Result
View All Result
Học Gia sư Kế toán
No Result
View All Result

Hướng dẫn cách tạo danh sách phụ thuộc nhau trong Excel bằng VBA

by My Lê
22/02/2023
in VBA
0
Hướng dẫn cách tạo danh sách phụ thuộc nhau trong Excel bằng VBA

Originally posted on 12/02/2022 @ 21:40

Hướng dẫn cách tạo danh sách phụ thuộc nhau trong Excel bằng VBA

  • Chuyên mục:
  • Excel nâng cao∙Excel VBA

Bạn sẽ làm thế nào khi muốn trình bày các đối tượng theo 1 danh sách trong Excel? Có rất nhiều cách để làm điều này, một trong những cách thường gặp nhất là sử dụng chức năng Data Validation/ List. Nhưng với yêu cầu nâng cao hơn là tạo danh sách phụ thuộc lẫn nhau thì thế nào? Hãy cùng Học Gia Sư Kế Toán tìm hiểu cách tạo danh sách phụ thuộc nhau trong Excel bằng VBA nhé.

Để làm rõ nội dung này, chúng ta cùng tham khảo ví dụ sau:

de bai tao danh sach phu thuoc tinh huyen

Trong hình trên chúng ta có 2 danh sách: Danh sách tỉnh/ thành phố của Việt Nam. Tương ứng với mỗi tỉnh / thành phố là các Quận / huyện. Yêu cầu là chúng ta cần tạo ra danh sách chọn Tỉnh / TP vào vị trí ô F1, trong danh sách này tên các tỉnh/ TP chỉ xuất hiện 1 lần. Tại ô F2 tạo danh sách chọn tên các Quận / Huyện phụ thuộc theo tỉnh / TP được chọn tại ô F1.

Các bạn có thể tải về file mẫu tại địa chỉ:

Sau đây chúng ta sẽ lần lượt đi giải quyết cụ thể từng trường hợp.

Tạo danh sách chọn giá trị không trùng

Để có thể tạo ra 1 danh sách chọn các tỉnh/TP không trùng nhau tại ô F1, chúng ta cần thực hiện các công việc sau:


VBA101 92019 nho

EX101 92019 nho
  • Lọc các nội dung không trùng (chỉ xuất hiện 1 lần) tại cột A. Đưa kết quả lọc được ra cột C
  • Tạo danh sách chọn tại ô F1 bằng Data Validation

Về việc lọc giá trị không trùng từ 1 danh sách, chúng ta có rất nhiều cách làm: Sử dụng Advanced Filter, Sử dụng Remove Duplicates

Tham khảo: Tự động lọc danh sách không trùng với Advanced Filter VBA cực kỳ đơn giản

Trong trường hợp này, chúng ta sẽ sử dụng Advanced Filter trong VBA để lọc danh sách không trùng với cột A. Nếu bạn chưa rõ cách làm thì có thể tham khảo ở link bài viết phía trên. Cách thực hiện như sau:

code loc danh sach ko trung advanced filter

Tại cột A: áp dụng Advanced Filter từ A1 tới A1000 (giả định tới 1000 dòng dữ liệu) trong sheet1 (là sheet đang làm việc)

  • Action: Thực hiện hành động copy kết quả ra vị trí khác
  • CopyToRange: Vị trí lấy kết quả là ô C1 trong sheet1 (là sheet đang làm việc)
  • Unique: để lấy các giá trị không trùng, chỉ xuất hiện 1 lần thì chọn là True

Khi chạy câu lệnh này, chúng ta thu được kết quả danh sách Tỉnh/TP như ở cột C

Để tạo danh sách chọn cho ô F1, chúng ta sử dụng Data Validation như sau:

tao danh sach chon theo tinh

Tại ô F1 chọn thẻ Data => Chọn chức năng Data Validation. Trong cửa sổ Data Validation thực hiện tiếp các nội dung:

  • Allow: chọn List để tạo danh sách chọn
  • Source: Nguồn cho danh sách. Nguồn này sẽ căn cứ vào nội dung ở cột C. Do đó sử dụng hàm OFFSET, bắt đầu từ vị trí C2, kết thúc là vị trí tính từ C2 tới tổng số đối tượng trong vùng C2:C1000. Trong trường hợp này ta có:

COUNTA(C2:C1000) = 63 tương ứng với 63 tỉnh thành phố

OFFSET(C2,0,0,63) = vùng C2:C64

Đây là cách tạo 1 danh sách động, trong đó độ rộng của danh sách có thể thay đổi tùy theo số đối tượng có trong danh sách đó.

Tạo danh sách chọn phụ thuộc

Sau khi đã hoàn thành việc tạo danh sách chọn cho Tỉnh/TP tại ô F1, chúng ta có thể chọn 1 tỉnh/TP bất kỳ.

Để có thể có danh sách phụ thuộc giá trị được chọn tại F1, chúng ta có thể hình dung các công việc phải làm là:

  • Tại cột D sẽ tạo ra danh sách các Quận/ Huyện phụ thuộc theo giá trị chọn ở ô F1.
  • Tạo danh sách chọn tại ô F2 theo danh sách trong cột D

Bước 1: Tạo ra danh sách các Quận/ Huyện phụ thuộc theo giá trị chọn ở ô F1

Bởi mỗi khi chọn giá trị tại ô F1 thì danh sách có thể thay đổi, do đó việc đầu tiên cần làm là làm mới lại nội dung trong cột D, xóa các nội dung trước đó trong danh sách.

Tiếp đó thực hiện vòng lặp để xét từng giá trị tại cột A với giá trị tại ô F1. Nếu vị trí nào giống nhau thì sẽ lấy giá trị tương ứng ở cột B lấy sang cột D. Kết quả đưa sang cột D sẽ theo dòng cuối có dữ liệu trong cột này.

Nội dung cụ thể của câu lệnh VBA như sau:

Do mỗi lần thay đổi giá trị tại ô F1 sẽ chạy lại câu lệnh trên, nên chúng ta sẽ gán câu lệnh này trong sự kiện thay đổi giá trị tại ô F1 của worksheet như sau:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range(“F1”), Range(Target.Address)) Is Nothing Then

Call Ma_Huyen_GetData

End If

End Sub

Xem thêm: Tìm hiểu về ý nghĩa và cách dùng các sự kiện trong VBA Excel

Kết quả thu được như sau:

VBA loc danh sach phu thuoc

Bước 2: Tạo danh sách chọn tại ô F2

Tại ô F2 chọn thẻ Data => Chọn chức năng Data Validation. Trong cửa sổ Data Validation thực hiện tiếp các nội dung:

  • Allow: chọn List để tạo danh sách chọn
  • Source: Nguồn cho danh sách. Nguồn này sẽ căn cứ vào nội dung ở cột D. Do đó sử dụng hàm OFFSET, bắt đầu từ vị trí D2, kết thúc là vị trí tính từ D2 tới tổng số đối tượng trong vùng D2:D1000. Trong trường hợp này ta có:

COUNTA(D2:D1000) = tổng số quận/huyện lấy được từ câu lệnh VBA ở trên

Kết quả cuối cùng như sau:

ket qua tao danh sach phu thuoc

Ngoài ra các bạn có thể tham khảo thêm một số cách khác như sau:

Cách tạo Combobox có danh sách phụ thuộc nhau

Tạo một danh sách tùy chọn trong Excel

Cách tạo danh sách tỉnh huyện xã phụ thuộc nhau

Bạn có gặp khó khăn khi áp dụng VBA vào trong công việc trên Excel không? VBA thực sự là một kiến thức nâng cao trong Excel, khó học, nhưng nó lại giúp ích rất nhiều trong công việc. Hãy tham gia ngay khóa học VBA101 – Lập trình VBA cho người mới bắt đầu cùng Học Gia Sư Kế Toán. Khóa học này sẽ giúp bạn tiếp cận các kiến thức về VBA trong Excel một cách dễ hiểu nhất, có hệ thống giúp bạn nắm bắt kiến thức này một cách nhanh nhất. Hiện nay hệ thống đang có nhiều ưu đãi rất hấp dẫn khi bạn đăng ký tham gia khóa học này. Chi tiết xem tại:


Tác giả: duongquan211287

·
·
·
Bài viết khác của cùng tác giả

  • Tất cả
  • Python
  • SQL
  • VBA

3.000.000VND 1.800.000VND
PYXL101
Xem chi tiết

3.000.000VND 1.600.000VND
SQL100
Xem chi tiết

499.000VND 199.000VND
PY100
Xem chi tiết

Bài viết liên quan

Cách tạo menu chuyển động đẹp trong Excel sử dụng VBA

Cách lấy danh sách ngẫu nhiên không trùng lặp trong Excel

Cách lọc lấy số trong ô lẫn cả số và chữ hoặc ngược lại

Cách dùng hàm FILTERXML để xử lý tách và sắp xếp dữ liệu

Cách xóa nội dung trùng lặp trong một ô của Excel

Tải về miễn phí File Excel quản lý kho bằng excel VBA


Khóa học liên quan

Khóa học Tự động hóa Excel với lập trình VBA cho người mới bắt đầu
Chi tiết khóa học

Khóa học Lập trình VBA nâng cao trong Excel
Chi tiết khóa học

  

© Học Gia Sư Kế Toán. All rights reserved.

My Lê

My Lê

My Lê tên thật là Mê Ly đã có 10 năm kinh nghiệm trong ngành kế toán.

Next Post
Hướng dẫn về tài khoản 635 – Chi phí tài chính theo thông tư 200

Hướng dẫn về tài khoản 635 – Chi phí tài chính theo thông tư 200

Recommended

Hướng dẫn làm sổ kế toán chi tiết vật tư, sản phẩm, hàng hoá trên Excel

Hướng dẫn làm sổ kế toán chi tiết vật tư, sản phẩm, hàng hoá trên Excel

1 tháng ago

Hạch toán tài khoản 356 – Quỹ phát triển khoa học và công nghệ theo hướng dẫn của Thông tư 200

4 tuần ago

Tin mới nhất

    Fanpage

    • Liên hệ
    • Giới thiệu
    • Đặt quảng cáo
    Liên hệ chúng tôi qua email : hocgiasuketoan.com@gmail.com

    © 2022 Hocgiasuketoan Premium magazine by Hocgiasuketoan

    No Result
    View All Result
    • Trang chủ
    • Giới thiệu
      • Học gia sư kế toán tại Hà Nội
    • Excel
    • Kế toán
    • Kinh nghỉệm
    • DAX
    • VBA
    • Văn bản
    • Access
    • Liên hệ
      • Chính sách bảo mật

    © 2022 Hocgiasuketoan Premium magazine by Hocgiasuketoan

    Welcome Back!

    Login to your account below

    Forgotten Password?

    Retrieve your password

    Please enter your username or email address to reset your password.

    Log In