Tạo Form chỉnh sửa giờ phút (1 người xem)

Liên hệ QC

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

ThaiDieuAnh

Thành viên hoạt động
Tham gia
8/8/16
Bài viết
139
Được thích
24
Nghề nghiệp
Xây dựng
Em có bảng excel dữ liệu thời gian theo định dạng "24h00" rất nhiều (số phút luôn là số 0, 5, 10 ... 55). Để giảm thời gian khi chỉnh sửa lại giờ em có tạo form để chỉnh sửa nhanh. Tuy nhiên nó chỉ đúng được với trường hợp khi dữ liệu tại cell là có số phút là 00. Còn các trường hợp 5, 10,.... 55 thì chưa đúng. Mong các bác giúp em với ạ, em xin cảm ơn
 

File đính kèm

Có thấy dòng code nào trong UserForm đâu?
- Giới hạn cận trên/ dưới cho spin1= 1-12, step =1
- Giới hạn cận trên/ dưới cho spin2=0-60, setp 5
- Khi click phải chuột vào cell >> hiện form >> lấy giá trị của cell gán vào 2 textbox.
- Click vào spin tương ứng thì tăng/ giảm giá trị theo ý muốn và hiển thị ở textbox.
- Nút chấp nhận thì ghi giá trị 2 textbox trở lại cell lúc trước click phải chuột.
 
Upvote 0
Em có bảng excel dữ liệu thời gian theo định dạng "24h00" rất nhiều (số phút luôn là số 0, 5, 10 ... 55). Để giảm thời gian khi chỉnh sửa lại giờ em có tạo form để chỉnh sửa nhanh. Tuy nhiên nó chỉ đúng được với trường hợp khi dữ liệu tại cell là có số phút là 00. Còn các trường hợp 5, 10,.... 55 thì chưa đúng. Mong các bác giúp em với ạ, em xin cảm ơn
Bạn cho code này vào Form, sau đó bạn chế cho nút còn lại và thêm điều kiện ràng buộc giờ.
Mã:
Private Sub SpinButton2_Change()
If SpinButton2.Value = 60 Then
    SpinButton2.Value = 0
    TextBox2.Text = "00"
    TextBox1.Text = Val(TextBox1.Text) + 1
Else
    TextBox2.Text = SpinButton2.Value
End If
End Sub

Private Sub UserForm_Activate()
SpinButton2.Value = Val(TextBox2.Text)
End Sub
 
Upvote 0
Bạn cho code này vào Form, sau đó bạn chế cho nút còn lại và thêm điều kiện ràng buộc giờ.
Mã:
Private Sub SpinButton2_Change()
If SpinButton2.Value = 60 Then
    SpinButton2.Value = 0
    TextBox2.Text = "00"
    TextBox1.Text = Val(TextBox1.Text) + 1
Else
    TextBox2.Text = SpinButton2.Value
End If
End Sub

Private Sub UserForm_Activate()
SpinButton2.Value = Val(TextBox2.Text)
End Sub
Em đã chế cho nút còn lại và thêm điều kiện ràng buộc giờ nhưng vẫn bị dính vài lỗi: Khi lùi thời gian phải đến vòng thứ 2 giờ mới lùi 1 hoặc Khi tăng thời gian thì phút đến 60 => giờ tăng lên 1 (cái này ok) nhưng lùi lại thì cũng đến vòng thứ 2 giờ mới lùi 1. Còn lại các thứ khác đều Ok, mong anh và các anh chị khác sửa dùm. Em xin cảm ơn
 

File đính kèm

Upvote 0
Em đã chế cho nút còn lại và thêm điều kiện ràng buộc giờ nhưng vẫn bị dính vài lỗi: Khi lùi thời gian phải đến vòng thứ 2 giờ mới lùi 1 hoặc Khi tăng thời gian thì phút đến 60 => giờ tăng lên 1 (cái này ok) nhưng lùi lại thì cũng đến vòng thứ 2 giờ mới lùi 1. Còn lại các thứ khác đều Ok, mong anh và các anh chị khác sửa dùm. Em xin cảm ơn
Sửa code sự kiện SpinButton2_Change lại thế này xem sao.
Mã:
Private Sub SpinButton2_Change()
If SpinButton2.Value >= 0 Then
    If SpinButton2.Value = 5 And TextBox1.Text = 24 Then
        TextBox1.Text = "00"
    End If
    If SpinButton2.Value = 60 Then
        SpinButton2.Value = 0
        TextBox2.Text = "00"
        TextBox1.Text = Val(TextBox1.Text) + 1
    Else
        TextBox2.Text = Format(SpinButton2.Value, "00")
    End If
Else
    If TextBox1.Text = "-1" Then
        TextBox1.Text = "23"
    End If
    If SpinButton2.Value = -5 Then
        SpinButton2.Value = 55
        TextBox2.Text = "55"
        TextBox1.Text = Val(TextBox1.Text) - 1
    Else
        TextBox2.Text = Format(60 + SpinButton2.Value, "00")
    End If
End If
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom