Tặng tiện ích CALENDAR tuyệt đẹp (phần 3 - Phiên bản 6) (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,720
Giới tính
Nam
Với nhiều góp ý và vì thế có nhiều cải tiến phức tạp, tôi đã cho ra lò phiên bản 6.

Với cải tiến lần này:

Gọi CALENDAR trên sheet, chỉ cần bấm: CTRL+Q

Nút Close thay đổi Icon tinh tế hơn, không chiếm dụng diện tích:

attachment.php


Tránh tình trạng lỗi màu sắc trùng với ngày hiện hành trong tháng sau:

(So sánh với phiên bản 5 và phiên bản 6)

attachment.php
attachment.php


Đặc biệt, cải tiến lần này có các option cho hiện Calendar với Modal hoặc Modaless.

Mặc định khi gọi Calendar từ Menu (right click) hoặc phím tắt Ctrl+Q thì nó trong trạng thái Modaless, với ô được chọn ta có thể click vào và chỉnh sửa gì cũng được trong khi Calendar vẫn hiện hành, nhưng khi ta Click ra khỏi vùng/ô được chọn thì Calendar sẽ tự động THOÁT mà không phải nhập gì cả (thay vì bấm nút CLOSE hoặc phím ESC).

Các bạn đọc kỹ cách lập trình để nhúng Addins này vào trong chương trình của các bạn trong file HuongDan mà tôi có đính kèm.
 

File đính kèm

  • HuongDan.xls
    HuongDan.xls
    56 KB · Đọc: 77
  • CalendarV6.jpg
    CalendarV6.jpg
    59.5 KB · Đọc: 137
  • CalendarV6_test.jpg
    CalendarV6_test.jpg
    61.6 KB · Đọc: 137
  • CalendarV5.jpg
    CalendarV5.jpg
    67.3 KB · Đọc: 139
  • CalendarShow_V.6.0.xla
    CalendarShow_V.6.0.xla
    268 KB · Đọc: 87
Lần chỉnh sửa cuối:
Riêng với UserForm khi gọi Calendar, tôi mặc định cho Calendar ở trong dạng Modal (ShowModal=True), bởi nếu ở dạng Modaless, nếu UserForm (để gọi Calendar) cũng ở dạng Modaless thì không xảy ra lỗi, còn ở trạng thái Modal thì phát sinh ra lỗi. Cái này mình không thể can thiệp vào cái UserForm của người thiết kế được vì họ thiết lập như thế nào là quyền của họ, ta can thiệp vào lại hỏng việc của họ thì sao?
 
Upvote 0
mình biết là sẽ như vậy mà . hi hi

e4a61fc354a6e8c06f7efb1b1901f9a8.png
doveandrose đổi thử thủ tục trên thành thủ tục này xem còn lỗi nữa không nhé, nếu OK mình cập nhật lại File:

Mã:
Private Sub UserForm_Activate()
    Call FormActivate
    If pubCellSelect Then
[COLOR=#0000ff]        On Error Resume Next[/COLOR]
[COLOR=#0000ff]        AppActivate Application[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Name[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Caption[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
       pubActObjOrRng.Select
        pubCellSelect = False
    End If
End Sub
 
Upvote 0
doveandrose đổi thử thủ tục trên thành thủ tục này xem còn lỗi nữa không nhé, nếu OK mình cập nhật lại File:

Mã:
Private Sub UserForm_Activate()
    Call FormActivate
    If pubCellSelect Then
[COLOR=#0000ff]        On Error Resume Next[/COLOR]
[COLOR=#0000ff]        AppActivate Application[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Name[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Caption[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
       pubActObjOrRng.Select
        pubCellSelect = False
    End If
End Sub

chưa kịp nói gì thì anh sửa mất tiêu rồi . anh nhiệt tình quá hi hi
 
Upvote 0
chưa kịp nói gì thì anh sửa mất tiêu rồi . anh nhiệt tình quá hi hi
Trường hợp này chỉ áp dụng với dạng Target cho cột ngày tháng, hiện calendar lên khi select cell ta có thể Enter hay dùng phím mũi tên để di chuyển từ ô này qua ô khác.
 
Upvote 0
Bạn ơi mình vẫn bị lỗi số 5 giống vậy. Nhờ Bạn chỉnh lại dùm luôn nhé.
Thanks./.
 
Upvote 0
Tác giả sáng tạo quá! %#^#$
 
Upvote 0
Mình tải lúc lúc 14h hôm nay, nó báo lỗi giống như các bạn đã báo, nhưng vẫn chạy bình thường.
Thanks./.
 
Upvote 0
Mình tải lúc lúc 14h hôm nay, nó báo lỗi giống như các bạn đã báo, nhưng vẫn chạy bình thường.
Thanks./.

Từ bài số #5 tôi đã cập nhật bản vá lỗi đó, kèm thêm On error resume next thì khó mà báo lỗi, thật sự tôi không biết là ở máy bạn là lỗi gì.

Nếu các bạn tải file về, phát hiện ra lỗi gì xin vui lòng chụp lại màn hình báo lỗi post lên đây để xử lý nhé! Cám ơn rất nhiều!
 
Upvote 0
Từ bài số #5 tôi đã cập nhật bản vá lỗi đó, kèm thêm On error resume next thì khó mà báo lỗi, thật sự tôi không biết là ở máy bạn là lỗi gì.

Nếu các bạn tải file về, phát hiện ra lỗi gì xin vui lòng chụp lại màn hình báo lỗi post lên đây để xử lý nhé! Cám ơn rất nhiều!
Anh xem giúp em, máy em bị lỗi này, em đang sử dụng Office 2016
Capture.PNG
 
Upvote 0
Anh xem giúp em, máy em bị lỗi này, em đang sử dụng Office 2016
View attachment 148889
Cho hỏi bạn mới tải hay tải lâu chưa? Cái file tôi đã sửa lại lỗi này đó:

Mã:
Private Sub UserForm_Activate()
    Call FormActivate
[COLOR=#0000ff]    If pubCellSelect Then[/COLOR]
[COLOR=#0000ff]        On Error Resume Next[/COLOR]
[COLOR=#0000ff]        AppActivate Application[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Name[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Caption[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]       pubActObjOrRng.Select[/COLOR]
[COLOR=#0000ff]        pubCellSelect = False[/COLOR]
[COLOR=#0000ff]    End If[/COLOR]
End Sub

Bạn kiểm tra lại xem code trong form có các dòng xanh đó hay không? Nếu chưa có bạn chép vô thử, còn đã có thì bạn xóa nó đi là hết lỗi.

Thật sự tôi cũng không biết phải sử dụng thằng em AppActivate sao cho chính xác từng máy, từng phiên bản của Excel nữa.
 
Upvote 0
Cho hỏi bạn mới tải hay tải lâu chưa? Cái file tôi đã sửa lại lỗi này đó:

Mã:
Private Sub UserForm_Activate()
    Call FormActivate
[COLOR=#0000ff]    If pubCellSelect Then[/COLOR]
[COLOR=#0000ff]        On Error Resume Next[/COLOR]
[COLOR=#0000ff]        AppActivate Application[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Name[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]        If Err.Number Then[/COLOR]
[COLOR=#0000ff]            Err.Clear[/COLOR]
[COLOR=#0000ff]            AppActivate Application.Caption[/COLOR]
[COLOR=#0000ff]        End If[/COLOR]
[COLOR=#0000ff]       pubActObjOrRng.Select[/COLOR]
[COLOR=#0000ff]        pubCellSelect = False[/COLOR]
[COLOR=#0000ff]    End If[/COLOR]
End Sub

Bạn kiểm tra lại xem code trong form có các dòng xanh đó hay không? Nếu chưa có bạn chép vô thử, còn đã có thì bạn xóa nó đi là hết lỗi.

Thật sự tôi cũng không biết phải sử dụng thằng em AppActivate sao cho chính xác từng máy, từng phiên bản của Excel nữa.
Em mới vừa tải à anh.
Mà em sử dung Office 2016 + Win 10
Mà Mk VBA là gì vậy anh
P/s: Em bấm End và điền mật khẩu VBA tên anh thi vô được trong Form rồi.
Khi em thoát ra ngoài Excel thì menu chuột phải không có hình cái mặt cười, nhưng bấm Ctr-Q thì hiện ra lịch.
 
Lần chỉnh sửa cuối:
Upvote 0
P/s: Em bấm End và điền mật khẩu VBA tên anh thi vô được trong Form rồi.
Khi em thoát ra ngoài Excel thì menu chuột phải không có hình cái mặt cười, nhưng bấm Ctr-Q thì hiện ra lịch.
Sau khi sửa code, bạn nên save lại và thoát Excel, vì nó đang ở trạng thái lỗi nên không chạy hết chương trình, bạn nên thoát hết Excel rồi mở bất kỳ file nào lên thì cái addin đó nó sẽ hoạt động nếu bạn đã cài đặt.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom