Sửa code nhập ngày tháng hoàn chỉnh trong textbox?? (1 người xem)

Liên hệ QC

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

minhcong.tckt

Thành viên thường trực
Tham gia
13/4/11
Bài viết
385
Được thích
36
Giới tính
Nam
em có 1 textbox "ngày tháng" , code của nó như sau:
PHP:
Private Sub TextNT1_AfterUpdate()
Me.TextNT1 = Format(Me.TextNT1, "dd/mm/yyyy")
MsgBox "ban nhap sai dinh dang ngay thang, dinh dang dung: dd/mm/yyyy"
End Sub

Code trên chưa ổn lắm.
Em muốn, khi người dùng nhập không đúng ngày tháng theo định dạng thì yêu cầu người dùng nhập lại

Mong anh chị giúp đỡ
 
Bạn xem đoạn code sau:
Mã:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim dDate As Date
    If Mid(TextBox1.Value, 4, 2) > 12 Then
        MsgBox "Invalid date, please re-enter", vbCritical
        TextBox1.Value = vbNullString
        TextBox1.SetFocus
        Exit Sub
    End If
     
    dDate = DateSerial(Year(Date), Month(Date), Day(Date))
    TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
    dDate = TextBox1.Value
    
    TextBox2.Text = Format(TextBox1.Text, "dd/mm/yyyy")
End Sub

(Sưu tầm)
 
Upvote 0
Cái textbox2 của anh là như nào thế ạ, em chưa hiểu. Ban đầu chỉ có textbox1 thôi mà???
 
Upvote 0
em có 1 textbox "ngày tháng" , code của nó như sau:
PHP:
Private Sub TextNT1_AfterUpdate()
Me.TextNT1 = Format(Me.TextNT1, "dd/mm/yyyy")
MsgBox "ban nhap sai dinh dang ngay thang, dinh dang dung: dd/mm/yyyy"
End Sub

Code trên chưa ổn lắm.
Em muốn, khi người dùng nhập không đúng ngày tháng theo định dạng thì yêu cầu người dùng nhập lại

Mong anh chị giúp đỡ
Hỏi lại: Như thế nào là KHÔNG ĐÚNG?
Bạn muốn người ta nhập theo chuẩn dd/MM/yyyy, nếu người ta nhập 02/12/2012, làm sao bạn biết họ đang nhập là đúng chuẩn quy định hay không? Có thể đó là ngày 12 tháng 2 thì sao?
---------------
Ngoài ra xin nói thêm: Những ai biết dùng form chả ai lại đi dùng TextBox để nhập ngày tháng cả ---> Đó là hạ sách! ---> Dùng Calendar bạn à!
 
Upvote 0
Ví dụ là người ta nhập 1234 thì code trên vẫn cho nhập bình thường ạ??
Dùng Calendar trong form như thế nào Bác??? giúp em với
em còn không biết lấy nó ở đâu và sử dụng như thế nào ạ
 
Upvote 0
Dùng DTPicker để nhập ngày tháng trên Form cũng được nhiều phần mềm sử dụng. Bạn thử xem.
Trên Toolbox dùng Addition Control để bổ xung. Đơn giản nhất là dùng file của Ndu để Import 1 Page Toolbox mới trên đõ có sẵn DTPicker.
Ban tải file của Ndu và hướng dãn thực hiện tại đây http://www.giaiphapexcel.com/forum/...nal-Controls-mất-tác-dụng&p=370272#post370272
 
Lần chỉnh sửa cuối:
Upvote 0
Dùng DTPicker để nhập ngày tháng trên Form cũng được nhiều phần mềm sử dụng. Bạn thử xem.
Trên Toolbox dùng Addition Control để bổ xung. Đơn giản nhất là dùng file của Ndu để Import 1 Page Toolbox mới trên đõ có sẵn DTPicker.

Anh gửi cho em file mẫu của anh ấy với, em tham khảo
Addition Control của em ko có cái DTPicker
 
Lần chỉnh sửa cuối:
Upvote 0
Mình gửi file ví dụ nha. Mình bổ xung địa chỉ tải file và hướng dẫn thực hiện ở bài trước rồi mà.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ví dụ là người ta nhập 1234 thì code trên vẫn cho nhập bình thường ạ??
Dùng Calendar trong form như thế nào Bác??? giúp em với
em còn không biết lấy nó ở đâu và sử dụng như thế nào ạ
Trên GPE có nhiều bài về Caledar trên form rồi, bạn tìm sẽ thấy
Tôi gửi bạn file ví dụ nhé

Capture1.JPG
 

File đính kèm

Upvote 0
Mình gửi file ví dụ nha. Mình bổ xung địa chỉ tải file và hướng dẫn thực hiện ở bài trước rồi mà.

với ví dụ trên, anh thêm code cho em với để điền ngày tháng lần 1 vào ô C1 Sheet1

lần 2 vào ô C2 Sheet1 .....(tức là điền lần lượt xuống dưới )

Chân thành cảm ơn!!!
 
Upvote 0
với ví dụ trên, anh thêm code cho em với để điền ngày tháng lần 1 vào ô C1 Sheet1

lần 2 vào ô C2 Sheet1 .....(tức là điền lần lượt xuống dưới )

Chân thành cảm ơn!!!
Code cho bạn đây:
PHP:
Private Sub Calendar1_Click()
  Dim Dat As Long
  Dat = Me.Calendar1.Value
  Me.ComboBox1.Value = Format(Dat, "dd/MM/yyyy")
  With Sheet1.Range("C60000").End(xlUp)
    If .Value = "" Then
      .NumberFormat = "dd/MM/yyyy"
      .Value = Dat
    Else
      .Offset(1).NumberFormat = "dd/MM/yyyy"
      .Offset(1).Value = Dat
    End If
  End With
  Me.Calendar1.Visible = False
End Sub
PHP:
Private Sub ComboBox1_DropButtonClick()
  Me.Calendar1.Visible = True
  Me.Repaint
End Sub
------------------------------------------
Góp ý chút:
- Xem ra trình độ về code VBA của bạn còn yếu quá khiến thôi lấy làm thắc mắc: File nào của bạn cũng dùng code, thậm chí là UserForm, thế thì bạn làm cách nào để tự mình sửa? Chẳng lẽ cứ động 1 tí đơn giản cũng phải hỏi?
- Bạn nên tự trang bị cho mình các kiến thức cơ bản... hãy từ thấp lên cao bạn à
Chỉ là ý kiến cá nhân... Xin lỗi, tôi nói thẳng, nếu có gì không phải mong bạn bỏ qua cho
Lý ra code trên tôi viết thế này:
PHP:
Private Sub Calendar1_Click()
  Dim Dat As Long
  Dat = Me.Calendar1.Value
  Me.ComboBox1.Value = Format(Dat, "dd/MM/yyyy")
  With Sheet1.Range("C60000").End(xlUp)
    With .Offset(-(.Value <> ""))
      .NumberFormat = "dd/MM/yyyy"
      .Value = Dat
    End With
  End With
  Me.Calendar1.Visible = False
End Sub
Nhưng vì... những lý do trên nên tôi phải viết cho thật rõ để bạn dễ hiểu
Hic...
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom