Làm cuốn lịch chọn nhiều năm (Date picker, Calendar)

Liên hệ QC

hoangtuaotrang_hp_vn

Thành viên tiêu biểu
Tham gia
17/5/09
Bài viết
796
Được thích
669
Các anh chị cho em hỏi, VBA có làm được cuốn lịch chọn tháng/năm như video dưới không ạ. Nếu có thì anh/chị chia sẻ file cho em xin với

Tức là khi chọn vào tiêu đề ngày tháng => tháng => chọn năm => Bảng chọn các khoảng năm =>....

Mục đích rất tiện nếu phải xem nhiều năm cách xa nhau thì rút ngắn thời gian click chuột ạ

 
Lần chỉnh sửa cuối:
Các anh chị cho em hỏi, VBA có làm được cuốn lịch chọn tháng/năm như video dưới không ạ. Nếu có thì anh/chị chia sẻ file cho em xin với

Tức là khi chọn vào tiêu đề ngày tháng => tháng => chọn năm => Bảng chọn các khoảng năm =>....

Mục đích rất tiện nếu phải xem nhiều năm cách xa nhau thì rút ngắn thời gian click chuột ạ

nếu bạn vẫn còn quan tâm, thì thử dùng file này xem sao. Hy vọng đáp ứng được phần nào.
File này của một anh nào đó tôi không nhớ tác giả. Nhân đây cũng xin mạn pháp tác giả chia sẻ file này. (có sửa một chút: số năm hiển thị và màu hiển thị)
Tôi tải về nghiên cứu để sửa lại (hiển thị ngày tháng hiện tại sang thành màu khác) mà làm mãi không thành công.
Nếu bạn có cao kiến gì hơn, xin hãy chia sẻ.
 

File đính kèm

  • Date_picker (1).xlsm
    23.8 KB · Đọc: 31
Upvote 0
(hiển thị ngày tháng hiện tại sang thành màu khác
1640229140802.png

PHP:
Sub set_color()
Dim i As Integer
For i = 1 To 42
    If Me.Controls("cmb_" & i).Caption = "" Then
        Me.Controls("cmb_" & i).Enabled = False
        Me.Controls("cmb_" & i).BackColor = RGB(256, 256, 256)
    Else
        Me.Controls("cmb_" & i).Enabled = True
        If CLng(Me.Controls("cmb_" & i).Caption) = Day(Date) And CLng(cbb_Thang) = Month(Date) _
        And CLng(cbb_Nam) = Year(Date) Then
            Me.Controls("cmb_" & i).BackColor = RGB(255, 50, 0)
        Else
            Me.Controls("cmb_" & i).BackColor = RGB(200, 200, 200)
        End If
    End If
Next

End Sub
Có 1 lỗi: nếu ngày hệ thống là dd/mm thì khi chọn ngày trên calendar nhỏ hơn 13, ngày bị biến thành tháng
 
Lần chỉnh sửa cuối:
Upvote 0
Chỉnh lại một chút trong sub Nutchonngay:
Mã:
Sub Nutchonngay(btn As MSForms.CommandButton)
    If btn.Caption <> "" Then
        With Sheet1.Range("A1")
            .Value = DateSerial(Me.cbb_Nam.Value, Me.cbb_Thang, btn.Caption)
            .NumberFormat = "dd/mm/yyyy"
            Unload Me
        End With
    End If
End Sub
 
Upvote 0
View attachment 270626

PHP:
Sub set_color()
Dim i As Integer
For i = 1 To 42
    If Me.Controls("cmb_" & i).Caption = "" Then
        Me.Controls("cmb_" & i).Enabled = False
        Me.Controls("cmb_" & i).BackColor = RGB(256, 256, 256)
    Else
        Me.Controls("cmb_" & i).Enabled = True
        If CLng(Me.Controls("cmb_" & i).Caption) = Day(Date) And CLng(cbb_Thang) = Month(Date) _
        And CLng(cbb_Nam) = Year(Date) Then
            Me.Controls("cmb_" & i).BackColor = RGB(255, 50, 0)
        Else
            Me.Controls("cmb_" & i).BackColor = RGB(200, 200, 200)
        End If
    End If
Next

End Sub
Có 1 lỗi: nếu ngày hệ thống là dd/mm thì khi chọn ngày trên calendar nhỏ hơn 13, ngày bị biến thành tháng
Cảm ơn Anh rất nhiều. Tôi mày mò mà mãi không được.
Chỉnh lại một chút trong sub Nutchonngay:
Mã:
Sub Nutchonngay(btn As MSForms.CommandButton)
    If btn.Caption <> "" Then
        With Sheet1.Range("A1")
            .Value = DateSerial(Me.cbb_Nam.Value, Me.cbb_Thang, btn.Caption)
            .NumberFormat = "dd/mm/yyyy"
            Unload Me
        End With
    End If
End Sub
Cảm ơn anh nhé.
Trân trọng cảm ơn 2 anh đã xem bài và chỉnh lại code. Tôi đã có được file theo đúng ý mình.
 
Upvote 0
Web KT
Back
Top Bottom