code nhập ngày cho đúng định dạng (1 người xem)

Liên hệ QC

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

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
965
Được thích
175
Giới tính
Nữ
Chào các AC, em có tạo một Form, trong Form có Tb_Ngay, có code để khi gỏ ngày vào thì có dạng dd/MM/yyyy như sau:
Mã:
Private Sub Tb_Ngay_AfterUpdate()
    Tb_Ngay = Format(Me.Tb_Ngay.Value, "dd/MM/yyyy")
End Sub
và code khi nhấn nút lưu thì đập Tb_Ngay vào Sheet1!A:
Mã:
Private Sub Luu_Click()
Dim  irow As Long
    If Tb_Ngay = ""  Then MsgBox ("Ban chua nhap Ngay"), vbExclamation, "GPE": Exit Sub       

 With Sheet1
    irow = .Range("A65536").End(xlUp).Offset(1).Row 'xac dinh row cuoi cung` chua' du~ lieu
   
        .Cells(irow , 1) = CDate(Tb_ngay.Value)               
        
     End With   
Tb_ngay= ""     

Tb_ngay.SetFocus
End Sub
Nhưng khi đập vào sheet thì có dạng MM/dd/yyyy(tháng/ngày/năm), mặc dù em có chỉnh trong Control Panel dạng Short Date là dd/MM/yyyy(ngày/tháng/năm).
Mong các AC giúp đỡ.
 
Lần chỉnh sửa cuối:
cám Ơn Anh befaint, nhưng code của Anh là chỉ nhập vào Cell A2, còn nếu nhập tiếp A3,A4,A5 ..v...v.v.thì chỉnh code lại làm sao hả Anh. (Code trên em sưu tầm trên DD)
 
Upvote 0
Chào các AC, em có tạo một Form, trong Form có Tb_Ngay, có code để khi gỏ ngày vào thì có dạng dd/MM/yyyy như sau:
Mã:
Private Sub Tb_Ngay_AfterUpdate()
    Tb_Ngay = Format(Me.Tb_Ngay.Value, "dd/MM/yyyy")
End Sub
và code khi nhấn nút lưu thì đập Tb_Ngay vào Sheet1!A:
Mã:
Private Sub Luu_Click()
Dim  irow As Long
    If Tb_Ngay = ""  Then MsgBox ("Ban chua nhap Ngay"), vbExclamation, "GPE": Exit Sub       

 With Sheet1
    irow = .Range("A65536").End(xlUp).Offset(1).Row 'xac dinh row cuoi cung` chua' du~ lieu
   
        .Cells(irow , 1) = CDate(Tb_ngay.Value)               
        
     End With   
Tb_ngay= ""     

Tb_ngay.SetFocus
End Sub
Nhưng khi đập vào sheet thì có dạng MM/dd/yyyy(tháng/ngày/năm), mặc dù em có chỉnh trong Control Panel dạng Short Date là dd/MM/yyyy(ngày/tháng/năm).
Mong các AC giúp đỡ.

ờ đại khái thì ta ghi kiểu Số vào ô cho máy dễ đoán ngày , ghi kiểu Date đôi khi làm khó ban tổ chức đấy //**///**/

Mã:
.Cells(irow , 1) = CLng(DateSerial(Val(Mid(Tb_ngay.Text, InStrRev(Tb_ngay.Text, "/") + 1)),  _
Val(Mid(Tb_ngay.Text, InStr(Tb_ngay.Text, "/") + 1, 2)), _
Val(Left(Tb_ngay.Text, InStr(Tb_ngay.Text, "/") - 1))))
 
Upvote 0
cám Ơn Anh befaint, nhưng code của Anh là chỉ nhập vào Cell A2, còn nếu nhập tiếp A3,A4,A5 ..v...v.v.thì chỉnh code lại làm sao hả Anh. (Code trên em sưu tầm trên DD)

Mình có gửi cho bạn link 1 topic để tham khảo mà. Bạn có thể xem bài đó tương tự là làm được.
 
Upvote 0
ờ đại khái thì ta ghi kiểu Số vào ô cho máy dễ đoán ngày , ghi kiểu Date đôi khi làm khó ban tổ chức đấy //**///**/

Mã:
.Cells(irow , 1) = CLng(DateSerial(Val(Mid(Tb_ngay.Text, InStrRev(Tb_ngay.Text, "/") + 1)),  _
Val(Mid(Tb_ngay.Text, InStr(Tb_ngay.Text, "/") + 1, 2)), _
Val(Left(Tb_ngay.Text, InStr(Tb_ngay.Text, "/") - 1))))

Chỉ cho cực vậy trời?
Tôi thấy cũng không có gì khó xử lý cả. Ví dụ Tb_ngay.Text là TextBox ta nhập ngày tháng (và ta quy định nhập theo chuẩn d/M/yyyy). Vậy chỉ cần:
Mã:
Dim tmp
tmp = Split(Tb_ngay.Text, "/")
Là ta có ngay mảng 3 phần tử chứa ngày tháng năm. Giờ thì cái này:
Mã:
Dim lDate as Date
lDate = DateSerial(tmp(2), tmp(1),tmp(0))
Chắc ăn là DATE CHUẨN đúng không?
Không cần chỉnh gì trong control panel, không cần format hay gì cả... nó sẽ luôn đúng như những gì ta mong đơi
 
Upvote 0
Chỉ cho cực vậy trời?
Tôi thấy cũng không có gì khó xử lý cả. Ví dụ Tb_ngay.Text là TextBox ta nhập ngày tháng (và ta quy định nhập theo chuẩn d/M/yyyy). Vậy chỉ cần:
Mã:
Dim tmp
tmp = Split(Tb_ngay.Text, "/")
Là ta có ngay mảng 3 phần tử chứa ngày tháng năm. Giờ thì cái này:
Mã:
Dim lDate as Date
lDate = DateSerial(tmp(2), tmp(1),tmp(0))
Chắc ăn là DATE CHUẨN đúng không?
Không cần chỉnh gì trong control panel, không cần format hay gì cả... nó sẽ luôn đúng như những gì ta mong đơi

à vâng , cám ơn anh . Tụi em còn "yếu" quá , chắc còn phải nhờ anh "kèm" dài dài .+-+-+-+
 
Upvote 0
Em không hiểu ý của Anh Ndu, mong Anh chỉ rỏ Ah.
Như code của em thì chỉnh làm sao.
 
Upvote 0
cả code của anh AutoReplay cũng không được
 
Upvote 0
em có thử cả code của Anh befaint cũng không được luôn, chúc mọi người ngủ ngon.
 
Upvote 0
Em không hiểu ý của Anh Ndu, mong Anh chỉ rỏ Ah.
Như code của em thì chỉnh làm sao.
Mã:
Private Sub Luu_Click()
Dim  irow As Long, tmp    
If Tb_Ngay = ""  Then MsgBox ("Ban chua nhap Ngay"), vbExclamation, "GPE": Exit Sub
tmp = Split(Tb_ngay.Text, "/")
With Sheet1
       irow = .Range("A65536").End(xlUp).Offset(1).Row 'xac dinh row cuoi cung` chua' du~ lieu
       .Cells(irow , 1) = DateSerial(tmp(2), tmp(1),tmp(0))
End With
Tb_ngay= ""
Tb_ngay.SetFocus
End Sub
 
Upvote 0
Cám Ơn Anh HieuCD, em đã Mail cho Anh.
 
Upvote 0
Web KT

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

Back
Top Bottom