Trừ hai giá trị ngày tháng trong Textbox

  • Thread starter Thread starter vba_gpe
  • Ngày gửi Ngày gửi
Liên hệ QC

vba_gpe

Thành viên thường trực
Tham gia
15/12/10
Bài viết
296
Được thích
44
Nghề nghiệp
Thất nghiệp
Gửi Anh chị GPE
Có cách nào trừ hai giá trị ngày tháng trong Textbox không?
Ý là như thế này:
Em có 1 useform như sau :
Lable1 : Ngày bắt đầu
Textbox: Số Ngày làm việc
Lable2: Ngày kết thúc

Nhập ngày bắt đầu, Nhập số ngày làm việc - >Tính ra Ngày kết thúc hoặc từ ngày bắt đầu việc ngày kết thúc, tính ra số ngày làm việc
Em tìm hiểu trên GPE thấy có một số hàm Tìm được trên GPE.Kiến thức VB có hạn nên vẫn không biết cách nào làm?
Em có gửi kèm cái file nhờ AC xem giúp.
Í quên: Có cái hướng dẫn nhỏ nếu hông hơi khó hiểu tí. Để đưa thời gian vào lable phải Click vào Checkbox tương ứng để chọn, và click vào lable để chọn thời gian.

Cảm ơn Anh chi nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Hi.
Nếu bài viết em viết có gì khó hiểu, AC góp ý nhé. Lần sau em sẽ cố gắng chỉnh sửa.

Thân.
 
Upvote 0
Hi.
Nếu bài viết em viết có gì khó hiểu, AC góp ý nhé. Lần sau em sẽ cố gắng chỉnh sửa.

Thân.

Thì bạn làm như vầy nè:

PHP:
txt_TimeTC = Format(LB_TimeKT.Caption, "#") - Format(Lb_TimeBD.Caption, "#")

Còn nếu tính luôn ngày bắt đầu thì bạn cộng thêm 1

P/s: Form của bạn thật là rắc rối đấy, quá nhiều thao tác thừa không cần thiết, nào là chọn checkbox, nào là click ra lịch,... sẽ làm cho bạn mất thời gian.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn Learning Excel
Vì em không biết xứ lý cái điều kiện:
Nếu Click chọn ngày bắt đầu hiện ra form (Calendar) chọn ngày bắt đầu và đưa ngày bắt đầu vào Lable tương ứng ngày bắt đầu.
Nếu Click chọn ngày kết thúc thì cũng vẫn hiện ra form (Calendar) chọn ngày kết thúc và đưa ngày bắt đầu vào Lable tương ứng ngày kết thúc.
(Giá trị nhập cho ngày kết thúc làm sao để đừng ảnh hưởng đến ngày bắt đầu và ngược lại)
Vì trên form Calendar chỉ có 1 ô textbox nên em không biết làm sao để đưa ra 2 nhánh ngày bắt đầu và ngày kết thúc. Vì thế mới đưa cái Click vào. (Nói thật em đưa ra mà còn cảm thấy phiền huống chi...).
Chưa có cách giải quyết chổ này.
Với lại anh chị cho em hỏi cái này nữa:
Giã sử có ngày bắt đầu, nhập thời gian thi công -> Xuất ra ngày kết thúc:
Vậy cái lable của ngày kết thúc mình viết như thế nào: (Ở đây là điều kiện thứ 3)
Em viết vầy bị lỗi: Nhờ anh chi sửa giúp: (Trường hợp thứ 3)
PHP:
    If Me.Lb_TimeBD.Caption <> "Click" And Me.LB_TimeKT.Caption = "Click" Then
        Me.LB_TimeKT.Caption = Format(Format(Lb_TimeBD.Caption, "#") + Format(Lb_TimeBD.Caption, "#"), "DD/MM/YYYY")
    End If

Anh có cách nào thì chỉ đường giúp em nhé.
Thân
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn Learning Excel
Vì em không biết xứ lý cái điều kiện:
Nếu Click chọn ngày bắt đầu hiện ra form (Calendar) chọn ngày bắt đầu và đưa ngày bắt đầu vào Lable tương ứng ngày bắt đầu.
Nếu Click chọn ngày kết thúc thì cũng vẫn hiện ra form (Calendar) chọn ngày kết thúc và đưa ngày bắt đầu vào Lable tương ứng ngày kết thúc.
(Giá trị nhập cho ngày kết thúc làm sao để đừng ảnh hưởng đến ngày bắt đầu và ngược lại)
Vì trên form Calendar chỉ có 1 ô textbox nên em không biết làm sao để đưa ra 2 nhánh ngày bắt đầu và ngày kết thúc. Vì thế mới đưa cái Click vào. (Nói thật em đưa ra mà còn cảm thấy phiền huống chi...).
Chưa có cách giải quyết chổ này.
Với lại anh chị cho em hỏi cái này nữa:
Giã sử có ngày bắt đầu, nhập thời gian thi công -> Xuất ra ngày kết thúc:
Vậy cái lable của ngày kết thúc mình viết như thế nào: (Ở đây là điều kiện thứ 3)
Em viết vầy bị lỗi: Nhờ anh chi sửa giúp: (Trường hợp thứ 3)
PHP:
    If Me.Lb_TimeBD.Caption <> "Click" And Me.LB_TimeKT.Caption = "Click" Then
        Me.LB_TimeKT.Caption = Format(Format(Lb_TimeBD.Caption, "#") + Format(Lb_TimeBD.Caption, "#"), "DD/MM/YYYY")
    End If

Anh có cách nào thì chỉ đường giúp em nhé.
Thân

Tôi thử làm cái Form nhập ngày cho bạn nhé! Dựa vào đó bạn có thể tùy cơ ứng biến vào Form TienDo của bạn.

PHP:
Dim isDATE As Boolean
 
Private Sub UserForm_Initialize()
  Me.Height = 90
End Sub
 
Private Sub cmd_Tinh_Click()
  If LB_TimeKT.Caption = "DoubleClick" Or Lb_TimeBD.Caption = "DoubleClick" Then Exit Sub
  txt_TimeTC = Format(LB_TimeKT.Caption, "#") - Format(Lb_TimeBD.Caption, "#") + 1
End Sub
 
Private Sub Lb_TimeBD_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  isDATE = True
  Me.Height = 200
  With Calendar1
    .Value = Now: .Visible = True
  End With
End Sub
 
Private Sub LB_TimeKT_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  isDATE = False
  Me.Height = 200
  With Calendar1
    .Value = Now: .Visible = True
  End With
End Sub
 
Private Sub Calendar1_Click()
  If isDATE = True Then
    Lb_TimeBD.Caption = Calendar1.Value
  Else
    LB_TimeKT.Caption = Calendar1.Value
  End If
  Me.Height = 90
  Calendar1.Visible = False
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh Learning Excel góp ý.
Cái form của anh dễ thao tác thật.
Còn một ý nữa em muốn tham khảo Anh chị . (Đối với trường hợp: Chúng ta chỉ chọn ngày bắt đầu-> Chuyển qua textbox nhập thời gian thi công->Click tính -> Tính ra thời gian kết thúc) thì phải xử lý thế nào?
Theo em nghĩ:
Ta sẽ chuyển ngày bắt đầu thành dạng số, chuyển thời gian thi công thành dạng số, cộng hai cái này lại -> Kết quả
Format kết quả dạng ngày, tháng, năm

PHP:
Có cộng và chuyển trực tiếp như vậy được không? Em làm thì bị lỗi. 
        Me.LB_TimeKT.Caption = Format(Format(Lb_TimeBD.Caption, "#") + Format(Txt_TimeTC.Caption, "#"), "DD/MM/YYYY")
Nhờ mọi người đóng góp.
Trân trọng cảm ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh Learning Excel góp ý.
Cái form của anh dễ thao tác thật.
Còn một ý nữa em muốn tham khảo Anh chị . (Đối với trường hợp: Chúng ta chỉ chọn ngày bắt đầu-> Chuyển qua textbox nhập thời gian thi công->Click tính -> Tính ra thời gian kết thúc) thì phải xử lý thế nào?
Theo em nghĩ:
Ta sẽ chuyển ngày bắt đầu thành dạng số, chuyển thời gian thi công thành dạng số, cộng hai cái này lại -> Kết quả
Format kết quả dạng ngày, tháng, năm

PHP:
Có cộng và chuyển trực tiếp như vậy được không? Em làm thì bị lỗi. 
        Me.LB_TimeKT.Caption = Format(Format(Lb_TimeBD.Caption, "#") + Format(Txt_TimeTC.Caption, "#"), "DD/MM/YYYY")
Nhờ mọi người đóng góp.
Trân trọng cảm ơn.

Có phải bạn muốn nói, có ngày bắt đầu, có số ngày làm việc, TÍNH ngày kết thúc phải không?

Như công thức bạn đưa ra không lỗi mới lạ! Bởi vì tại textbox bạn ghi giá trị là số chứ đâu phải dạng ngày!

Cho nên, khi nhập vào textbox bạn ghi số ngày thực hiện vào đó rồi tính, đại loại bạn làm như vầy:

PHP:
Private Sub cmd_Tinh2_Click()
  If txt_TimeTC2 = "" Or Lb_TimeBD2.Caption = "DoubleClick" Then Exit Sub
  LB_TimeKT2.Caption = Format(Format(Lb_TimeBD2.Caption, "#") + Val(txt_TimeTC2), "dd/mm/yyyy")
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom