Ứng dụng Chọn ngày dùng trong Excel và VBA (Calendar Form)

Chia sẻ bởi:api_publisher
★★★★★
Quảng cáo

Tóm tắt: Hướng dẫn thực hành Excel, trình bày theo từng bước, có công thức mẫu và lưu ý áp dụng nhanh trong công việc.

Bài viết sẽ đề cập đến cách hoạt động của ứng dụng Date Picker Calendar Form được sử dụng trong VBA Excel (kèm với link tải)  cũng như những điểm khác biệt của nó so với Date Picker Add-in dùng trong môi trường Excel . Cùng bắt đầu ngay thôi nào!

Giới thiệu Công cụ hỗ trợ chọn ngày trong Excel

Trước đây, mình từng có một bài viết giới thiệu về Date Picker Add-in dùng trong môi trường Excel. Tuy nhiên, do tính đóng gói và bảo mật của tác giả nên chúng ta khó vận dụng nó trong môi trường VBA, việc tái sử dụng trong các Userform gặp khó khăn nhất định.Ứng dụng Chọn ngày dùng trong Excel và VBA (Calendar Form)

Vậy bây giờ Date Picker Calendar Form khác gì so với add-in? Nếu bạn tìm hiểu VBA sẽ làm quen với các khác niệm: Class, Userform, Module…

Bạn có thể xem lại bài viết qua đường dẫn sau:

Tải về Calendar Form

Bạn có thể truy cập tại website chính chủ: https://trevoreyre.com/portfolio/excel-datepicker/

Link tải dự phòng: https://bit.ly/calendarfrm

Hướng dẫn cài đặt và sử dụng Calendar Form

calender-form-1

  1. Sau khi tải về, bạn cần giải nén ra thư mục. (Bên trong sẽ có file CalendarForm v1.5.2.xlsm hướng dẫn và ví dụ cho bạn các thông số tương ứng).
  2. Ở file bạn cần sử dụng, bạn nhấn tổ hợp phím ALT + F11 để mở cửa sổ lập trình VBA.
  3. Ở cửa sổ Project Explorer (bạn có thể chọn menu View rồi chọn Project Explorer, phím tắt: CTRL+R)
  4. Bạn click phải Project bạn cần import, sau đó chọn Import File…
  5. Chọn file CalendarForm.frm mà bạn đã giải nén ở bước 1. Vậy là xong.
  6. Sau khi đã hoàn tất bước trên, bạn có thể sử dụng bằng cách khai báo biến, ra gọi nó ra.
Dim dateVariable as Date
dateVariable = CalendarForm.GetDate

Các ví dụ ứng dụng của Calendar Form

Ứng dụng Macro để hiển thị DatePicker trong ô của Excel

Dưới đây là đoạn code ví dụ mà tác giả đã vận dụng, ta thấy ô được gán là H16. Khi bạn cần dùng, chỉ việc gọi macro BasicCalendar lên là được. Lưu ý khi làm việc với nhiều Sheet khác nhau, bạn nên chỉ rõ ô H16 thuộc Sheet nào nhé! Ví dụ: Sheets("Sheet1").Range("H16") = dateVariable, khi ô bạn áp dụng nằm ở Sheet có tên là Sheet1

Sub BasicCalendar()
dateVariable = CalendarForm.GetDate
If dateVariable <> 0 Then Range(“H16”) = dateVariable
End Sub

Ứng dụng gán vào Textbox trong Userform VBA

Dưới đây là một macro mình viết lại để vận dụng cho các textbox. Tương ứng ví dụ khi chọn Check-in, Check-out, ta sẽ gọi lại macro bên dưới mà không phải khai báo lặp đi lặp lại.

calender-form-2

Private Sub checkin_Enter() calDatepicker checkin End Sub

Private Sub checkin_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) calDatepicker checkin KeyAscii = 0 End Sub

Private Sub calDatepicker(ctlTextbox As Control) Dim dteNgay As Date

dteNgay = IIF(ctlTextbox.value, ctlTextbox.value,Now()) dateVariable = CalendarForm.GetDate(SelectedDate:=dteNgay) If dateVariable <> 0 Then ctlTextbox = dateVariable End Sub

Chúc bạn thành công. Đừng quên theo dõi SprinGo cho những bài học bổ ích tiếp theo nhé!

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm